# -*- coding: utf8 -*-
# Copyright (c) 2017-2025 Tencent. 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):
    r"""灰度项目配置

    """

    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):
        r"""灰度项目名称
        :rtype: str
        """
        return self._ProjectName

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

    @property
    def Status(self):
        r"""true：正在灰度，false：不在灰度
        :rtype: bool
        """
        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):
    r"""账号统计数据。

    """

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

    @property
    def Username(self):
        r"""用户名。
        :rtype: str
        """
        return self._Username

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

    @property
    def MachineNum(self):
        r"""主机数量。
        :rtype: int
        """
        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):
    r"""AddLoginWhiteLists请求参数结构体

    """

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

    @property
    def HostLoginWhiteObj(self):
        r"""<p>异地登录白名单实体</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.HostLoginWhiteObj`
        """
        return self._HostLoginWhiteObj

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

    @property
    def ProcessType(self):
        r"""<p>事件同步处理方式：<br>  &quot;&quot; -- 不操作<br>  &quot;All&quot; -- 将符合此配置的所有事件记录加白<br>  &quot;Id&quot; -- 将EventId对应的事件记录加白</p>
        :rtype: str
        """
        return self._ProcessType

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

    @property
    def EventId(self):
        r"""<p>异地登录事件ID，当ProcessType为Id时此项必填</p>
        :rtype: int
        """
        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):
    r"""AddLoginWhiteLists返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DuplicateHosts: <p>重复添加的提示列表</p>
        :type DuplicateHosts: list of DuplicateHosts
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DuplicateHosts = None
        self._RequestId = None

    @property
    def DuplicateHosts(self):
        r"""<p>重复添加的提示列表</p>
        :rtype: list of DuplicateHosts
        """
        return self._DuplicateHosts

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""节点关联的告警信息

    """

    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):
        r"""该节点关联的告警，告警的table_name+id（t1:id1,t2:id2,...)
        :rtype: str
        """
        return self._AlarmId

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

    @property
    def Status(self):
        r"""告警事件表状态，当该节点为告警点时生效
        :rtype: int
        """
        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):
    r"""资源管理进程基本信息

    """

    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: 主机标签
        :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: 数据更新时间
        :type UpdateTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineExtraInfo: 附加信息
        :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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def Tag(self):
        r"""主机标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def Name(self):
        r"""应用名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Type(self):
        r"""应用类型	
1: 运维
2 : 数据库
3 : 安全
4 : 可疑应用
5 : 系统架构
6 : 系统应用
7 : WEB服务
99: 其他
        :rtype: int
        """
        return self._Type

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

    @property
    def BinPath(self):
        r"""二进制路径
        :rtype: str
        """
        return self._BinPath

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def ProcessCount(self):
        r"""关联进程数
        :rtype: int
        """
        return self._ProcessCount

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

    @property
    def Desc(self):
        r"""应用描述
        :rtype: str
        """
        return self._Desc

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

    @property
    def Version(self):
        r"""版本号
        :rtype: str
        """
        return self._Version

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

    @property
    def ConfigPath(self):
        r"""配置文件路径
        :rtype: str
        """
        return self._ConfigPath

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""软件应用关联进程信息

    """

    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):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Status(self):
        r"""进程状态
        :rtype: str
        """
        return self._Status

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

    @property
    def Version(self):
        r"""进程版本
        :rtype: str
        """
        return self._Version

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

    @property
    def Path(self):
        r"""路径
        :rtype: str
        """
        return self._Path

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

    @property
    def User(self):
        r"""用户
        :rtype: str
        """
        return self._User

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

    @property
    def StartTime(self):
        r"""启动时间
        :rtype: str
        """
        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):
    r"""资产管理内核模块列表

    """

    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: 数据更新时间
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息
        :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):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Desc(self):
        r"""描述
        :rtype: str
        """
        return self._Desc

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

    @property
    def Path(self):
        r"""路径
        :rtype: str
        """
        return self._Path

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def MachineIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Size(self):
        r"""模块大小
        :rtype: int
        """
        return self._Size

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

    @property
    def ProcessCount(self):
        r"""依赖进程数
        :rtype: int
        """
        return self._ProcessCount

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

    @property
    def ModuleCount(self):
        r"""依赖模块数
        :rtype: int
        """
        return self._ModuleCount

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

    @property
    def Id(self):
        r"""模块ID
        :rtype: str
        """
        return self._Id

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineWanIp(self):
        r"""服务器外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资产管理内核模块详情

    """

    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: 参数信息
        :type Params: list of AssetCoreModuleParam
        :param _UpdateTime: 数据更新时间
        :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):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Desc(self):
        r"""描述
        :rtype: str
        """
        return self._Desc

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

    @property
    def Path(self):
        r"""路径
        :rtype: str
        """
        return self._Path

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def Size(self):
        r"""大小
        :rtype: int
        """
        return self._Size

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

    @property
    def Processes(self):
        r"""依赖进程
        :rtype: str
        """
        return self._Processes

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

    @property
    def Modules(self):
        r"""被依赖模块
        :rtype: str
        """
        return self._Modules

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

    @property
    def Params(self):
        r"""参数信息
        :rtype: list of AssetCoreModuleParam
        """
        return self._Params

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        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):
    r"""资产管理内核模块参数

    """

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

    @property
    def Name(self):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Data(self):
        r"""数据
        :rtype: str
        """
        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):
    r"""资源管理数据库列表信息

    """

    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: 主机标签
        :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: 数据更新时间
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _MachineExtraInfo:  附加信息
        :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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def Tag(self):
        r"""主机标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def Name(self):
        r"""数据库名
        :rtype: str
        """
        return self._Name

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def Port(self):
        r"""监听端口
        :rtype: str
        """
        return self._Port

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

    @property
    def Proto(self):
        r"""协议
        :rtype: str
        """
        return self._Proto

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

    @property
    def User(self):
        r"""运行用户
        :rtype: str
        """
        return self._User

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

    @property
    def Ip(self):
        r"""绑定IP
        :rtype: str
        """
        return self._Ip

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

    @property
    def ConfigPath(self):
        r"""配置文件路径
        :rtype: str
        """
        return self._ConfigPath

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

    @property
    def LogPath(self):
        r"""日志文件路径
        :rtype: str
        """
        return self._LogPath

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

    @property
    def DataPath(self):
        r"""数据路径
        :rtype: str
        """
        return self._DataPath

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

    @property
    def Permission(self):
        r"""运行权限
        :rtype: str
        """
        return self._Permission

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

    @property
    def ErrorLogPath(self):
        r"""错误日志路径
        :rtype: str
        """
        return self._ErrorLogPath

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

    @property
    def PlugInPath(self):
        r"""插件路径
        :rtype: str
        """
        return self._PlugInPath

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

    @property
    def BinPath(self):
        r"""二进制路径
        :rtype: str
        """
        return self._BinPath

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

    @property
    def Param(self):
        r"""启动参数
        :rtype: str
        """
        return self._Param

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

    @property
    def Id(self):
        r"""数据库ID
        :rtype: str
        """
        return self._Id

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资源管理数据库列表信息

    """

    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: 数据更新时间
        :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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Name(self):
        r"""数据库名
        :rtype: str
        """
        return self._Name

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def Port(self):
        r"""监听端口
        :rtype: str
        """
        return self._Port

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

    @property
    def Proto(self):
        r"""协议
        :rtype: str
        """
        return self._Proto

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

    @property
    def User(self):
        r"""运行用户
        :rtype: str
        """
        return self._User

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

    @property
    def Ip(self):
        r"""绑定IP
        :rtype: str
        """
        return self._Ip

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

    @property
    def ConfigPath(self):
        r"""配置文件路径
        :rtype: str
        """
        return self._ConfigPath

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

    @property
    def LogPath(self):
        r"""日志文件路径
        :rtype: str
        """
        return self._LogPath

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

    @property
    def DataPath(self):
        r"""数据路径
        :rtype: str
        """
        return self._DataPath

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

    @property
    def Permission(self):
        r"""运行权限
        :rtype: str
        """
        return self._Permission

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

    @property
    def ErrorLogPath(self):
        r"""错误日志路径
        :rtype: str
        """
        return self._ErrorLogPath

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

    @property
    def PlugInPath(self):
        r"""插件路径
        :rtype: str
        """
        return self._PlugInPath

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

    @property
    def BinPath(self):
        r"""二进制路径
        :rtype: str
        """
        return self._BinPath

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

    @property
    def Param(self):
        r"""启动参数
        :rtype: str
        """
        return self._Param

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        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):
    r"""资产管理磁盘分区信息

    """

    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):
        r"""分区名
        :rtype: str
        """
        return self._Name

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

    @property
    def Size(self):
        r"""分区大小：单位G
        :rtype: int
        """
        return self._Size

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

    @property
    def Percent(self):
        r"""分区使用率
        :rtype: float
        """
        return self._Percent

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

    @property
    def Type(self):
        r"""文件系统类型
        :rtype: str
        """
        return self._Type

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

    @property
    def Path(self):
        r"""挂载目录
        :rtype: str
        """
        return self._Path

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

    @property
    def Used(self):
        r"""已使用空间：单位G
        :rtype: int
        """
        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):
    r"""资产管理环境变量列表

    """

    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: 数据更新时间
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息

        :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):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Type(self):
        r"""类型：
0:用户变量
1:系统变量
        :rtype: int
        """
        return self._Type

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

    @property
    def User(self):
        r"""启动用户
        :rtype: str
        """
        return self._User

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

    @property
    def Value(self):
        r"""环境变量值
        :rtype: str
        """
        return self._Value

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

    @property
    def MachineIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineWanIp(self):
        r"""服务器外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息

        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""容器安全
    描述键值对过滤器，用于条件过滤查询。例如过滤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):
        r"""过滤键的名称。
        :rtype: str
        """
        return self._Name

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

    @property
    def Values(self):
        r"""一个或者多个过滤值。
        :rtype: list of str
        """
        return self._Values

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

    @property
    def ExactMatch(self):
        r"""是否模糊查询
        :rtype: bool
        """
        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):
    r"""资产管理启动服务列表

    """

    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:  附加信息

        :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):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Type(self):
        r"""类型：
1:编码器
2:IE插件
3:网络提供者
4:镜像劫持
5:LSA提供者
6:KnownDLLs
7:启动执行
8:WMI
9:计划任务
10:Winsock提供者
11:打印监控器
12:资源管理器
13:驱动服务
14:登录
        :rtype: int
        """
        return self._Type

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

    @property
    def Status(self):
        r"""默认启用状态：0未启用，1启用
        :rtype: int
        """
        return self._Status

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

    @property
    def User(self):
        r"""启动用户
        :rtype: str
        """
        return self._User

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

    @property
    def Path(self):
        r"""路径
        :rtype: str
        """
        return self._Path

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

    @property
    def MachineIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineWanIp(self):
        r"""服务器外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息

        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

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

    @property
    def IsAutoRun(self):
        r"""开机自启动[0:否|1:是]
        :rtype: int
        """
        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):
    r"""资产管理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: 数据更新时间
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息

        :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):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Type(self):
        r"""类型：1应用程序，2系统类库，3Web服务自带库，8:其他，
        :rtype: int
        """
        return self._Type

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

    @property
    def Status(self):
        r"""是否可执行：0未知，1是，2否
        :rtype: int
        """
        return self._Status

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def Path(self):
        r"""路径
        :rtype: str
        """
        return self._Path

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

    @property
    def MachineIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Id(self):
        r"""Jar包ID
        :rtype: str
        """
        return self._Id

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

    @property
    def Md5(self):
        r"""Jar包Md5
        :rtype: str
        """
        return self._Md5

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineWanIp(self):
        r"""服务器外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息

        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资产管理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: 引用进程列表
        :type Process: list of AssetAppProcessInfo
        :param _Md5: Jar包Md5
        :type Md5: str
        :param _UpdateTime: 数据更新时间
        :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):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Type(self):
        r"""类型：1应用程序，2系统类库，3Web服务自带库，8:其他，
        :rtype: int
        """
        return self._Type

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

    @property
    def Status(self):
        r"""是否可执行：0未知，1是，2否
        :rtype: int
        """
        return self._Status

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def Path(self):
        r"""路径
        :rtype: str
        """
        return self._Path

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

    @property
    def MachineIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Process(self):
        r"""引用进程列表
        :rtype: list of AssetAppProcessInfo
        """
        return self._Process

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

    @property
    def Md5(self):
        r"""Jar包Md5
        :rtype: str
        """
        return self._Md5

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        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):
    r"""key-val类型的通用数据结构

    """

    def __init__(self):
        r"""
        :param _Key: 标签
        :type Key: str
        :param _Value: 数量
        :type Value: int
        :param _Desc: 描述信息
        :type Desc: str
        :param _NewCount: 今日新增数量
        :type NewCount: int
        """
        self._Key = None
        self._Value = None
        self._Desc = None
        self._NewCount = None

    @property
    def Key(self):
        r"""标签
        :rtype: str
        """
        return self._Key

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

    @property
    def Value(self):
        r"""数量
        :rtype: int
        """
        return self._Value

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

    @property
    def Desc(self):
        r"""描述信息
        :rtype: str
        """
        return self._Desc

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

    @property
    def NewCount(self):
        r"""今日新增数量
        :rtype: int
        """
        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):
    r"""资产管理负载信息

    """

    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):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def Desc(self):
        r"""描述
        :rtype: str
        """
        return self._Desc

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

    @property
    def Value(self):
        r"""负载
        :rtype: float
        """
        return self._Value

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        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):
    r"""资源负载概况

    """

    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
        :type Top5: list of AssetLoadDetail
        """
        self._Counts = None
        self._Top5 = None

    @property
    def Counts(self):
        r"""负载量数组，依次为：
[
0%或未知数量，
0%～20%，
20%～50%，
50%～80%，
80%～100%
]
        :rtype: list of int non-negative
        """
        return self._Counts

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

    @property
    def Top5(self):
        r"""负载Top5
        :rtype: list of AssetLoadDetail
        """
        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):
    r"""资产指纹中服务器列表的基本信息

    """

    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: 标签
        :type Tag: list of MachineTag
        :param _UpdateTime: 数据更新时间
        :type UpdateTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _MachineExtraInfo: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _CpuLoadNum: cpu负载读数（仅linux系统有效）
        :type CpuLoadNum: 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._ProjectId = None
        self._CpuSize = None
        self._CpuLoad = None
        self._Tag = None
        self._UpdateTime = None
        self._IsNew = None
        self._FirstTime = None
        self._MachineExtraInfo = None
        self._CpuLoadNum = None

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def MachineIp(self):
        r"""服务器内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统名称
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Cpu(self):
        r"""CPU信息
        :rtype: str
        """
        return self._Cpu

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

    @property
    def MemSize(self):
        r"""内存容量：单位G
        :rtype: int
        """
        return self._MemSize

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

    @property
    def MemLoad(self):
        r"""内存使用率百分比
        :rtype: str
        """
        return self._MemLoad

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

    @property
    def DiskSize(self):
        r"""硬盘容量：单位G
        :rtype: int
        """
        return self._DiskSize

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

    @property
    def DiskLoad(self):
        r"""硬盘使用率百分比
        :rtype: str
        """
        return self._DiskLoad

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

    @property
    def PartitionCount(self):
        r"""分区数
        :rtype: int
        """
        return self._PartitionCount

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def ProjectId(self):
        r"""业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def CpuSize(self):
        r"""Cpu数量
        :rtype: int
        """
        return self._CpuSize

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

    @property
    def CpuLoad(self):
        r"""Cpu使用率百分比
        :rtype: str
        """
        return self._CpuLoad

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

    @property
    def Tag(self):
        r"""标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

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

    @property
    def CpuLoadNum(self):
        r"""cpu负载读数（仅linux系统有效）
        :rtype: str
        """
        return self._CpuLoadNum

    @CpuLoadNum.setter
    def CpuLoadNum(self, CpuLoadNum):
        self._CpuLoadNum = CpuLoadNum


    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"))
        self._CpuLoadNum = params.get("CpuLoadNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""资产指纹中服务器列表的基本信息

    """

    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: 离线时间
        :type OfflineTime: str
        :param _InstanceId: 主机ID
        :type InstanceId: str
        :param _UpdateTime: 数据更新时间
        :type UpdateTime: str
        :param _MachineExtraInfo: 主机二外信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _CpuLoadVul: CpuLoadVul
        :type CpuLoadVul: str
        :param _FirstTime: 时间
        :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):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def MachineIp(self):
        r"""服务器内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统名称
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Cpu(self):
        r"""CPU信息
        :rtype: str
        """
        return self._Cpu

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

    @property
    def MemSize(self):
        r"""内存容量：单位G
        :rtype: int
        """
        return self._MemSize

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

    @property
    def MemLoad(self):
        r"""内存使用率百分比
        :rtype: str
        """
        return self._MemLoad

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

    @property
    def DiskSize(self):
        r"""硬盘容量：单位G
        :rtype: int
        """
        return self._DiskSize

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

    @property
    def DiskLoad(self):
        r"""硬盘使用率百分比
        :rtype: str
        """
        return self._DiskLoad

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

    @property
    def PartitionCount(self):
        r"""分区数
        :rtype: int
        """
        return self._PartitionCount

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def CpuSize(self):
        r"""Cpu数量
        :rtype: int
        """
        return self._CpuSize

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

    @property
    def CpuLoad(self):
        r"""Cpu负载
        :rtype: str
        """
        return self._CpuLoad

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

    @property
    def ProtectLevel(self):
        r"""防护级别：0基础版，1专业版，2旗舰版，3轻量版
        :rtype: int
        """
        return self._ProtectLevel

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

    @property
    def RiskStatus(self):
        r"""风险状态：UNKNOW-未知，RISK-风险，SAFT-安全
        :rtype: str
        """
        return self._RiskStatus

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

    @property
    def ProtectDays(self):
        r"""已防护天数
        :rtype: int
        """
        return self._ProtectDays

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

    @property
    def BuyTime(self):
        r"""专业版开通时间
        :rtype: str
        """
        return self._BuyTime

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

    @property
    def EndTime(self):
        r"""专业版到期时间
        :rtype: str
        """
        return self._EndTime

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

    @property
    def CoreVersion(self):
        r"""内核版本
        :rtype: str
        """
        return self._CoreVersion

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

    @property
    def OsType(self):
        r"""Linux/Windows
        :rtype: str
        """
        return self._OsType

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

    @property
    def AgentVersion(self):
        r"""agent版本
        :rtype: str
        """
        return self._AgentVersion

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

    @property
    def InstallTime(self):
        r"""安装时间
        :rtype: str
        """
        return self._InstallTime

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

    @property
    def BootTime(self):
        r"""系统启动时间
        :rtype: str
        """
        return self._BootTime

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

    @property
    def LastLiveTime(self):
        r"""最后上线时间
        :rtype: str
        """
        return self._LastLiveTime

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

    @property
    def Producer(self):
        r"""生产商
        :rtype: str
        """
        return self._Producer

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

    @property
    def SerialNumber(self):
        r"""序列号
        :rtype: str
        """
        return self._SerialNumber

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

    @property
    def NetCards(self):
        r"""网卡
        :rtype: list of AssetNetworkCardInfo
        """
        return self._NetCards

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

    @property
    def Disks(self):
        r"""分区
        :rtype: list of AssetDiskPartitionInfo
        """
        return self._Disks

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

    @property
    def Status(self):
        r"""0在线，1已离线
        :rtype: int
        """
        return self._Status

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

    @property
    def ProjectId(self):
        r"""业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def DeviceVersion(self):
        r"""设备型号
        :rtype: str
        """
        return self._DeviceVersion

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

    @property
    def OfflineTime(self):
        r"""离线时间
        :rtype: str
        """
        return self._OfflineTime

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

    @property
    def InstanceId(self):
        r"""主机ID
        :rtype: str
        """
        return self._InstanceId

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def MachineExtraInfo(self):
        r"""主机二外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

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

    @property
    def CpuLoadVul(self):
        r"""CpuLoadVul
        :rtype: str
        """
        return self._CpuLoadVul

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

    @property
    def FirstTime(self):
        r"""时间
        :rtype: str
        """
        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):
    r"""资产管理网卡信息

    """

    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):
        r"""网卡名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Ip(self):
        r"""Ipv4对应IP
        :rtype: str
        """
        return self._Ip

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

    @property
    def GateWay(self):
        r"""网关
        :rtype: str
        """
        return self._GateWay

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

    @property
    def Mac(self):
        r"""MAC地址
        :rtype: str
        """
        return self._Mac

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

    @property
    def Ipv6(self):
        r"""Ipv6对应IP
        :rtype: str
        """
        return self._Ipv6

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

    @property
    def DnsServer(self):
        r"""DNS服务器
        :rtype: str
        """
        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):
    r"""资产管理计划任务列表

    """

    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: 数据更新时间
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息
        :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):
        r"""默认启用状态：1启用，2未启用
        :rtype: int
        """
        return self._Status

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

    @property
    def Cycle(self):
        r"""执行周期
        :rtype: str
        """
        return self._Cycle

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

    @property
    def Command(self):
        r"""执行命令或脚本
        :rtype: str
        """
        return self._Command

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

    @property
    def User(self):
        r"""启动用户
        :rtype: str
        """
        return self._User

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

    @property
    def ConfigPath(self):
        r"""配置文件路径
        :rtype: str
        """
        return self._ConfigPath

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

    @property
    def MachineIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineWanIp(self):
        r"""服务器外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资源管理账号基本信息

    """

    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: 主机标签
        :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: 数据更新时间
        :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`
        """
        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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def Tag(self):
        r"""主机标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def ProcessName(self):
        r"""进程名称
        :rtype: str
        """
        return self._ProcessName

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

    @property
    def ProcessVersion(self):
        r"""进程版本
        :rtype: str
        """
        return self._ProcessVersion

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

    @property
    def ProcessPath(self):
        r"""进程路径
        :rtype: str
        """
        return self._ProcessPath

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

    @property
    def Pid(self):
        r"""进程ID
        :rtype: str
        """
        return self._Pid

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

    @property
    def User(self):
        r"""运行用户
        :rtype: str
        """
        return self._User

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

    @property
    def StartTime(self):
        r"""启动时间
        :rtype: str
        """
        return self._StartTime

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

    @property
    def Param(self):
        r"""启动参数
        :rtype: str
        """
        return self._Param

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

    @property
    def Teletype(self):
        r"""进程TTY
        :rtype: str
        """
        return self._Teletype

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

    @property
    def Port(self):
        r"""端口
        :rtype: str
        """
        return self._Port

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

    @property
    def GroupName(self):
        r"""所属用户组
        :rtype: str
        """
        return self._GroupName

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

    @property
    def Md5(self):
        r"""进程MD5
        :rtype: str
        """
        return self._Md5

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

    @property
    def Ppid(self):
        r"""父进程ID
        :rtype: str
        """
        return self._Ppid

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

    @property
    def ParentProcessName(self):
        r"""父进程名称
        :rtype: str
        """
        return self._ParentProcessName

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

    @property
    def Proto(self):
        r"""端口协议
        :rtype: str
        """
        return self._Proto

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

    @property
    def BindIp(self):
        r"""绑定IP
        :rtype: str
        """
        return self._BindIp

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资源管理进程基本信息

    """

    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: 主机标签
        :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: 数据更新时间
        :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`
        """
        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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def Tag(self):
        r"""主机标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def Name(self):
        r"""进程名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Desc(self):
        r"""进程说明
        :rtype: str
        """
        return self._Desc

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

    @property
    def Path(self):
        r"""进程路径
        :rtype: str
        """
        return self._Path

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

    @property
    def Pid(self):
        r"""进程ID
        :rtype: str
        """
        return self._Pid

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

    @property
    def User(self):
        r"""运行用户
        :rtype: str
        """
        return self._User

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

    @property
    def StartTime(self):
        r"""启动时间
        :rtype: str
        """
        return self._StartTime

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

    @property
    def Param(self):
        r"""启动参数
        :rtype: str
        """
        return self._Param

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

    @property
    def Tty(self):
        r"""进程TTY
        :rtype: str
        """
        return self._Tty

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

    @property
    def Version(self):
        r"""进程版本
        :rtype: str
        """
        return self._Version

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

    @property
    def GroupName(self):
        r"""进程用户组
        :rtype: str
        """
        return self._GroupName

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

    @property
    def Md5(self):
        r"""进程MD5
        :rtype: str
        """
        return self._Md5

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

    @property
    def Ppid(self):
        r"""父进程ID
        :rtype: str
        """
        return self._Ppid

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

    @property
    def ParentProcessName(self):
        r"""父进程名称
        :rtype: str
        """
        return self._ParentProcessName

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

    @property
    def Status(self):
        r"""进程状态
        :rtype: str
        """
        return self._Status

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

    @property
    def HasSign(self):
        r"""数字签名:0无，1有， 999 空，仅Windows
        :rtype: int
        """
        return self._HasSign

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

    @property
    def InstallByPackage(self):
        r"""是否通过安装包安装：:0否，1是， 999 空，仅linux
        :rtype: int
        """
        return self._InstallByPackage

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

    @property
    def PackageName(self):
        r"""软件包名
        :rtype: str
        """
        return self._PackageName

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r"""
 附加信息

        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资源管理系统安装包列表信息

    """

    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: 数据更新时间
        :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):
        r"""数据库名
        :rtype: str
        """
        return self._Name

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

    @property
    def Desc(self):
        r"""描述
        :rtype: str
        """
        return self._Desc

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def InstallTime(self):
        r"""安装时间
        :rtype: str
        """
        return self._InstallTime

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

    @property
    def Type(self):
        r"""类型
        :rtype: str
        """
        return self._Type

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def MachineIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def OsInfo(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

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

    @property
    def Quuid(self):
        r"""主机Id
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""Agent Id
        :rtype: str
        """
        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):
    r"""资产指纹类型描述

    """

    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):
        r"""类型ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Name(self):
        r"""类型名称
        :rtype: str
        """
        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):
    r"""资源管理账号基本信息

    """

    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: 更新时间
        :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`
        """
        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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uid(self):
        r"""账号UID
        :rtype: str
        """
        return self._Uid

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

    @property
    def Gid(self):
        r"""账号GID
        :rtype: str
        """
        return self._Gid

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

    @property
    def Status(self):
        r"""账号状态：0-禁用；1-启用
        :rtype: int
        """
        return self._Status

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

    @property
    def IsRoot(self):
        r"""是否有root权限：0-否；1是，999为空: 仅linux
        :rtype: int
        """
        return self._IsRoot

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

    @property
    def LoginType(self):
        r"""登录方式：0-不可登录；1-只允许key登录；2只允许密码登录；3-允许key和密码，999为空，仅linux
        :rtype: int
        """
        return self._LoginType

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

    @property
    def LastLoginTime(self):
        r"""上次登录时间
        :rtype: str
        """
        return self._LastLoginTime

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

    @property
    def Name(self):
        r"""账号名称
        :rtype: str
        """
        return self._Name

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def UserType(self):
        r"""账号类型：0访客用户，1标准用户，2管理员用户 ,999为空,仅Windows
        :rtype: int
        """
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def IsDomain(self):
        r"""是否域账号：0否， 1是，2否, 999为空  仅Windows
        :rtype: int
        """
        return self._IsDomain

    @IsDomain.setter
    def IsDomain(self, IsDomain):
        self._IsDomain = IsDomain

    @property
    def IsSudo(self):
        r"""是否有sudo权限，1是，0否, 999为空, 仅linux
        :rtype: int
        """
        return self._IsSudo

    @IsSudo.setter
    def IsSudo(self, IsSudo):
        self._IsSudo = IsSudo

    @property
    def IsSshLogin(self):
        r"""是否允许ssh登录，1是，0否, 999为空, 仅linux
        :rtype: int
        """
        return self._IsSshLogin

    @IsSshLogin.setter
    def IsSshLogin(self, IsSshLogin):
        self._IsSshLogin = IsSshLogin

    @property
    def HomePath(self):
        r"""Home目录
        :rtype: str
        """
        return self._HomePath

    @HomePath.setter
    def HomePath(self, HomePath):
        self._HomePath = HomePath

    @property
    def Shell(self):
        r"""Shell路径  仅linux
        :rtype: str
        """
        return self._Shell

    @Shell.setter
    def Shell(self, Shell):
        self._Shell = Shell

    @property
    def ShellLoginStatus(self):
        r"""是否shell登录性，0不是；1是 仅linux
        :rtype: int
        """
        return self._ShellLoginStatus

    @ShellLoginStatus.setter
    def ShellLoginStatus(self, ShellLoginStatus):
        self._ShellLoginStatus = ShellLoginStatus

    @property
    def PasswordChangeTime(self):
        r"""密码修改时间
        :rtype: str
        """
        return self._PasswordChangeTime

    @PasswordChangeTime.setter
    def PasswordChangeTime(self, PasswordChangeTime):
        self._PasswordChangeTime = PasswordChangeTime

    @property
    def PasswordDueTime(self):
        r"""密码过期时间  仅linux
        :rtype: str
        """
        return self._PasswordDueTime

    @PasswordDueTime.setter
    def PasswordDueTime(self, PasswordDueTime):
        self._PasswordDueTime = PasswordDueTime

    @property
    def PasswordLockDays(self):
        r"""密码锁定时间：单位天, -1为永不锁定 999为空，仅linux
        :rtype: int
        """
        return self._PasswordLockDays

    @PasswordLockDays.setter
    def PasswordLockDays(self, PasswordLockDays):
        self._PasswordLockDays = PasswordLockDays

    @property
    def PasswordStatus(self):
        r"""密码状态：1正常 2即将过期 3已过期 4已锁定 999为空 仅linux
        :rtype: int
        """
        return self._PasswordStatus

    @PasswordStatus.setter
    def PasswordStatus(self, PasswordStatus):
        self._PasswordStatus = PasswordStatus

    @property
    def UpdateTime(self):
        r"""更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r"""
 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资源管理账号基本信息

    """

    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: 用户公钥列表
        :type Keys: list of AssetUserKeyInfo
        :param _UpdateTime: 数据更新时间
        :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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uid(self):
        r"""账号UID
        :rtype: str
        """
        return self._Uid

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

    @property
    def Gid(self):
        r"""账号GID
        :rtype: str
        """
        return self._Gid

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

    @property
    def Status(self):
        r"""账号状态：0-禁用；1-启用
        :rtype: int
        """
        return self._Status

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

    @property
    def IsRoot(self):
        r"""是否有root权限：0-否；1是，999为空: 仅linux
        :rtype: int
        """
        return self._IsRoot

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

    @property
    def LastLoginTime(self):
        r"""上次登录时间
        :rtype: str
        """
        return self._LastLoginTime

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

    @property
    def Name(self):
        r"""账号名称
        :rtype: str
        """
        return self._Name

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

    @property
    def UserType(self):
        r"""账号类型：0访客用户，1标准用户，2管理员用户 ,999为空,仅Windows
        :rtype: int
        """
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def IsDomain(self):
        r"""是否域账号：0否， 1是, 999为空  仅Windows
        :rtype: int
        """
        return self._IsDomain

    @IsDomain.setter
    def IsDomain(self, IsDomain):
        self._IsDomain = IsDomain

    @property
    def IsSshLogin(self):
        r"""是否允许ssh登录，1是，0否, 999为空, 仅linux
        :rtype: int
        """
        return self._IsSshLogin

    @IsSshLogin.setter
    def IsSshLogin(self, IsSshLogin):
        self._IsSshLogin = IsSshLogin

    @property
    def HomePath(self):
        r"""Home目录
        :rtype: str
        """
        return self._HomePath

    @HomePath.setter
    def HomePath(self, HomePath):
        self._HomePath = HomePath

    @property
    def Shell(self):
        r"""Shell路径  仅linux
        :rtype: str
        """
        return self._Shell

    @Shell.setter
    def Shell(self, Shell):
        self._Shell = Shell

    @property
    def ShellLoginStatus(self):
        r"""是否shell登录性，0不是；1是 仅linux
        :rtype: int
        """
        return self._ShellLoginStatus

    @ShellLoginStatus.setter
    def ShellLoginStatus(self, ShellLoginStatus):
        self._ShellLoginStatus = ShellLoginStatus

    @property
    def PasswordChangeTime(self):
        r"""密码修改时间
        :rtype: str
        """
        return self._PasswordChangeTime

    @PasswordChangeTime.setter
    def PasswordChangeTime(self, PasswordChangeTime):
        self._PasswordChangeTime = PasswordChangeTime

    @property
    def PasswordDueTime(self):
        r"""密码过期时间  仅linux
        :rtype: str
        """
        return self._PasswordDueTime

    @PasswordDueTime.setter
    def PasswordDueTime(self, PasswordDueTime):
        self._PasswordDueTime = PasswordDueTime

    @property
    def PasswordLockDays(self):
        r"""密码锁定时间：单位天, -1为永不锁定 999为空，仅linux
        :rtype: int
        """
        return self._PasswordLockDays

    @PasswordLockDays.setter
    def PasswordLockDays(self, PasswordLockDays):
        self._PasswordLockDays = PasswordLockDays

    @property
    def Remark(self):
        r"""备注
        :rtype: str
        """
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def GroupName(self):
        r"""用户组名
        :rtype: str
        """
        return self._GroupName

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

    @property
    def DisableTime(self):
        r"""账号到期时间
        :rtype: str
        """
        return self._DisableTime

    @DisableTime.setter
    def DisableTime(self, DisableTime):
        self._DisableTime = DisableTime

    @property
    def LastLoginTerminal(self):
        r"""最近登录终端
        :rtype: str
        """
        return self._LastLoginTerminal

    @LastLoginTerminal.setter
    def LastLoginTerminal(self, LastLoginTerminal):
        self._LastLoginTerminal = LastLoginTerminal

    @property
    def LastLoginLoc(self):
        r"""最近登录位置
        :rtype: str
        """
        return self._LastLoginLoc

    @LastLoginLoc.setter
    def LastLoginLoc(self, LastLoginLoc):
        self._LastLoginLoc = LastLoginLoc

    @property
    def LastLoginIp(self):
        r"""最近登录IP
        :rtype: str
        """
        return self._LastLoginIp

    @LastLoginIp.setter
    def LastLoginIp(self, LastLoginIp):
        self._LastLoginIp = LastLoginIp

    @property
    def PasswordWarnDays(self):
        r"""密码过期提醒：单位天
        :rtype: int
        """
        return self._PasswordWarnDays

    @PasswordWarnDays.setter
    def PasswordWarnDays(self, PasswordWarnDays):
        self._PasswordWarnDays = PasswordWarnDays

    @property
    def PasswordChangeType(self):
        r"""密码修改设置：0-不可修改，1-可修改
        :rtype: int
        """
        return self._PasswordChangeType

    @PasswordChangeType.setter
    def PasswordChangeType(self, PasswordChangeType):
        self._PasswordChangeType = PasswordChangeType

    @property
    def Keys(self):
        r"""用户公钥列表
        :rtype: list of AssetUserKeyInfo
        """
        return self._Keys

    @Keys.setter
    def Keys(self, Keys):
        self._Keys = Keys

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        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):
    r"""资产管理账号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):
        r"""公钥值
        :rtype: str
        """
        return self._Value

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

    @property
    def Comment(self):
        r"""公钥备注
        :rtype: str
        """
        return self._Comment

    @Comment.setter
    def Comment(self, Comment):
        self._Comment = Comment

    @property
    def EncryptType(self):
        r"""加密方式
        :rtype: str
        """
        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):
    r"""资源管理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: 主机标签
        :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: 数据更新时间
        :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`
        """
        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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def Tag(self):
        r"""主机标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def Name(self):
        r"""应用名
        :rtype: str
        """
        return self._Name

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def RootPath(self):
        r"""根路径
        :rtype: str
        """
        return self._RootPath

    @RootPath.setter
    def RootPath(self, RootPath):
        self._RootPath = RootPath

    @property
    def ServiceType(self):
        r"""服务类型
        :rtype: str
        """
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def Domain(self):
        r"""站点域名
        :rtype: str
        """
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def VirtualPath(self):
        r"""虚拟路径
        :rtype: str
        """
        return self._VirtualPath

    @VirtualPath.setter
    def VirtualPath(self, VirtualPath):
        self._VirtualPath = VirtualPath

    @property
    def PluginCount(self):
        r"""插件数
        :rtype: int
        """
        return self._PluginCount

    @PluginCount.setter
    def PluginCount(self, PluginCount):
        self._PluginCount = PluginCount

    @property
    def Id(self):
        r"""应用ID
        :rtype: str
        """
        return self._Id

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

    @property
    def Desc(self):
        r"""应用描述
        :rtype: str
        """
        return self._Desc

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资产管理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):
        r"""名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Desc(self):
        r"""描述
        :rtype: str
        """
        return self._Desc

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def Link(self):
        r"""链接
        :rtype: str
        """
        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):
    r"""资源管理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: 主机标签
        :type Tag: list of MachineTag
        :param _Name: Web应用名
        :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:  附加信息
        :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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def Tag(self):
        r"""主机标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def Name(self):
        r"""Web应用名
        :rtype: str
        """
        return self._Name

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def Lang(self):
        r"""语言
        :rtype: str
        """
        return self._Lang

    @Lang.setter
    def Lang(self, Lang):
        self._Lang = Lang

    @property
    def ServiceType(self):
        r"""服务类型
        :rtype: str
        """
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

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

    @property
    def Path(self):
        r"""应用路径
        :rtype: str
        """
        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):
    r"""资产管理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: 数据更新时间
        :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`
        """
        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):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def MachineIp(self):
        r"""内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def OsInfo(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def Name(self):
        r"""域名
        :rtype: str
        """
        return self._Name

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

    @property
    def Port(self):
        r"""站点端口
        :rtype: str
        """
        return self._Port

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

    @property
    def Proto(self):
        r"""站点协议
        :rtype: str
        """
        return self._Proto

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

    @property
    def ServiceType(self):
        r"""服务类型
        :rtype: str
        """
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def PathCount(self):
        r"""站点路经数
        :rtype: int
        """
        return self._PathCount

    @PathCount.setter
    def PathCount(self, PathCount):
        self._PathCount = PathCount

    @property
    def User(self):
        r"""运行用户
        :rtype: str
        """
        return self._User

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

    @property
    def MainPath(self):
        r"""主目录
        :rtype: str
        """
        return self._MainPath

    @MainPath.setter
    def MainPath(self, MainPath):
        self._MainPath = MainPath

    @property
    def MainPathOwner(self):
        r"""主目录所有者
        :rtype: str
        """
        return self._MainPathOwner

    @MainPathOwner.setter
    def MainPathOwner(self, MainPathOwner):
        self._MainPathOwner = MainPathOwner

    @property
    def Permission(self):
        r"""拥有者权限
        :rtype: str
        """
        return self._Permission

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def Tag(self):
        r"""主机标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def Id(self):
        r"""Web站点Id
        :rtype: str
        """
        return self._Id

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""资产管理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: 数据更新时间
        :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):
        r"""域名
        :rtype: str
        """
        return self._Name

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

    @property
    def Port(self):
        r"""站点端口
        :rtype: str
        """
        return self._Port

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

    @property
    def Proto(self):
        r"""站点协议
        :rtype: str
        """
        return self._Proto

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

    @property
    def ServiceType(self):
        r"""服务类型
        :rtype: str
        """
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def SafeStatus(self):
        r"""安全模块状态：0未启用，1启用，999空，仅nginx
        :rtype: int
        """
        return self._SafeStatus

    @SafeStatus.setter
    def SafeStatus(self, SafeStatus):
        self._SafeStatus = SafeStatus

    @property
    def User(self):
        r"""运行用户
        :rtype: str
        """
        return self._User

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

    @property
    def MainPath(self):
        r"""主目录
        :rtype: str
        """
        return self._MainPath

    @MainPath.setter
    def MainPath(self, MainPath):
        self._MainPath = MainPath

    @property
    def Command(self):
        r"""启动命令
        :rtype: str
        """
        return self._Command

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

    @property
    def Ip(self):
        r"""绑定IP
        :rtype: str
        """
        return self._Ip

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        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):
    r"""资产管理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):
        r"""虚拟路径
        :rtype: str
        """
        return self._VirtualPath

    @VirtualPath.setter
    def VirtualPath(self, VirtualPath):
        self._VirtualPath = VirtualPath

    @property
    def RealPath(self):
        r"""物理路径
        :rtype: str
        """
        return self._RealPath

    @RealPath.setter
    def RealPath(self, RealPath):
        self._RealPath = RealPath

    @property
    def User(self):
        r"""文件所有者
        :rtype: str
        """
        return self._User

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

    @property
    def Group(self):
        r"""文件所属组
        :rtype: str
        """
        return self._Group

    @Group.setter
    def Group(self, Group):
        self._Group = Group

    @property
    def Permission(self):
        r"""文件权限
        :rtype: str
        """
        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):
    r"""资源管理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: 主机标签
        :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: 数据更新时间
        :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`
        """
        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):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def OsInfo(self):
        r"""操作系统信息
        :rtype: str
        """
        return self._OsInfo

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

    @property
    def ProjectId(self):
        r"""主机业务组ID
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def Tag(self):
        r"""主机标签
        :rtype: list of MachineTag
        """
        return self._Tag

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

    @property
    def Name(self):
        r"""服务名
        :rtype: str
        """
        return self._Name

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

    @property
    def Version(self):
        r"""版本
        :rtype: str
        """
        return self._Version

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

    @property
    def BinPath(self):
        r"""二进制路径
        :rtype: str
        """
        return self._BinPath

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

    @property
    def User(self):
        r"""启动用户
        :rtype: str
        """
        return self._User

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

    @property
    def InstallPath(self):
        r"""安装路径
        :rtype: str
        """
        return self._InstallPath

    @InstallPath.setter
    def InstallPath(self, InstallPath):
        self._InstallPath = InstallPath

    @property
    def ConfigPath(self):
        r"""配置路径
        :rtype: str
        """
        return self._ConfigPath

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

    @property
    def ProcessCount(self):
        r"""关联进程数
        :rtype: int
        """
        return self._ProcessCount

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

    @property
    def Id(self):
        r"""Web服务ID
        :rtype: str
        """
        return self._Id

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

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def Desc(self):
        r"""描述
        :rtype: str
        """
        return self._Desc

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

    @property
    def UpdateTime(self):
        r"""数据更新时间
        :rtype: str
        """
        return self._UpdateTime

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

    @property
    def FirstTime(self):
        r"""首次采集时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def IsNew(self):
        r"""是否新增[0:否|1:是]
        :rtype: int
        """
        return self._IsNew

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

    @property
    def MachineExtraInfo(self):
        r""" 附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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 BanWhiteList(AbstractModel):
    r"""阻断白名单规则

    """

    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: 白名单所属机器。
        :type Uuid: str
        :param _IsGlobal: 白名单是否全局
        :type IsGlobal: bool
        :param _Quuids: 白名单所属机器列表
        :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):
        r"""白名单ID。
        :rtype: str
        """
        return self._Id

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

    @property
    def Remark(self):
        r"""白名单别名。
        :rtype: str
        """
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def SrcIp(self):
        r"""阻断来源IP。
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def ModifyTime(self):
        r"""修改白名单时间。
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CreateTime(self):
        r"""创建白名单时间。
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Uuid(self):
        r"""白名单所属机器。
        :rtype: str
        """
        return self._Uuid

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

    @property
    def IsGlobal(self):
        r"""白名单是否全局
        :rtype: bool
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Quuids(self):
        r"""白名单所属机器列表
        :rtype: list of str
        """
        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):
    r"""阻断白名单展示列表，包含了机器的信息

    """

    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):
        r"""白名单ID
        :rtype: str
        """
        return self._Id

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

    @property
    def Remark(self):
        r"""白名单别名
        :rtype: str
        """
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def SrcIp(self):
        r"""阻断来源IP
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def ModifyTime(self):
        r"""修改白名单时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CreateTime(self):
        r"""创建白名单时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def IsGlobal(self):
        r"""白名单是否全局
        :rtype: bool
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Quuid(self):
        r"""机器的UUID
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机安全程序的UUID
        :rtype: str
        """
        return self._Uuid

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

    @property
    def MachineIp(self):
        r"""机器IP
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""机器名称
        :rtype: str
        """
        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):
    r"""基线基础信息

    """

    def __init__(self):
        r"""
        :param _Name: 基线名称
        :type Name: str
        :param _BaselineId: 基线id
        :type BaselineId: int
        :param _ParentId: 父级id
        :type ParentId: int
        """
        self._Name = None
        self._BaselineId = None
        self._ParentId = None

    @property
    def Name(self):
        r"""基线名称
        :rtype: str
        """
        return self._Name

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

    @property
    def BaselineId(self):
        r"""基线id
        :rtype: int
        """
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId

    @property
    def ParentId(self):
        r"""父级id
        :rtype: int
        """
        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):
    r"""基线规则或项的分类

    """

    def __init__(self):
        r"""
        :param _CategoryId: 分类Id
        :type CategoryId: int
        :param _CategoryName: 分类名称
        :type CategoryName: str
        :param _ParentCategoryId: 父分类ID,如果为0则没有父分类
        :type ParentCategoryId: int
        :param _ItemCount: 子分类下检测项总数
        :type ItemCount: int
        """
        self._CategoryId = None
        self._CategoryName = None
        self._ParentCategoryId = None
        self._ItemCount = None

    @property
    def CategoryId(self):
        r"""分类Id
        :rtype: int
        """
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def CategoryName(self):
        r"""分类名称
        :rtype: str
        """
        return self._CategoryName

    @CategoryName.setter
    def CategoryName(self, CategoryName):
        self._CategoryName = CategoryName

    @property
    def ParentCategoryId(self):
        r"""父分类ID,如果为0则没有父分类
        :rtype: int
        """
        return self._ParentCategoryId

    @ParentCategoryId.setter
    def ParentCategoryId(self, ParentCategoryId):
        self._ParentCategoryId = ParentCategoryId

    @property
    def ItemCount(self):
        r"""子分类下检测项总数
        :rtype: int
        """
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount


    def _deserialize(self, params):
        self._CategoryId = params.get("CategoryId")
        self._CategoryName = params.get("CategoryName")
        self._ParentCategoryId = params.get("ParentCategoryId")
        self._ItemCount = params.get("ItemCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""基线自定规则ID和名字

    """

    def __init__(self):
        r"""
        :param _RuleId: 自定义规则ID　
        :type RuleId: int
        :param _RuleName: 自定义规则名字
        :type RuleName: str
        """
        self._RuleId = None
        self._RuleName = None

    @property
    def RuleId(self):
        r"""自定义规则ID　
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        r"""自定义规则名字
        :rtype: str
        """
        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):
    r"""基线详情

    """

    def __init__(self):
        r"""
        :param _Description: 基线描述
        :type Description: str
        :param _Level: 危害等级
        :type Level: int
        :param _PackageName: package名
        :type PackageName: str
        :param _ParentId: 父级id
        :type ParentId: int
        :param _Name: 基线名
        :type Name: str
        """
        self._Description = None
        self._Level = None
        self._PackageName = None
        self._ParentId = None
        self._Name = None

    @property
    def Description(self):
        r"""基线描述
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Level(self):
        r"""危害等级
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def PackageName(self):
        r"""package名
        :rtype: str
        """
        return self._PackageName

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

    @property
    def ParentId(self):
        r"""父级id
        :rtype: int
        """
        return self._ParentId

    @ParentId.setter
    def ParentId(self, ParentId):
        self._ParentId = ParentId

    @property
    def Name(self):
        r"""基线名
        :rtype: str
        """
        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):
    r"""基线扫描参数

    """

    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):
        r"""检测的策略集合
        :rtype: list of int
        """
        return self._PolicyIds

    @PolicyIds.setter
    def PolicyIds(self, PolicyIds):
        self._PolicyIds = PolicyIds

    @property
    def RuleIds(self):
        r"""检测的规则集合
        :rtype: list of int
        """
        return self._RuleIds

    @RuleIds.setter
    def RuleIds(self, RuleIds):
        self._RuleIds = RuleIds

    @property
    def ItemIds(self):
        r"""检测项集合
        :rtype: list of int
        """
        return self._ItemIds

    @ItemIds.setter
    def ItemIds(self, ItemIds):
        self._ItemIds = ItemIds

    @property
    def HostIds(self):
        r"""检测的主机ID集合
        :rtype: list of str
        """
        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):
    r"""基线导出结果下载

    """

    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):
        r"""任务Id
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def TaskName(self):
        r"""任务名称
        :rtype: str
        """
        return self._TaskName

    @TaskName.setter
    def TaskName(self, TaskName):
        self._TaskName = TaskName

    @property
    def Status(self):
        r"""状态0:未完成 1:完成
        :rtype: int
        """
        return self._Status

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

    @property
    def StartTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

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

    @property
    def EndTime(self):
        r"""完成时间
        :rtype: str
        """
        return self._EndTime

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

    @property
    def DownloadUrl(self):
        r"""下载地址
        :rtype: str
        """
        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):
    r"""基线影响主机信息

    """

    def __init__(self):
        r"""
        :param _PassCount: 通过项
        :type PassCount: int
        :param _FailCount: 风险项
        :type FailCount: int
        :param _FirstScanTime: 首次检测事件
        :type FirstScanTime: str
        :param _LastScanTime: 最后检测时间
        :type LastScanTime: str
        :param _Status: 风险项处理状态状态：0-未通过，1-通过
        :type Status: int
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _HostIp: 主机IP
        :type HostIp: str
        :param _AliasName: 主机别名
        :type AliasName: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _MaxStatus: 检测中状态
        :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):
        r"""通过项
        :rtype: int
        """
        return self._PassCount

    @PassCount.setter
    def PassCount(self, PassCount):
        self._PassCount = PassCount

    @property
    def FailCount(self):
        r"""风险项
        :rtype: int
        """
        return self._FailCount

    @FailCount.setter
    def FailCount(self, FailCount):
        self._FailCount = FailCount

    @property
    def FirstScanTime(self):
        r"""首次检测事件
        :rtype: str
        """
        return self._FirstScanTime

    @FirstScanTime.setter
    def FirstScanTime(self, FirstScanTime):
        self._FirstScanTime = FirstScanTime

    @property
    def LastScanTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def Status(self):
        r"""风险项处理状态状态：0-未通过，1-通过
        :rtype: int
        """
        return self._Status

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def HostIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def AliasName(self):
        r"""主机别名
        :rtype: str
        """
        return self._AliasName

    @AliasName.setter
    def AliasName(self, AliasName):
        self._AliasName = AliasName

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def MaxStatus(self):
        r"""检测中状态
        :rtype: int
        """
        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):
    r"""服务器风险Top的主机信息

    """

    def __init__(self):
        r"""
        :param _EventLevel: 危害等级：1-低危；2-中危；3-高危；4-严重
        :type EventLevel: int
        :param _EventCount: 漏洞数量
        :type EventCount: int
        """
        self._EventLevel = None
        self._EventCount = None

    @property
    def EventLevel(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重
        :rtype: int
        """
        return self._EventLevel

    @EventLevel.setter
    def EventLevel(self, EventLevel):
        self._EventLevel = EventLevel

    @property
    def EventCount(self):
        r"""漏洞数量
        :rtype: int
        """
        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):
    r"""基线密码修复

    """

    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: 主机额外信息
        :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):
        r"""修复项名称
        :rtype: str
        """
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def HostIp(self):
        r"""主机Ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def CreateTime(self):
        r"""首次检测时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def FixTime(self):
        r"""修复时间
        :rtype: str
        """
        return self._FixTime

    @FixTime.setter
    def FixTime(self, FixTime):
        self._FixTime = FixTime

    @property
    def Id(self):
        r"""基线检测项结果ID
        :rtype: int
        """
        return self._Id

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

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""基线主机信息

    """

    def __init__(self):
        r"""
        :param _HostId: 主机Id
        :type HostId: str
        :param _HostName: 主机名称
        :type HostName: str
        :param _HostTag: 主机标签
        :type HostTag: str
        :param _HostIp: 内网Ip
        :type HostIp: str
        :param _WanIp: 外网Ip
        :type WanIp: str
        :param _MachineExtraInfo: 主机额外信息
        :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):
        r"""主机Id
        :rtype: str
        """
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostName(self):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostTag(self):
        r"""主机标签
        :rtype: str
        """
        return self._HostTag

    @HostTag.setter
    def HostTag(self, HostTag):
        self._HostTag = HostTag

    @property
    def HostIp(self):
        r"""内网Ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        r"""外网Ip
        :rtype: str
        """
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""基线主机检测

    """

    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
        :type Uuid: str
        :param _MachineExtraInfo: 主机额外信息
        :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):
        r"""主机Id
        :rtype: str
        """
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostIp(self):
        r"""内网Ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def HostName(self):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def WanIp(self):
        r"""外网Ip
        :rtype: str
        """
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def DetectStatus(self):
        r"""0:未通过 1:忽略 3:通过 5:检测中
        :rtype: int
        """
        return self._DetectStatus

    @DetectStatus.setter
    def DetectStatus(self, DetectStatus):
        self._DetectStatus = DetectStatus

    @property
    def PassedItemCount(self):
        r"""检测通过数
        :rtype: int
        """
        return self._PassedItemCount

    @PassedItemCount.setter
    def PassedItemCount(self, PassedItemCount):
        self._PassedItemCount = PassedItemCount

    @property
    def ItemCount(self):
        r"""关联检测项数
        :rtype: int
        """
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount

    @property
    def NotPassedItemCount(self):
        r"""检测未通过数
        :rtype: int
        """
        return self._NotPassedItemCount

    @NotPassedItemCount.setter
    def NotPassedItemCount(self, NotPassedItemCount):
        self._NotPassedItemCount = NotPassedItemCount

    @property
    def FirstTime(self):
        r"""首次检测时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def LastTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def Uuid(self):
        r"""主机安全UUID
        :rtype: str
        """
        return self._Uuid

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

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""基线影响服务器列表数据

    """

    def __init__(self):
        r"""
        :param _EventLevelList: 事件等级与次数列表
        :type EventLevelList: list of BaselineEventLevelInfo
        :param _HostName: 主机名称
        :type HostName: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Score: 计算权重的分数
        :type Score: int
        """
        self._EventLevelList = None
        self._HostName = None
        self._Quuid = None
        self._Score = None

    @property
    def EventLevelList(self):
        r"""事件等级与次数列表
        :rtype: list of BaselineEventLevelInfo
        """
        return self._EventLevelList

    @EventLevelList.setter
    def EventLevelList(self, EventLevelList):
        self._EventLevelList = EventLevelList

    @property
    def HostName(self):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Score(self):
        r"""计算权重的分数
        :rtype: int
        """
        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):
    r"""基线信息

    """

    def __init__(self):
        r"""
        :param _Name: 基线名
        :type Name: str
        :param _Level: 危害等级：1-低危；2-中危；3-高危；4-严重
        :type Level: int
        :param _RuleCount: 检测项数量
        :type RuleCount: int
        :param _HostCount: 影响服务器数量
        :type HostCount: int
        :param _Status: 通过状态:0:未通过,1:已通过
        :type Status: int
        :param _CategoryId: 基线id
        :type CategoryId: int
        :param _LastScanTime: 最后检测时间
        :type LastScanTime: str
        :param _MaxStatus: 检测中状态: 5
        :type MaxStatus: int
        :param _BaselineFailCount: 基线风险项
        :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):
        r"""基线名
        :rtype: str
        """
        return self._Name

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

    @property
    def Level(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def RuleCount(self):
        r"""检测项数量
        :rtype: int
        """
        return self._RuleCount

    @RuleCount.setter
    def RuleCount(self, RuleCount):
        self._RuleCount = RuleCount

    @property
    def HostCount(self):
        r"""影响服务器数量
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def Status(self):
        r"""通过状态:0:未通过,1:已通过
        :rtype: int
        """
        return self._Status

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

    @property
    def CategoryId(self):
        r"""基线id
        :rtype: int
        """
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def LastScanTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def MaxStatus(self):
        r"""检测中状态: 5
        :rtype: int
        """
        return self._MaxStatus

    @MaxStatus.setter
    def MaxStatus(self, MaxStatus):
        self._MaxStatus = MaxStatus

    @property
    def BaselineFailCount(self):
        r"""基线风险项
        :rtype: int
        """
        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):
    r"""基线项

    """

    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: 检测结果描述
        :type DetectResultDesc: str
        :param _Level: 危险等级
        :type Level: int
        :param _DetectStatus: 检测状态：0 未通过，1：忽略，3：通过，5：检测中
        :type DetectStatus: 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 _FirstTime: 第一次出现时间
        :type FirstTime: str
        :param _LastTime: 最近出现时间
        :type LastTime: str
        :param _CanBeFixed: 是否可以修复
        :type CanBeFixed: int
        :param _Uuid: 主机安全uuid
        :type Uuid: str
        :param _MachineExtraInfo: 主机额外信息
        :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):
        r"""项Id
        :rtype: int
        """
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        r"""项名称
        :rtype: str
        """
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def CategoryId(self):
        r"""检测项分类
        :rtype: int
        """
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def ItemDesc(self):
        r"""项描述
        :rtype: str
        """
        return self._ItemDesc

    @ItemDesc.setter
    def ItemDesc(self, ItemDesc):
        self._ItemDesc = ItemDesc

    @property
    def FixMethod(self):
        r"""修复方法
        :rtype: str
        """
        return self._FixMethod

    @FixMethod.setter
    def FixMethod(self, FixMethod):
        self._FixMethod = FixMethod

    @property
    def RuleName(self):
        r"""所属规则
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def DetectResultDesc(self):
        r"""检测结果描述
        :rtype: str
        """
        return self._DetectResultDesc

    @DetectResultDesc.setter
    def DetectResultDesc(self, DetectResultDesc):
        self._DetectResultDesc = DetectResultDesc

    @property
    def Level(self):
        r"""危险等级
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def DetectStatus(self):
        r"""检测状态：0 未通过，1：忽略，3：通过，5：检测中
        :rtype: int
        """
        return self._DetectStatus

    @DetectStatus.setter
    def DetectStatus(self, DetectStatus):
        self._DetectStatus = DetectStatus

    @property
    def HostId(self):
        r"""主机ID
        :rtype: str
        """
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostName(self):
        r"""主机名
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        r"""外网IP
        :rtype: str
        """
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def FirstTime(self):
        r"""第一次出现时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def LastTime(self):
        r"""最近出现时间
        :rtype: str
        """
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def CanBeFixed(self):
        r"""是否可以修复
        :rtype: int
        """
        return self._CanBeFixed

    @CanBeFixed.setter
    def CanBeFixed(self, CanBeFixed):
        self._CanBeFixed = CanBeFixed

    @property
    def Uuid(self):
        r"""主机安全uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""基线检测项

    """

    def __init__(self):
        r"""
        :param _ItemId: 项Id
        :type ItemId: int
        :param _ItemName: 项名称
        :type ItemName: str
        :param _ItemDesc: 项描述
        :type ItemDesc: str
        :param _FixMethod: 修复方法
        :type FixMethod: str
        :param _RuleName: 所属规则
        :type RuleName: str
        :param _DetectStatus: 0:未通过 1:忽略 3:通过 5:检测中
        :type DetectStatus: int
        :param _Level: 风险等级
        :type Level: int
        :param _HostCount: 影响服务器数
        :type HostCount: int
        :param _FirstTime: 首次检测时间
        :type FirstTime: str
        :param _LastTime: 最后检测时间
        :type LastTime: str
        :param _DetectResult: 检测结果,Json字符串
        :type DetectResult: str
        :param _RuleId: 所属规则ID
        :type RuleId: int
        :param _PassedHostCount: 通过的服务器数
        :type PassedHostCount: int
        :param _NotPassedHostCount: 未通过的服务器数
        :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):
        r"""项Id
        :rtype: int
        """
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        r"""项名称
        :rtype: str
        """
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def ItemDesc(self):
        r"""项描述
        :rtype: str
        """
        return self._ItemDesc

    @ItemDesc.setter
    def ItemDesc(self, ItemDesc):
        self._ItemDesc = ItemDesc

    @property
    def FixMethod(self):
        r"""修复方法
        :rtype: str
        """
        return self._FixMethod

    @FixMethod.setter
    def FixMethod(self, FixMethod):
        self._FixMethod = FixMethod

    @property
    def RuleName(self):
        r"""所属规则
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def DetectStatus(self):
        r"""0:未通过 1:忽略 3:通过 5:检测中
        :rtype: int
        """
        return self._DetectStatus

    @DetectStatus.setter
    def DetectStatus(self, DetectStatus):
        self._DetectStatus = DetectStatus

    @property
    def Level(self):
        r"""风险等级
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def HostCount(self):
        r"""影响服务器数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def FirstTime(self):
        r"""首次检测时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def LastTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def DetectResult(self):
        r"""检测结果,Json字符串
        :rtype: str
        """
        return self._DetectResult

    @DetectResult.setter
    def DetectResult(self, DetectResult):
        self._DetectResult = DetectResult

    @property
    def RuleId(self):
        r"""所属规则ID
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def PassedHostCount(self):
        r"""通过的服务器数
        :rtype: int
        """
        return self._PassedHostCount

    @PassedHostCount.setter
    def PassedHostCount(self, PassedHostCount):
        self._PassedHostCount = PassedHostCount

    @property
    def NotPassedHostCount(self):
        r"""未通过的服务器数
        :rtype: int
        """
        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):
    r"""基线信息

    """

    def __init__(self):
        r"""
        :param _ItemId: 基线检测项ID
        :type ItemId: int
        :param _ItemName: 检测项名字
        :type ItemName: str
        :param _RuleId: 检测项所属规则的ID
        :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
        :type SysRuleId: int
        :param _RelatedCustomRuleInfo: 被引自定义规则信息
        :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):
        r"""基线检测项ID
        :rtype: int
        """
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        r"""检测项名字
        :rtype: str
        """
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def RuleId(self):
        r"""检测项所属规则的ID
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def ItemDesc(self):
        r"""检测项描述
        :rtype: str
        """
        return self._ItemDesc

    @ItemDesc.setter
    def ItemDesc(self, ItemDesc):
        self._ItemDesc = ItemDesc

    @property
    def FixMethod(self):
        r"""检测项的修复方法
        :rtype: str
        """
        return self._FixMethod

    @FixMethod.setter
    def FixMethod(self, FixMethod):
        self._FixMethod = FixMethod

    @property
    def RuleName(self):
        r"""检测项所属规则名字
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def Level(self):
        r"""危险等级
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def SysRuleId(self):
        r"""系统规则ID
        :rtype: int
        """
        return self._SysRuleId

    @SysRuleId.setter
    def SysRuleId(self, SysRuleId):
        self._SysRuleId = SysRuleId

    @property
    def RelatedCustomRuleInfo(self):
        r"""被引自定义规则信息
        :rtype: list of BaselineCustomRuleIdName
        """
        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 BaselineItemsCategory(AbstractModel):
    r"""基线检测项分类树状结构

    """

    def __init__(self):
        r"""
        :param _ParentCategoryId: 基线检测项父分类id
        :type ParentCategoryId: int
        :param _ParentCategoryName: 基线检测项父分类名称
        :type ParentCategoryName: str
        :param _CategoryCount: 基线检测项子分类数目
        :type CategoryCount: int
        :param _CategoryLists: 基线检测项子分类列表
        :type CategoryLists: list of BaselineCategory
        """
        self._ParentCategoryId = None
        self._ParentCategoryName = None
        self._CategoryCount = None
        self._CategoryLists = None

    @property
    def ParentCategoryId(self):
        r"""基线检测项父分类id
        :rtype: int
        """
        return self._ParentCategoryId

    @ParentCategoryId.setter
    def ParentCategoryId(self, ParentCategoryId):
        self._ParentCategoryId = ParentCategoryId

    @property
    def ParentCategoryName(self):
        r"""基线检测项父分类名称
        :rtype: str
        """
        return self._ParentCategoryName

    @ParentCategoryName.setter
    def ParentCategoryName(self, ParentCategoryName):
        self._ParentCategoryName = ParentCategoryName

    @property
    def CategoryCount(self):
        r"""基线检测项子分类数目
        :rtype: int
        """
        return self._CategoryCount

    @CategoryCount.setter
    def CategoryCount(self, CategoryCount):
        self._CategoryCount = CategoryCount

    @property
    def CategoryLists(self):
        r"""基线检测项子分类列表
        :rtype: list of BaselineCategory
        """
        return self._CategoryLists

    @CategoryLists.setter
    def CategoryLists(self, CategoryLists):
        self._CategoryLists = CategoryLists


    def _deserialize(self, params):
        self._ParentCategoryId = params.get("ParentCategoryId")
        self._ParentCategoryName = params.get("ParentCategoryName")
        self._CategoryCount = params.get("CategoryCount")
        if params.get("CategoryLists") is not None:
            self._CategoryLists = []
            for item in params.get("CategoryLists"):
                obj = BaselineCategory()
                obj._deserialize(item)
                self._CategoryLists.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):
    r"""基线策略信息

    """

    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):
        r"""策略名称,长度不超过128英文字符
        :rtype: str
        """
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def DetectInterval(self):
        r"""检测间隔[1:1天|3:3天|5:5天|7:7天]
        :rtype: int
        """
        return self._DetectInterval

    @DetectInterval.setter
    def DetectInterval(self, DetectInterval):
        self._DetectInterval = DetectInterval

    @property
    def DetectTime(self):
        r"""检测时间
        :rtype: str
        """
        return self._DetectTime

    @DetectTime.setter
    def DetectTime(self, DetectTime):
        self._DetectTime = DetectTime

    @property
    def IsEnabled(self):
        r"""是否开启[0:未开启|1:开启]
        :rtype: int
        """
        return self._IsEnabled

    @IsEnabled.setter
    def IsEnabled(self, IsEnabled):
        self._IsEnabled = IsEnabled

    @property
    def AssetType(self):
        r"""资产类型[0:所有专业版旗舰版|1:id|2:ip]
        :rtype: int
        """
        return self._AssetType

    @AssetType.setter
    def AssetType(self, AssetType):
        self._AssetType = AssetType

    @property
    def PolicyId(self):
        r"""策略Id
        :rtype: int
        """
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def RuleCount(self):
        r"""关联基线项数目
        :rtype: int
        """
        return self._RuleCount

    @RuleCount.setter
    def RuleCount(self, RuleCount):
        self._RuleCount = RuleCount

    @property
    def ItemCount(self):
        r"""关联基线项数目
        :rtype: int
        """
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount

    @property
    def HostCount(self):
        r"""关联基线主机数目
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def RuleIds(self):
        r"""规则Id
        :rtype: list of int
        """
        return self._RuleIds

    @RuleIds.setter
    def RuleIds(self, RuleIds):
        self._RuleIds = RuleIds

    @property
    def HostIds(self):
        r"""主机Id
        :rtype: list of str
        """
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def HostIps(self):
        r"""主机Ip
        :rtype: list of str
        """
        return self._HostIps

    @HostIps.setter
    def HostIps(self, HostIps):
        self._HostIps = HostIps

    @property
    def IsDefault(self):
        r"""是否是系统默认
        :rtype: int
        """
        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):
    r"""基线检测策略

    """

    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:检测完成
        :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):
        r"""策略Id
        :rtype: int
        """
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def TaskId(self):
        r"""检测任务Id
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def HostCount(self):
        r"""关联主机数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def StartTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

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

    @property
    def FinishTime(self):
        r"""结束时间
        :rtype: str
        """
        return self._FinishTime

    @FinishTime.setter
    def FinishTime(self, FinishTime):
        self._FinishTime = FinishTime

    @property
    def PolicyName(self):
        r"""策略名称
        :rtype: str
        """
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def SuccessCount(self):
        r"""成功主机数
        :rtype: int
        """
        return self._SuccessCount

    @SuccessCount.setter
    def SuccessCount(self, SuccessCount):
        self._SuccessCount = SuccessCount

    @property
    def FailedCount(self):
        r"""失败主技数
        :rtype: int
        """
        return self._FailedCount

    @FailedCount.setter
    def FailedCount(self, FailedCount):
        self._FailedCount = FailedCount

    @property
    def TimeoutCount(self):
        r"""失败主机数
        :rtype: int
        """
        return self._TimeoutCount

    @TimeoutCount.setter
    def TimeoutCount(self, TimeoutCount):
        self._TimeoutCount = TimeoutCount

    @property
    def PolicyDetectStatus(self):
        r"""1:检测中 2:检测完成
        :rtype: int
        """
        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):
    r"""基线检测项top5

    """

    def __init__(self):
        r"""
        :param _ItemId: 检测项Id
        :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):
        r"""检测项Id
        :rtype: int
        """
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        r"""检测项名字
        :rtype: str
        """
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def Level(self):
        r"""风险等级
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def HostCount(self):
        r"""影响服务器数
        :rtype: int
        """
        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):
    r"""基线规则

    """

    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]
        :type AssetType: int
        :param _HostIds: 主机Id集合
        :type HostIds: list of str
        :param _HostIps: 主机IP
        :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):
        r"""规则名称,长度不超过128英文字符
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleId(self):
        r"""规则Id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleType(self):
        r"""规则类型 [0:系统|1:自定义]
        :rtype: int
        """
        return self._RuleType

    @RuleType.setter
    def RuleType(self, RuleType):
        self._RuleType = RuleType

    @property
    def CategoryId(self):
        r"""规则分类
        :rtype: int
        """
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def RuleDesc(self):
        r"""规则描述
        :rtype: str
        """
        return self._RuleDesc

    @RuleDesc.setter
    def RuleDesc(self, RuleDesc):
        self._RuleDesc = RuleDesc

    @property
    def HostCount(self):
        r"""主机数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def Items(self):
        r"""适配项ID列表
        :rtype: list of Item
        """
        return self._Items

    @Items.setter
    def Items(self, Items):
        self._Items = Items

    @property
    def AssetType(self):
        r"""[0:所有专业版旗舰版|1:hostID|2:ip]
        :rtype: int
        """
        return self._AssetType

    @AssetType.setter
    def AssetType(self, AssetType):
        self._AssetType = AssetType

    @property
    def HostIds(self):
        r"""主机Id集合
        :rtype: list of str
        """
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def HostIps(self):
        r"""主机IP
        :rtype: list of str
        """
        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):
    r"""基线规则检测

    """

    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集合
        :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):
        r"""规则Id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleDesc(self):
        r"""规则描述
        :rtype: str
        """
        return self._RuleDesc

    @RuleDesc.setter
    def RuleDesc(self, RuleDesc):
        self._RuleDesc = RuleDesc

    @property
    def ItemCount(self):
        r"""关联项数
        :rtype: int
        """
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount

    @property
    def HostCount(self):
        r"""关联主机数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def FirstTime(self):
        r"""首次检测时间
        :rtype: str
        """
        return self._FirstTime

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

    @property
    def LastTime(self):
        r"""string
        :rtype: str
        """
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def DetectStatus(self):
        r"""0:未通过 1:忽略 3:通过 5:检测中
        :rtype: int
        """
        return self._DetectStatus

    @DetectStatus.setter
    def DetectStatus(self, DetectStatus):
        self._DetectStatus = DetectStatus

    @property
    def ItemIds(self):
        r"""ItemID集合
        :rtype: list of int
        """
        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):
    r"""基线检测信息

    """

    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):
        r"""检测项名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def Description(self):
        r"""检测项描述
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def FixMessage(self):
        r"""修复建议
        :rtype: str
        """
        return self._FixMessage

    @FixMessage.setter
    def FixMessage(self, FixMessage):
        self._FixMessage = FixMessage

    @property
    def Level(self):
        r"""危害等级
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Status(self):
        r"""状态
        :rtype: int
        """
        return self._Status

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

    @property
    def RuleId(self):
        r"""检测项id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def LastScanAt(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastScanAt

    @LastScanAt.setter
    def LastScanAt(self, LastScanAt):
        self._LastScanAt = LastScanAt

    @property
    def RuleRemark(self):
        r"""具体原因说明
        :rtype: str
        """
        return self._RuleRemark

    @RuleRemark.setter
    def RuleRemark(self, RuleRemark):
        self._RuleRemark = RuleRemark

    @property
    def Uuid(self):
        r"""唯一Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def EventId(self):
        r"""唯一事件ID
        :rtype: int
        """
        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):
    r"""基线检测项TOP信息

    """

    def __init__(self):
        r"""
        :param _RuleName: 基线检测项名
        :type RuleName: str
        :param _Level: 检测项危害等级
        :type Level: int
        :param _EventCount: 事件总数
        :type EventCount: int
        :param _RuleId: 检测项id
        :type RuleId: int
        """
        self._RuleName = None
        self._Level = None
        self._EventCount = None
        self._RuleId = None

    @property
    def RuleName(self):
        r"""基线检测项名
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def Level(self):
        r"""检测项危害等级
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def EventCount(self):
        r"""事件总数
        :rtype: int
        """
        return self._EventCount

    @EventCount.setter
    def EventCount(self, EventCount):
        self._EventCount = EventCount

    @property
    def RuleId(self):
        r"""检测项id
        :rtype: int
        """
        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):
    r"""基线弱口令

    """

    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):
        r"""密码Id
        :rtype: int
        """
        return self._PasswordId

    @PasswordId.setter
    def PasswordId(self, PasswordId):
        self._PasswordId = PasswordId

    @property
    def WeakPassword(self):
        r"""密码
        :rtype: str
        """
        return self._WeakPassword

    @WeakPassword.setter
    def WeakPassword(self, WeakPassword):
        self._WeakPassword = WeakPassword

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        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):
    r"""高危命令数据

    """

    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: 实时监控(雷霆版)
        :type DetectBy: int
        :param _Pid: 进程id
        :type Pid: str
        :param _Exe: 进程名称
        :type Exe: str
        :param _ModifyTime: 处理时间
        :type ModifyTime: str
        :param _RuleCategory: 规则类别  0=系统规则，1=用户规则
        :type RuleCategory: int
        :param _RegexBashCmd: 自动生成的正则表达式
        :type RegexBashCmd: str
        :param _HostName: 主机HostName
        :type HostName: 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
        self._HostName = None

    @property
    def Id(self):
        r"""数据ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuid(self):
        r"""主机安全ID
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机ID
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Hostip(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip

    @property
    def User(self):
        r"""执行用户名
        :rtype: str
        """
        return self._User

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

    @property
    def Platform(self):
        r"""平台类型
        :rtype: int
        """
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def BashCmd(self):
        r"""执行命令
        :rtype: str
        """
        return self._BashCmd

    @BashCmd.setter
    def BashCmd(self, BashCmd):
        self._BashCmd = BashCmd

    @property
    def RuleId(self):
        r"""规则ID
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleLevel(self):
        r"""规则等级：1-高 2-中 3-低
        :rtype: int
        """
        return self._RuleLevel

    @RuleLevel.setter
    def RuleLevel(self, RuleLevel):
        self._RuleLevel = RuleLevel

    @property
    def Status(self):
        r"""处理状态： 0 = 待处理 1= 已处理, 2 = 已加白， 3 = 已忽略
        :rtype: int
        """
        return self._Status

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

    @property
    def CreateTime(self):
        r"""发生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        r"""主机名
        :rtype: str
        """
        return self._MachineName

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

    @property
    def DetectBy(self):
        r"""0: bash日志 1: 实时监控(雷霆版)
        :rtype: int
        """
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def Pid(self):
        r"""进程id
        :rtype: str
        """
        return self._Pid

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

    @property
    def Exe(self):
        r"""进程名称
        :rtype: str
        """
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def ModifyTime(self):
        r"""处理时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RuleCategory(self):
        r"""规则类别  0=系统规则，1=用户规则
        :rtype: int
        """
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def RegexBashCmd(self):
        r"""自动生成的正则表达式
        :rtype: str
        """
        return self._RegexBashCmd

    @RegexBashCmd.setter
    def RegexBashCmd(self, RegexBashCmd):
        self._RegexBashCmd = RegexBashCmd

    @property
    def HostName(self):
        r"""主机HostName
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName


    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._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 BashEventNew(AbstractModel):
    r"""高危命令数据(新)

    """

    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: 实时监控(雷霆版)
        :type DetectBy: int
        :param _Pid: 进程id
        :type Pid: str
        :param _Exe: 进程名称
        :type Exe: str
        :param _ModifyTime: 处理时间
        :type ModifyTime: str
        :param _RuleCategory: 规则类别  0=系统规则，1=用户规则
        :type RuleCategory: int
        :param _RegexBashCmd: 转义后的正则表达式
        :type RegexBashCmd: str
        :param _RegexExe: 转义后的正则表达式
        :type RegexExe: str
        :param _MachineType: 0:普通 1:专业版 2:旗舰版
        :type MachineType: int
        :param _MachineExtraInfo: 机器额外信息
        :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._RegexExe = None
        self._MachineType = None
        self._MachineExtraInfo = None

    @property
    def Id(self):
        r"""数据ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuid(self):
        r"""主机安全ID
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机ID
        :rtype: str
        """
        return self._Quuid

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

    @property
    def HostIp(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def User(self):
        r"""执行用户名
        :rtype: str
        """
        return self._User

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

    @property
    def Platform(self):
        r"""平台类型
        :rtype: int
        """
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def BashCmd(self):
        r"""执行命令
        :rtype: str
        """
        return self._BashCmd

    @BashCmd.setter
    def BashCmd(self, BashCmd):
        self._BashCmd = BashCmd

    @property
    def RuleId(self):
        r"""规则ID
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleLevel(self):
        r"""规则等级：1-高 2-中 3-低
        :rtype: int
        """
        return self._RuleLevel

    @RuleLevel.setter
    def RuleLevel(self, RuleLevel):
        self._RuleLevel = RuleLevel

    @property
    def Status(self):
        r"""处理状态： 0 = 待处理 1= 已处理, 2 = 已加白， 3 = 已忽略
        :rtype: int
        """
        return self._Status

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

    @property
    def CreateTime(self):
        r"""发生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        r"""主机名
        :rtype: str
        """
        return self._MachineName

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

    @property
    def DetectBy(self):
        r"""0: bash日志 1: 实时监控(雷霆版)
        :rtype: int
        """
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def Pid(self):
        r"""进程id
        :rtype: str
        """
        return self._Pid

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

    @property
    def Exe(self):
        r"""进程名称
        :rtype: str
        """
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def ModifyTime(self):
        r"""处理时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RuleCategory(self):
        r"""规则类别  0=系统规则，1=用户规则
        :rtype: int
        """
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def RegexBashCmd(self):
        r"""转义后的正则表达式
        :rtype: str
        """
        return self._RegexBashCmd

    @RegexBashCmd.setter
    def RegexBashCmd(self, RegexBashCmd):
        self._RegexBashCmd = RegexBashCmd

    @property
    def RegexExe(self):
        r"""转义后的正则表达式
        :rtype: str
        """
        return self._RegexExe

    @RegexExe.setter
    def RegexExe(self, RegexExe):
        self._RegexExe = RegexExe

    @property
    def MachineType(self):
        r"""0:普通 1:专业版 2:旗舰版
        :rtype: int
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineExtraInfo(self):
        r"""机器额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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._RegexExe = params.get("RegexExe")
        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):
    r"""高危命令数据详情

    """

    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 _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: 进程名称
        :type Exe: str
        :param _ModifyTime: 处理时间
        :type ModifyTime: str
        :param _RuleCategory: 规则类别  0=系统规则，1=用户规则
        :type RuleCategory: int
        :param _RegexBashCmd: 自动生成的正则表达式
        :type RegexBashCmd: str
        :param _PsTree: 进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :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 _User: 登录用户
        :type User: str
        :param _Pid: 进程号
        :type Pid: str
        :param _DetectBy: 数据来源
        :type DetectBy: 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
        self._DetectBy = None

    @property
    def Id(self):
        r"""数据ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机ID
        :rtype: str
        """
        return self._Quuid

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

    @property
    def HostIp(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Platform(self):
        r"""平台类型
        :rtype: int
        """
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def BashCmd(self):
        r"""执行命令
        :rtype: str
        """
        return self._BashCmd

    @BashCmd.setter
    def BashCmd(self, BashCmd):
        self._BashCmd = BashCmd

    @property
    def RuleId(self):
        r"""规则ID,等于0表示已规则已被删除或生效范围已修改
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleLevel(self):
        r"""规则等级：1-高 2-中 3-低
        :rtype: int
        """
        return self._RuleLevel

    @RuleLevel.setter
    def RuleLevel(self, RuleLevel):
        self._RuleLevel = RuleLevel

    @property
    def Status(self):
        r"""处理状态： 0 = 待处理 1= 已处理, 2 = 已加白， 3= 已忽略
        :rtype: int
        """
        return self._Status

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

    @property
    def CreateTime(self):
        r"""发生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        r"""主机名
        :rtype: str
        """
        return self._MachineName

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

    @property
    def Exe(self):
        r"""进程名称
        :rtype: str
        """
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def ModifyTime(self):
        r"""处理时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RuleCategory(self):
        r"""规则类别  0=系统规则，1=用户规则
        :rtype: int
        """
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def RegexBashCmd(self):
        r"""自动生成的正则表达式
        :rtype: str
        """
        return self._RegexBashCmd

    @RegexBashCmd.setter
    def RegexBashCmd(self, RegexBashCmd):
        self._RegexBashCmd = RegexBashCmd

    @property
    def PsTree(self):
        r"""进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :rtype: str
        """
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def SuggestScheme(self):
        r"""建议方案
        :rtype: str
        """
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def HarmDescribe(self):
        r"""描述
        :rtype: str
        """
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def Tags(self):
        r"""标签
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def References(self):
        r"""参考链接
        :rtype: list of str
        """
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def MachineWanIp(self):
        r"""主机外网ip
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineStatus(self):
        r"""主机在线状态 OFFLINE  ONLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def User(self):
        r"""登录用户
        :rtype: str
        """
        return self._User

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

    @property
    def Pid(self):
        r"""进程号
        :rtype: str
        """
        return self._Pid

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

    @property
    def DetectBy(self):
        r"""数据来源
        :rtype: str
        """
        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._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 BashEventsInfoNew(AbstractModel):
    r"""高危命令数据详情(新)

    """

    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: 进程名称
        :type Exe: str
        :param _ModifyTime: 处理时间
        :type ModifyTime: str
        :param _RuleCategory: 规则类别  0=系统规则，1=用户规则
        :type RuleCategory: int
        :param _RegexBashCmd: 自动生成的正则表达式
        :type RegexBashCmd: str
        :param _PsTree: 进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :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 _User: 登录用户
        :type User: str
        :param _Pid: 进程号
        :type Pid: str
        :param _MachineType: 0:普通 1:专业版 2:旗舰版
        :type MachineType: int
        :param _DetectBy: 检测来源 0:bash日志 1:实时监控
        :type DetectBy: int
        :param _BashCmdDecoded: 执行命令(解码后)
        :type BashCmdDecoded: 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
        self._MachineType = None
        self._DetectBy = None
        self._BashCmdDecoded = None

    @property
    def Id(self):
        r"""数据ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuid(self):
        r"""主机安全ID
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机ID
        :rtype: str
        """
        return self._Quuid

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

    @property
    def HostIp(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Platform(self):
        r"""平台类型
        :rtype: int
        """
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def BashCmd(self):
        r"""执行命令
        :rtype: str
        """
        return self._BashCmd

    @BashCmd.setter
    def BashCmd(self, BashCmd):
        self._BashCmd = BashCmd

    @property
    def RuleId(self):
        r"""规则ID,等于0表示已规则已被删除或生效范围已修改
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleLevel(self):
        r"""规则等级：1-高 2-中 3-低
        :rtype: int
        """
        return self._RuleLevel

    @RuleLevel.setter
    def RuleLevel(self, RuleLevel):
        self._RuleLevel = RuleLevel

    @property
    def Status(self):
        r"""处理状态： 0 = 待处理 1= 已处理, 2 = 已加白， 3= 已忽略
        :rtype: int
        """
        return self._Status

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

    @property
    def CreateTime(self):
        r"""发生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        r"""主机名
        :rtype: str
        """
        return self._MachineName

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

    @property
    def Exe(self):
        r"""进程名称
        :rtype: str
        """
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def ModifyTime(self):
        r"""处理时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RuleCategory(self):
        r"""规则类别  0=系统规则，1=用户规则
        :rtype: int
        """
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def RegexBashCmd(self):
        r"""自动生成的正则表达式
        :rtype: str
        """
        return self._RegexBashCmd

    @RegexBashCmd.setter
    def RegexBashCmd(self, RegexBashCmd):
        self._RegexBashCmd = RegexBashCmd

    @property
    def PsTree(self):
        r"""进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :rtype: str
        """
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def SuggestScheme(self):
        r"""建议方案
        :rtype: str
        """
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def HarmDescribe(self):
        r"""描述
        :rtype: str
        """
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def Tags(self):
        r"""标签
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def References(self):
        r"""参考链接
        :rtype: list of str
        """
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def MachineWanIp(self):
        r"""主机外网ip
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def MachineStatus(self):
        r"""主机在线状态 OFFLINE  ONLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def User(self):
        r"""登录用户
        :rtype: str
        """
        return self._User

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

    @property
    def Pid(self):
        r"""进程号
        :rtype: str
        """
        return self._Pid

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

    @property
    def MachineType(self):
        r"""0:普通 1:专业版 2:旗舰版
        :rtype: int
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def DetectBy(self):
        r"""检测来源 0:bash日志 1:实时监控
        :rtype: int
        """
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def BashCmdDecoded(self):
        r"""执行命令(解码后)
        :rtype: str
        """
        return self._BashCmdDecoded

    @BashCmdDecoded.setter
    def BashCmdDecoded(self, BashCmdDecoded):
        self._BashCmdDecoded = BashCmdDecoded


    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")
        self._BashCmdDecoded = params.get("BashCmdDecoded")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""高危命令策略

    """

    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: 正则表达式 base64 加密,该字段废弃,如果写入则自动替换为Rules.Process.CmdLine
        :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: 策略描述
        :type Descript: str
        :param _EventId: 事件列表点击“加入白名单”时,需要传EventId 事件的id
        :type EventId: int
        :param _DealOldEvents: 是否处理旧事件为白名单 0=不处理 1=处理
        :type DealOldEvents: int
        :param _Quuids: 生效主机的QUUID集合
        :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
        :param _Rules: 规则表达式
        :type Rules: :class:`tencentcloud.cwp.v20180228.models.PolicyRules`
        """
        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
        self._Rules = None

    @property
    def Name(self):
        r"""策略名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Enable(self):
        r"""1:有效 0:无效
        :rtype: int
        """
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def White(self):
        r"""0:黑名单 1:白名单
        :rtype: int
        """
        return self._White

    @White.setter
    def White(self, White):
        self._White = White

    @property
    def BashAction(self):
        r"""0:告警 1:白名单 2:拦截
        :rtype: int
        """
        return self._BashAction

    @BashAction.setter
    def BashAction(self, BashAction):
        self._BashAction = BashAction

    @property
    def Rule(self):
        r"""正则表达式 base64 加密,该字段废弃,如果写入则自动替换为Rules.Process.CmdLine
        :rtype: str
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Level(self):
        r"""危险等级(0:无，1: 高危 2:中危 3: 低危)
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Scope(self):
        r"""生效范围（0:一组quuid 1:所有专业版(包含旗舰版) 2:所有旗舰版 3:所有主机）
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def Id(self):
        r"""策略ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Descript(self):
        r"""策略描述
        :rtype: str
        """
        return self._Descript

    @Descript.setter
    def Descript(self, Descript):
        self._Descript = Descript

    @property
    def EventId(self):
        r"""事件列表点击“加入白名单”时,需要传EventId 事件的id
        :rtype: int
        """
        return self._EventId

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

    @property
    def DealOldEvents(self):
        r"""是否处理旧事件为白名单 0=不处理 1=处理
        :rtype: int
        """
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Quuids(self):
        r"""生效主机的QUUID集合
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def Category(self):
        r"""策略类型，0:系统  1:用户
        :rtype: int
        """
        return self._Category

    @Category.setter
    def Category(self, Category):
        self._Category = Category

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Uuids(self):
        r"""老版本兼容可能会用到
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def Rules(self):
        r"""规则表达式
        :rtype: :class:`tencentcloud.cwp.v20180228.models.PolicyRules`
        """
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules


    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")
        if params.get("Rules") is not None:
            self._Rules = PolicyRules()
            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 BashRule(AbstractModel):
    r"""高危命令规则

    """

    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数组
        :type Uuids: list of str
        :param _White: 0=黑名单 1=白名单
        :type White: int
        :param _DealOldEvents: 是否处理之前的事件 0: 不处理 1:处理
        :type DealOldEvents: int
        :param _Description: 规则描述
        :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):
        r"""规则ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuid(self):
        r"""客户端ID
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Name(self):
        r"""规则名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Level(self):
        r"""危险等级(0 ：无 1: 高危 2:中危 3: 低危)
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Rule(self):
        r"""正则表达式
        :rtype: str
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Decription(self):
        warnings.warn("parameter `Decription` is deprecated", DeprecationWarning) 

        r"""规则描述
        :rtype: str
        """
        return self._Decription

    @Decription.setter
    def Decription(self, Decription):
        warnings.warn("parameter `Decription` is deprecated", DeprecationWarning) 

        self._Decription = Decription

    @property
    def Operator(self):
        r"""操作人
        :rtype: str
        """
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def IsGlobal(self):
        r"""是否全局规则
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        r"""状态 (0: 有效 1: 无效)
        :rtype: int
        """
        return self._Status

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

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Hostip(self):
        r"""主机IP
        :rtype: str
        """
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip

    @property
    def Uuids(self):
        r"""生效服务器的uuid数组
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def White(self):
        r"""0=黑名单 1=白名单
        :rtype: int
        """
        return self._White

    @White.setter
    def White(self, White):
        self._White = White

    @property
    def DealOldEvents(self):
        r"""是否处理之前的事件 0: 不处理 1:处理
        :rtype: int
        """
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Description(self):
        r"""规则描述
        :rtype: str
        """
        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):
    r"""安全播报文章详情

    """

    def __init__(self):
        r"""
        :param _Title: 文章名字
        :type Title: str
        :param _GotoType: 跳转位置：0=不跳转，1=文件查杀，2=漏洞扫描，3=安全基线
        :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):
        r"""文章名字
        :rtype: str
        """
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def GotoType(self):
        r"""跳转位置：0=不跳转，1=文件查杀，2=漏洞扫描，3=安全基线
        :rtype: int
        """
        return self._GotoType

    @GotoType.setter
    def GotoType(self, GotoType):
        self._GotoType = GotoType

    @property
    def Subtitle(self):
        r"""副标题
        :rtype: str
        """
        return self._Subtitle

    @Subtitle.setter
    def Subtitle(self, Subtitle):
        self._Subtitle = Subtitle

    @property
    def CreateTime(self):
        r"""发布时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Content(self):
        r"""富文本内容信息
        :rtype: str
        """
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def Id(self):
        r"""文章唯一Id
        :rtype: int
        """
        return self._Id

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

    @property
    def Type(self):
        r"""类型：0=紧急通知，1=功能更新，2=行业荣誉，3=版本发布
        :rtype: int
        """
        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):
    r"""安全播报列表

    """

    def __init__(self):
        r"""
        :param _Title: 文章名字
        :type Title: str
        :param _Type: 类型：0=紧急通知，1=功能更新，2=行业荣誉，3=版本发布
        :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):
        r"""文章名字
        :rtype: str
        """
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def Type(self):
        r"""类型：0=紧急通知，1=功能更新，2=行业荣誉，3=版本发布
        :rtype: int
        """
        return self._Type

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

    @property
    def Subtitle(self):
        r"""副标题
        :rtype: str
        """
        return self._Subtitle

    @Subtitle.setter
    def Subtitle(self, Subtitle):
        self._Subtitle = Subtitle

    @property
    def CreateTime(self):
        r"""发布时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Id(self):
        r"""文章唯一id
        :rtype: int
        """
        return self._Id

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

    @property
    def Level(self):
        r"""危险程度  0：无， 1：严重， 2: 高危， 3:中危， 4: 低危
        :rtype: int
        """
        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):
    r"""密码破解列表实体

    """

    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 _SrcIp: 来源ip
        :type SrcIp: str
        :param _Status: SUCCESS：破解成功；FAILED：破解失败
        :type Status: str
        :param _Country: 国家id
        :type Country: int
        :param _City: 城市id
        :type City: int
        :param _Province: 省份id
        :type Province: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _BanStatus: 0 -不阻断(客户端版本不支持)
1 -已阻断
2 -阻断失败(程序异常)
3 -不阻断(内网不阻断)
4 -可用区不支持阻断
10-阻断中
81-不阻断(未开启阻断)
82-不阻断(非专业版)
83-不阻断(已加白名单)
86-不阻断(系统白名单)
87-不阻断(客户端离线)
88-不阻断(来源Ip归属相同客户)
89-不阻断(ipv6不支持阻断)
        :type BanStatus: int
        :param _EventType: 事件类型：200-暴力破解事件，300-暴力破解成功事件（页面展示），400-暴力破解不存在的账号事件
        :type EventType: int
        :param _Count: 发生次数
        :type Count: int
        :param _Quuid: 机器UUID
        :type Quuid: str
        :param _IsProVersion: 是否为专业版（true/false）
        :type IsProVersion: bool
        :param _Protocol: 被攻击的服务的用户名
        :type Protocol: str
        :param _Port: 端口
        :type Port: int
        :param _ModifyTime: 最近攻击时间
        :type ModifyTime: str
        :param _InstanceId: 实例ID
        :type InstanceId: str
        :param _DataStatus: 0：待处理，1：忽略，5：已处理，6：加入白名单
        :type DataStatus: int
        :param _MachineExtraInfo: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Location: 地理位置中文名
        :type Location: str
        :param _RiskLevel: 威胁等级：0低危，1中危，2高危
        :type RiskLevel: int
        :param _DataFrom: 事件来源：0--阻断规则，1--威胁情报
        :type DataFrom: int
        :param _AttackStatusDesc: 破解状态说明
        :type AttackStatusDesc: str
        :param _BanExpiredTime: 阻断过期时间（仅阻断中事件有效）
        :type BanExpiredTime: str
        :param _IPAnalyse: IP分析
        :type IPAnalyse: :class:`tencentcloud.cwp.v20180228.models.IPAnalyse`
        """
        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
        self._DataFrom = None
        self._AttackStatusDesc = None
        self._BanExpiredTime = None
        self._IPAnalyse = None

    @property
    def Id(self):
        r"""唯一Id
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuid(self):
        r"""主机安全客户端唯一标识UUID
        :rtype: str
        """
        return self._Uuid

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

    @property
    def MachineIp(self):
        r"""主机ip
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def MachineName(self):
        r"""主机名
        :rtype: str
        """
        return self._MachineName

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

    @property
    def UserName(self):
        r"""用户名
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        r"""来源ip
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def Status(self):
        r"""SUCCESS：破解成功；FAILED：破解失败
        :rtype: str
        """
        return self._Status

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

    @property
    def Country(self):
        r"""国家id
        :rtype: int
        """
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def City(self):
        r"""城市id
        :rtype: int
        """
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def Province(self):
        r"""省份id
        :rtype: int
        """
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def BanStatus(self):
        r"""0 -不阻断(客户端版本不支持)
1 -已阻断
2 -阻断失败(程序异常)
3 -不阻断(内网不阻断)
4 -可用区不支持阻断
10-阻断中
81-不阻断(未开启阻断)
82-不阻断(非专业版)
83-不阻断(已加白名单)
86-不阻断(系统白名单)
87-不阻断(客户端离线)
88-不阻断(来源Ip归属相同客户)
89-不阻断(ipv6不支持阻断)
        :rtype: int
        """
        return self._BanStatus

    @BanStatus.setter
    def BanStatus(self, BanStatus):
        self._BanStatus = BanStatus

    @property
    def EventType(self):
        r"""事件类型：200-暴力破解事件，300-暴力破解成功事件（页面展示），400-暴力破解不存在的账号事件
        :rtype: int
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def Count(self):
        r"""发生次数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Quuid(self):
        r"""机器UUID
        :rtype: str
        """
        return self._Quuid

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

    @property
    def IsProVersion(self):
        r"""是否为专业版（true/false）
        :rtype: bool
        """
        return self._IsProVersion

    @IsProVersion.setter
    def IsProVersion(self, IsProVersion):
        self._IsProVersion = IsProVersion

    @property
    def Protocol(self):
        r"""被攻击的服务的用户名
        :rtype: str
        """
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def Port(self):
        r"""端口
        :rtype: int
        """
        return self._Port

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

    @property
    def ModifyTime(self):
        r"""最近攻击时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def InstanceId(self):
        r"""实例ID
        :rtype: str
        """
        return self._InstanceId

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

    @property
    def DataStatus(self):
        r"""0：待处理，1：忽略，5：已处理，6：加入白名单
        :rtype: int
        """
        return self._DataStatus

    @DataStatus.setter
    def DataStatus(self, DataStatus):
        self._DataStatus = DataStatus

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

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

    @property
    def Location(self):
        r"""地理位置中文名
        :rtype: str
        """
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location

    @property
    def RiskLevel(self):
        r"""威胁等级：0低危，1中危，2高危
        :rtype: int
        """
        return self._RiskLevel

    @RiskLevel.setter
    def RiskLevel(self, RiskLevel):
        self._RiskLevel = RiskLevel

    @property
    def DataFrom(self):
        r"""事件来源：0--阻断规则，1--威胁情报
        :rtype: int
        """
        return self._DataFrom

    @DataFrom.setter
    def DataFrom(self, DataFrom):
        self._DataFrom = DataFrom

    @property
    def AttackStatusDesc(self):
        r"""破解状态说明
        :rtype: str
        """
        return self._AttackStatusDesc

    @AttackStatusDesc.setter
    def AttackStatusDesc(self, AttackStatusDesc):
        self._AttackStatusDesc = AttackStatusDesc

    @property
    def BanExpiredTime(self):
        r"""阻断过期时间（仅阻断中事件有效）
        :rtype: str
        """
        return self._BanExpiredTime

    @BanExpiredTime.setter
    def BanExpiredTime(self, BanExpiredTime):
        self._BanExpiredTime = BanExpiredTime

    @property
    def IPAnalyse(self):
        r"""IP分析
        :rtype: :class:`tencentcloud.cwp.v20180228.models.IPAnalyse`
        """
        return self._IPAnalyse

    @IPAnalyse.setter
    def IPAnalyse(self, IPAnalyse):
        self._IPAnalyse = IPAnalyse


    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")
        self._DataFrom = params.get("DataFrom")
        self._AttackStatusDesc = params.get("AttackStatusDesc")
        self._BanExpiredTime = params.get("BanExpiredTime")
        if params.get("IPAnalyse") is not None:
            self._IPAnalyse = IPAnalyse()
            self._IPAnalyse._deserialize(params.get("IPAnalyse"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""标准阻断模式规则

    """

    def __init__(self):
        r"""
        :param _TimeRange: 爆破事件发生的时间范围，单位：秒
        :type TimeRange: int
        :param _LoginFailTimes: 爆破事件失败次数
        :type LoginFailTimes: int
        """
        self._TimeRange = None
        self._LoginFailTimes = None

    @property
    def TimeRange(self):
        r"""爆破事件发生的时间范围，单位：秒
        :rtype: int
        """
        return self._TimeRange

    @TimeRange.setter
    def TimeRange(self, TimeRange):
        self._TimeRange = TimeRange

    @property
    def LoginFailTimes(self):
        r"""爆破事件失败次数
        :rtype: int
        """
        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):
    r"""暴力破解判定规则列表

    """

    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):
        r"""爆破事件发生的时间范围，单位：秒
        :rtype: int
        """
        return self._TimeRange

    @TimeRange.setter
    def TimeRange(self, TimeRange):
        self._TimeRange = TimeRange

    @property
    def LoginFailTimes(self):
        r"""爆破事件失败次数
        :rtype: int
        """
        return self._LoginFailTimes

    @LoginFailTimes.setter
    def LoginFailTimes(self, LoginFailTimes):
        self._LoginFailTimes = LoginFailTimes

    @property
    def Enable(self):
        r"""规则是否为空，为空则填充默认规则
        :rtype: bool
        """
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def TimeRangeDefault(self):
        r"""爆破事件发生的时间范围，单位：秒（默认规则）
        :rtype: int
        """
        return self._TimeRangeDefault

    @TimeRangeDefault.setter
    def TimeRangeDefault(self, TimeRangeDefault):
        self._TimeRangeDefault = TimeRangeDefault

    @property
    def LoginFailTimesDefault(self):
        r"""爆破事件失败次数（默认规则）
        :rtype: int
        """
        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):
    r"""CKafka实例信息

    """

    def __init__(self):
        r"""
        :param _InstanceID: 实例ID
        :type InstanceID: str
        :param _InstanceName: 实例名称
        :type InstanceName: str
        :param _KafkaVersion: 版本号
        :type KafkaVersion: str
        :param _TopicList: 主题列表
        :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):
        r"""实例ID
        :rtype: str
        """
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def InstanceName(self):
        r"""实例名称
        :rtype: str
        """
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def KafkaVersion(self):
        r"""版本号
        :rtype: str
        """
        return self._KafkaVersion

    @KafkaVersion.setter
    def KafkaVersion(self, KafkaVersion):
        self._KafkaVersion = KafkaVersion

    @property
    def TopicList(self):
        r"""主题列表
        :rtype: list of CKafkaTopicInfo
        """
        return self._TopicList

    @TopicList.setter
    def TopicList(self, TopicList):
        self._TopicList = TopicList

    @property
    def RouteList(self):
        r"""路由列表
        :rtype: list of CKafkaRouteInfo
        """
        return self._RouteList

    @RouteList.setter
    def RouteList(self, RouteList):
        self._RouteList = RouteList

    @property
    def DiskSize(self):
        r"""磁盘容量，单位GB
        :rtype: int
        """
        return self._DiskSize

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

    @property
    def VpcId(self):
        r"""vpcId，如果为空，说明是基础网络
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        r"""子网id
        :rtype: str
        """
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def Healthy(self):
        r"""状态，1表示健康，2表示告警，3 表示实例状态异常
        :rtype: int
        """
        return self._Healthy

    @Healthy.setter
    def Healthy(self, Healthy):
        self._Healthy = Healthy

    @property
    def Zone(self):
        r"""可用区
        :rtype: str
        """
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Az(self):
        r"""地域
        :rtype: str
        """
        return self._Az

    @Az.setter
    def Az(self, Az):
        self._Az = Az

    @property
    def Bandwidth(self):
        r"""实例带宽，单位Mbps
        :rtype: int
        """
        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):
    r"""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类型1:外网TGW 2:基础网络 3:VPC网络 4:支撑网络(标准版) 5:SSL外网访问方式访问 6:黑石环境vpc 7:支撑网络(专业版)
        :type VipType: int
        :param _AccessType: 接入类型
0：PLAINTEXT (明文方式，没有带用户信息老版本及社区版本都支持)
1：SASL_PLAINTEXT（明文方式，不过在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
2：SSL（SSL加密通信，没有带用户信息，老版本及社区版本都支持）
3：SASL_SSL（SSL加密通信，在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
        :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):
        r"""路由ID
        :rtype: int
        """
        return self._RouteID

    @RouteID.setter
    def RouteID(self, RouteID):
        self._RouteID = RouteID

    @property
    def Domain(self):
        r"""域名
        :rtype: str
        """
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def DomainPort(self):
        r"""域名端口
        :rtype: int
        """
        return self._DomainPort

    @DomainPort.setter
    def DomainPort(self, DomainPort):
        self._DomainPort = DomainPort

    @property
    def Vip(self):
        r"""虚拟ip
        :rtype: str
        """
        return self._Vip

    @Vip.setter
    def Vip(self, Vip):
        self._Vip = Vip

    @property
    def VipType(self):
        r"""虚拟ip类型1:外网TGW 2:基础网络 3:VPC网络 4:支撑网络(标准版) 5:SSL外网访问方式访问 6:黑石环境vpc 7:支撑网络(专业版)
        :rtype: int
        """
        return self._VipType

    @VipType.setter
    def VipType(self, VipType):
        self._VipType = VipType

    @property
    def AccessType(self):
        r"""接入类型
0：PLAINTEXT (明文方式，没有带用户信息老版本及社区版本都支持)
1：SASL_PLAINTEXT（明文方式，不过在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
2：SSL（SSL加密通信，没有带用户信息，老版本及社区版本都支持）
3：SASL_SSL（SSL加密通信，在数据开始时，会通过SASL方式登录鉴权，仅社区版本支持）
        :rtype: int
        """
        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):
    r"""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):
        r"""主题ID
        :rtype: str
        """
        return self._TopicID

    @TopicID.setter
    def TopicID(self, TopicID):
        self._TopicID = TopicID

    @property
    def TopicName(self):
        r"""主题名称
        :rtype: str
        """
        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):
    r"""批量修复漏洞二次弹窗 漏洞主机信息

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _HostList: 该漏洞可修复的主机信息
        :type HostList: list of VulInfoHostInfo
        :param _FixTag: 修复提示tag
        :type FixTag: list of str
        :param _VulCategory: 漏洞分类1 web cms漏洞,2应用漏洞,4linux软件漏洞,5windows系统漏洞
        :type VulCategory: int
        """
        self._VulId = None
        self._VulName = None
        self._HostList = None
        self._FixTag = None
        self._VulCategory = None

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def HostList(self):
        r"""该漏洞可修复的主机信息
        :rtype: list of VulInfoHostInfo
        """
        return self._HostList

    @HostList.setter
    def HostList(self, HostList):
        self._HostList = HostList

    @property
    def FixTag(self):
        r"""修复提示tag
        :rtype: list of str
        """
        return self._FixTag

    @FixTag.setter
    def FixTag(self, FixTag):
        self._FixTag = FixTag

    @property
    def VulCategory(self):
        r"""漏洞分类1 web cms漏洞,2应用漏洞,4linux软件漏洞,5windows系统漏洞
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory


    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")
        self._VulCategory = params.get("VulCategory")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""不可隔离木马的机器信息

    """

    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):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Alias(self):
        r"""主机名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def PrivateIp(self):
        r"""内网ip
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        r"""外网ip
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def Reason(self):
        r"""隔离失败原因 1:agent离线
        :rtype: int
        """
        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 ChangeRuleEventsIgnoreStatusRequest(AbstractModel):
    r"""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):
        r"""忽略状态 0:取消忽略 ； 1:忽略
        :rtype: int
        """
        return self._IgnoreStatus

    @IgnoreStatus.setter
    def IgnoreStatus(self, IgnoreStatus):
        self._IgnoreStatus = IgnoreStatus

    @property
    def RuleIdList(self):
        r"""检测项id数组
        :rtype: list of int non-negative
        """
        return self._RuleIdList

    @RuleIdList.setter
    def RuleIdList(self, RuleIdList):
        self._RuleIdList = RuleIdList

    @property
    def EventIdList(self):
        r"""事件id数组
        :rtype: list of int non-negative
        """
        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):
    r"""ChangeRuleEventsIgnoreStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ChangeStrategyEnableStatusRequest(AbstractModel):
    r"""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):
        r"""基线策略id
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def Status(self):
        r"""开关状态
        :rtype: int
        """
        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):
    r"""ChangeStrategyEnableStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CheckBashPolicyParamsRequest(AbstractModel):
    r"""CheckBashPolicyParams请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CheckField: 校验内容字段,如果需要检测多个字段时,用逗号分割
<li>Name 策略名称</li>
<li>Process 进程</li>
<li>Name PProcess 父进程</li>
<li>Name AProcess 祖先进程</li>

        :type CheckField: str
        :param _EventId: 在事件列表中新增白名时需要提交事件ID
        :type EventId: int
        :param _Name: 填入的规则名称
        :type Name: str
        :param _Rule: 该字段不在维护,如果填入该参数,自动替换到Rules.Process

        :type Rule: str
        :param _Id: 编辑时传的规则id
        :type Id: int
        :param _Rules: 规则表达式
        :type Rules: :class:`tencentcloud.cwp.v20180228.models.PolicyRules`
        """
        self._CheckField = None
        self._EventId = None
        self._Name = None
        self._Rule = None
        self._Id = None
        self._Rules = None

    @property
    def CheckField(self):
        r"""校验内容字段,如果需要检测多个字段时,用逗号分割
<li>Name 策略名称</li>
<li>Process 进程</li>
<li>Name PProcess 父进程</li>
<li>Name AProcess 祖先进程</li>

        :rtype: str
        """
        return self._CheckField

    @CheckField.setter
    def CheckField(self, CheckField):
        self._CheckField = CheckField

    @property
    def EventId(self):
        r"""在事件列表中新增白名时需要提交事件ID
        :rtype: int
        """
        return self._EventId

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

    @property
    def Name(self):
        r"""填入的规则名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Rule(self):
        r"""该字段不在维护,如果填入该参数,自动替换到Rules.Process

        :rtype: str
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Id(self):
        r"""编辑时传的规则id
        :rtype: int
        """
        return self._Id

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

    @property
    def Rules(self):
        r"""规则表达式
        :rtype: :class:`tencentcloud.cwp.v20180228.models.PolicyRules`
        """
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules


    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")
        if params.get("Rules") is not None:
            self._Rules = PolicyRules()
            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 CheckBashPolicyParamsResponse(AbstractModel):
    r"""CheckBashPolicyParams返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 0=校验通过  1=规则名称校验不通过 2=正则表达式校验不通过
        :type ErrCode: int
        :param _ErrMsg: 校验信息
        :type ErrMsg: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._RequestId = None

    @property
    def ErrCode(self):
        r"""0=校验通过  1=规则名称校验不通过 2=正则表达式校验不通过
        :rtype: int
        """
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        r"""校验信息
        :rtype: str
        """
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""校验内容 Name或Rule ，两个都要校验时逗号分割
        :rtype: str
        """
        return self._CheckField

    @CheckField.setter
    def CheckField(self, CheckField):
        self._CheckField = CheckField

    @property
    def EventId(self):
        r"""在事件列表中新增白名时需要提交事件ID
        :rtype: int
        """
        return self._EventId

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

    @property
    def Name(self):
        r"""填入的规则名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Rule(self):
        r"""用户填入的正则表达式："正则表达式" 需与 "提交EventId对应的命令内容" 相匹配
        :rtype: str
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Id(self):
        r"""编辑时传的规则id
        :rtype: int
        """
        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):
    r"""CheckBashRuleParams返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 0=校验通过  1=规则名称校验不通过 2=正则表达式校验不通过
        :type ErrCode: int
        :param _ErrMsg: 校验信息
        :type ErrMsg: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._RequestId = None

    @property
    def ErrCode(self):
        r"""0=校验通过  1=规则名称校验不通过 2=正则表达式校验不通过
        :rtype: int
        """
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        r"""校验信息
        :rtype: str
        """
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""填入的规则名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Id(self):
        r"""编辑时传的规则id
        :rtype: int
        """
        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):
    r"""CheckFileTamperRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 0=校验通过  1=规则名称校验不通过
        :type ErrCode: int
        :param _ErrMsg: 校验信息
        :type ErrMsg: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._RequestId = None

    @property
    def ErrCode(self):
        r"""0=校验通过  1=规则名称校验不通过
        :rtype: int
        """
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        r"""校验信息
        :rtype: str
        """
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""CheckFirstScanBaseline请求参数结构体

    """


class CheckFirstScanBaselineResponse(AbstractModel):
    r"""CheckFirstScanBaseline返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FirstScan: 是否是第一次检测 0：不是；1：是
        :type FirstScan: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FirstScan = None
        self._RequestId = None

    @property
    def FirstScan(self):
        r"""是否是第一次检测 0：不是；1：是
        :rtype: int
        """
        return self._FirstScan

    @FirstScan.setter
    def FirstScan(self, FirstScan):
        self._FirstScan = FirstScan

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""接入方式,1公网域名接入，2支撑环境接入
        :rtype: int
        """
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType

    @property
    def AccessAddr(self):
        r"""接入地址，域名或ip，带端口
        :rtype: str
        """
        return self._AccessAddr

    @AccessAddr.setter
    def AccessAddr(self, AccessAddr):
        self._AccessAddr = AccessAddr

    @property
    def Username(self):
        r"""用户名
        :rtype: str
        """
        return self._Username

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

    @property
    def HasPwd(self):
        r"""0不用密码，1有密码
        :rtype: int
        """
        return self._HasPwd

    @HasPwd.setter
    def HasPwd(self, HasPwd):
        self._HasPwd = HasPwd

    @property
    def Pwd(self):
        r"""密码，使用aes加密
        :rtype: str
        """
        return self._Pwd

    @Pwd.setter
    def Pwd(self, Pwd):
        self._Pwd = Pwd

    @property
    def KafkaId(self):
        r"""kafka实例id
        :rtype: str
        """
        return self._KafkaId

    @KafkaId.setter
    def KafkaId(self, KafkaId):
        self._KafkaId = KafkaId

    @property
    def InsVersion(self):
        r"""kafka版本
        :rtype: str
        """
        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):
    r"""CheckLogKafkaConnectionState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsConnect: true连通，false不通
        :type IsConnect: bool
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsConnect = None
        self._RequestId = None

    @property
    def IsConnect(self):
        r"""true连通，false不通
        :rtype: bool
        """
        return self._IsConnect

    @IsConnect.setter
    def IsConnect(self, IsConnect):
        self._IsConnect = IsConnect

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ClearLocalStorage请求参数结构体

    """


class ClearLocalStorageResponse(AbstractModel):
    r"""ClearLocalStorage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ClientSettingHost(AbstractModel):
    r"""客户端设置相关功能主机结构体

    """

    def __init__(self):
        r"""
        :param _Id: host对应的数据库记录ID
        :type Id: int
        :param _Name: 主机名字
        :type Name: str
        :param _InstanceId: 实例ID
        :type InstanceId: str
        :param _PublicIp: 公网IP
        :type PublicIp: str
        :param _PrivateIp: 内网IP
        :type PrivateIp: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Status: 主机状态
<li>OFFLINE: 离线  </li>
<li>ONLINE: 在线</li>
<li>SHUTDOWN: 已关机</li>
<li>UNINSTALLED: 未防护</li>
        :type Status: str
        :param _VpcId: ins-sad143
        :type VpcId: str
        :param _RegionInfo: 地域信息
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        :param _MachineExtraInfo: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _FunctionStatus: <li>0: 关闭 </li>
<li>1:  开启</li>
<li>2: 开启中 </li>
<li>3:  关闭中</li>
<li>9: 未设置</li>
        :type FunctionStatus: int
        :param _Message: 以下几个固定值需要前端特殊处理，其他失败原因可直接展示：
1. UNINSTALLED   -- 未安装
2. NEED_UPGRADE -- 需要升级
3. NOT_RUNNING -- 已关机
4. NO_PASSWORD -- 未开启密码登录，无法开启扫码
        :type Message: str
        :param _MessageDesc: 失败原因
        :type MessageDesc: str
        :param _InstanceStatus: 实例状态
<li>RUNNING: 运行中</li>
<li>STOPED: 已关机</li>
<li>EXPIRED: 待回收</li>
        :type InstanceStatus: str
        """
        self._Id = None
        self._Name = None
        self._InstanceId = None
        self._PublicIp = None
        self._PrivateIp = None
        self._Quuid = None
        self._Status = None
        self._VpcId = None
        self._RegionInfo = None
        self._MachineExtraInfo = None
        self._FunctionStatus = None
        self._Message = None
        self._MessageDesc = None
        self._InstanceStatus = None

    @property
    def Id(self):
        r"""host对应的数据库记录ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Name(self):
        r"""主机名字
        :rtype: str
        """
        return self._Name

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

    @property
    def InstanceId(self):
        r"""实例ID
        :rtype: str
        """
        return self._InstanceId

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

    @property
    def PublicIp(self):
        r"""公网IP
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def PrivateIp(self):
        r"""内网IP
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Status(self):
        r"""主机状态
<li>OFFLINE: 离线  </li>
<li>ONLINE: 在线</li>
<li>SHUTDOWN: 已关机</li>
<li>UNINSTALLED: 未防护</li>
        :rtype: str
        """
        return self._Status

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

    @property
    def VpcId(self):
        r"""ins-sad143
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def RegionInfo(self):
        r"""地域信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        """
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

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

    @property
    def FunctionStatus(self):
        r"""<li>0: 关闭 </li>
<li>1:  开启</li>
<li>2: 开启中 </li>
<li>3:  关闭中</li>
<li>9: 未设置</li>
        :rtype: int
        """
        return self._FunctionStatus

    @FunctionStatus.setter
    def FunctionStatus(self, FunctionStatus):
        self._FunctionStatus = FunctionStatus

    @property
    def Message(self):
        r"""以下几个固定值需要前端特殊处理，其他失败原因可直接展示：
1. UNINSTALLED   -- 未安装
2. NEED_UPGRADE -- 需要升级
3. NOT_RUNNING -- 已关机
4. NO_PASSWORD -- 未开启密码登录，无法开启扫码
        :rtype: str
        """
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def MessageDesc(self):
        r"""失败原因
        :rtype: str
        """
        return self._MessageDesc

    @MessageDesc.setter
    def MessageDesc(self, MessageDesc):
        self._MessageDesc = MessageDesc

    @property
    def InstanceStatus(self):
        r"""实例状态
<li>RUNNING: 运行中</li>
<li>STOPED: 已关机</li>
<li>EXPIRED: 待回收</li>
        :rtype: str
        """
        return self._InstanceStatus

    @InstanceStatus.setter
    def InstanceStatus(self, InstanceStatus):
        self._InstanceStatus = InstanceStatus


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        self._InstanceId = params.get("InstanceId")
        self._PublicIp = params.get("PublicIp")
        self._PrivateIp = params.get("PrivateIp")
        self._Quuid = params.get("Quuid")
        self._Status = params.get("Status")
        self._VpcId = params.get("VpcId")
        if params.get("RegionInfo") is not None:
            self._RegionInfo = RegionInfo()
            self._RegionInfo._deserialize(params.get("RegionInfo"))
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._FunctionStatus = params.get("FunctionStatus")
        self._Message = params.get("Message")
        self._MessageDesc = params.get("MessageDesc")
        self._InstanceStatus = params.get("InstanceStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudFromCnt(AbstractModel):
    r"""云服务器类型机器数量

    """

    def __init__(self):
        r"""
        :param _CloudFrom: 云服务器类型
        :type CloudFrom: int
        :param _MachineCnt: 机器数量
        :type MachineCnt: int
        """
        self._CloudFrom = None
        self._MachineCnt = None

    @property
    def CloudFrom(self):
        r"""云服务器类型
        :rtype: int
        """
        return self._CloudFrom

    @CloudFrom.setter
    def CloudFrom(self, CloudFrom):
        self._CloudFrom = CloudFrom

    @property
    def MachineCnt(self):
        r"""机器数量
        :rtype: int
        """
        return self._MachineCnt

    @MachineCnt.setter
    def MachineCnt(self, MachineCnt):
        self._MachineCnt = MachineCnt


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


class CommandLine(AbstractModel):
    r"""命令行内容

    """

    def __init__(self):
        r"""
        :param _Exe: 路径,需要base64加密
        :type Exe: str
        :param _Cmdline: 命令行,需要base64加密
        :type Cmdline: str
        """
        self._Exe = None
        self._Cmdline = None

    @property
    def Exe(self):
        r"""路径,需要base64加密
        :rtype: str
        """
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def Cmdline(self):
        r"""命令行,需要base64加密
        :rtype: str
        """
        return self._Cmdline

    @Cmdline.setter
    def Cmdline(self, Cmdline):
        self._Cmdline = Cmdline


    def _deserialize(self, params):
        self._Exe = params.get("Exe")
        self._Cmdline = params.get("Cmdline")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""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):
        r"""阻断规则
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BanWhiteList`
        """
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules

    @property
    def EventId(self):
        r"""事件ID，事件列表加白名单时传递，白名单添加成功后，会将事件变成已加白状态
        :rtype: int
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsGlobal = None
        self._IsDuplicate = None
        self._DuplicateHosts = None
        self._RequestId = None

    @property
    def IsGlobal(self):
        r"""是否全局规则
        :rtype: bool
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def IsDuplicate(self):
        r"""添加规则是否重复
        :rtype: bool
        """
        return self._IsDuplicate

    @IsDuplicate.setter
    def IsDuplicate(self, IsDuplicate):
        self._IsDuplicate = IsDuplicate

    @property
    def DuplicateHosts(self):
        r"""重复机器的信息
        :rtype: list of DuplicateHosts
        """
        return self._DuplicateHosts

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""策略名称
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def ScanCycle(self):
        r"""检测周期, 表示每隔多少天进行检测.示例: 2, 表示每2天进行检测一次.
        :rtype: int
        """
        return self._ScanCycle

    @ScanCycle.setter
    def ScanCycle(self, ScanCycle):
        self._ScanCycle = ScanCycle

    @property
    def ScanAt(self):
        r"""定期检测时间，该时间下发扫描. 示例:“22:00”, 表示在22:00下发检测
        :rtype: str
        """
        return self._ScanAt

    @ScanAt.setter
    def ScanAt(self, ScanAt):
        self._ScanAt = ScanAt

    @property
    def CategoryIds(self):
        r"""该策略下选择的基线id数组. 示例: [1,3,5,7]
        :rtype: list of int non-negative
        """
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds

    @property
    def IsGlobal(self):
        r"""扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MachineType(self):
        r"""云主机类型：
CVM：虚拟主机
BM：裸金属
ECM：边缘计算主机
LH：轻量应用服务器
Other：混合云机器
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def RegionCode(self):
        r"""主机地域. 示例: "ap-guangzhou"
        :rtype: str
        """
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def Quuids(self):
        r"""主机id数组. 示例: ["quuid1","quuid2"]
        :rtype: list of str
        """
        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):
    r"""CreateBaselineStrategy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateBuyBindTaskRequest(AbstractModel):
    r"""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):
        r"""订单号
        :rtype: str
        """
        return self._DealName

    @DealName.setter
    def DealName(self, DealName):
        self._DealName = DealName

    @property
    def LicenseType(self):
        r"""可选参数: 1专业版-包年包月 , 2 旗舰版-包年包月
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def QuuidList(self):
        r"""机器列表
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def IsAll(self):
        r"""是否全选机器
        :rtype: bool
        """
        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):
    r"""CreateBuyBindTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateEmergencyVulScanRequest(AbstractModel):
    r"""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):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Uuids(self):
        r"""自选服务器时生效，主机uuid的string数组
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def TimeoutPeriod(self):
        r"""扫描超时时长 ，单位秒
        :rtype: int
        """
        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):
    r"""CreateEmergencyVulScan返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateIncidentBacktrackingRequest(AbstractModel):
    r"""CreateIncidentBacktracking请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机安全quuid
        :type Quuid: str
        """
        self._Quuid = None

    @property
    def Quuid(self):
        r"""主机安全quuid
        :rtype: str
        """
        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):
    r"""CreateIncidentBacktracking返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateLicenseOrderRequest(AbstractModel):
    r"""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):
        r"""标签数组, 空则表示不需要绑定标签
        :rtype: list of Tags
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def LicenseType(self):
        r"""授权类型, 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
默认为0
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def LicenseNum(self):
        r"""授权数量 , 需要购买的数量.
默认为1
        :rtype: int
        """
        return self._LicenseNum

    @LicenseNum.setter
    def LicenseNum(self, LicenseNum):
        self._LicenseNum = LicenseNum

    @property
    def RegionId(self):
        r"""购买订单地域,这里仅支持 1 广州,9 新加坡. 推荐选择广州. 新加坡地域为白名单用户购买.
默认为1
        :rtype: int
        """
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def ProjectId(self):
        r"""项目ID .
默认为0
        :rtype: int
        """
        return self._ProjectId

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

    @property
    def TimeSpan(self):
        r"""购买时间长度,默认1 , 可选值为1,2,3,4,5,6,7,8,9,10,11,12,24,36
该参数仅包年包月生效
        :rtype: int
        """
        return self._TimeSpan

    @TimeSpan.setter
    def TimeSpan(self, TimeSpan):
        self._TimeSpan = TimeSpan

    @property
    def AutoRenewFlag(self):
        r"""是否自动续费, 默认不自动续费.
该参数仅包年包月生效
        :rtype: bool
        """
        return self._AutoRenewFlag

    @AutoRenewFlag.setter
    def AutoRenewFlag(self, AutoRenewFlag):
        self._AutoRenewFlag = AutoRenewFlag

    @property
    def AutoProtectOpenConfig(self):
        r"""该字段作废
        :rtype: str
        """
        return self._AutoProtectOpenConfig

    @AutoProtectOpenConfig.setter
    def AutoProtectOpenConfig(self, AutoProtectOpenConfig):
        self._AutoProtectOpenConfig = AutoProtectOpenConfig

    @property
    def ModifyConfig(self):
        r"""变配参数
        :rtype: :class:`tencentcloud.cwp.v20180228.models.OrderModifyObject`
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DealNames = None
        self._ResourceIds = None
        self._BigDealId = None
        self._RequestId = None

    @property
    def DealNames(self):
        r"""订单号列表
        :rtype: list of str
        """
        return self._DealNames

    @DealNames.setter
    def DealNames(self, DealNames):
        self._DealNames = DealNames

    @property
    def ResourceIds(self):
        r"""资源ID列表,预付费订单该字段空值
        :rtype: list of str
        """
        return self._ResourceIds

    @ResourceIds.setter
    def ResourceIds(self, ResourceIds):
        self._ResourceIds = ResourceIds

    @property
    def BigDealId(self):
        r"""大订单号 , 后付费该字段空值
        :rtype: str
        """
        return self._BigDealId

    @BigDealId.setter
    def BigDealId(self, BigDealId):
        self._BigDealId = BigDealId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""日志导出数量, 最大值5000万
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def StartTime(self):
        r"""日志导出起始时间，毫秒时间戳
        :rtype: int
        """
        return self._StartTime

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

    @property
    def EndTime(self):
        r"""日志导出结束时间，毫秒时间戳
        :rtype: int
        """
        return self._EndTime

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

    @property
    def QueryString(self):
        r"""日志导出检索语句，不支持[SQL语句]
        :rtype: str
        """
        return self._QueryString

    @QueryString.setter
    def QueryString(self, QueryString):
        self._QueryString = QueryString

    @property
    def Sort(self):
        r"""日志导出时间排序。desc，asc，默认为desc
        :rtype: str
        """
        return self._Sort

    @Sort.setter
    def Sort(self, Sort):
        self._Sort = Sort

    @property
    def Format(self):
        r"""日志导出数据格式。json，csv，默认为json
        :rtype: str
        """
        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):
    r"""CreateLogExport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ExportId: 日志导出ID
        :type ExportId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ExportId = None
        self._RequestId = None

    @property
    def ExportId(self):
        r"""日志导出ID
        :rtype: str
        """
        return self._ExportId

    @ExportId.setter
    def ExportId(self, ExportId):
        self._ExportId = ExportId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""白名单域名
        :rtype: str
        """
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def Mark(self):
        r"""备注
        :rtype: str
        """
        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):
    r"""CreateMaliciousRequestWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateMalwareWhiteListRequest(AbstractModel):
    r"""CreateMalwareWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: 白名单模式； 0 MD5白名单，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
        :param _IsHandleHistoryEvents: 对历史待处理执行加白操作；0是不处理，1是处理
        :type IsHandleHistoryEvents: 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
        self._IsHandleHistoryEvents = None

    @property
    def Mode(self):
        r"""白名单模式； 0 MD5白名单，1自定义
        :rtype: int
        """
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def QuuidList(self):
        r"""quuid 列表
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def IsGlobal(self):
        r"""是否全部主机； 0否，1是。
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MatchType(self):
        r"""匹配模式 ；0 精确匹配，1模糊匹配（废弃）
        :rtype: int
        """
        return self._MatchType

    @MatchType.setter
    def MatchType(self, MatchType):
        self._MatchType = MatchType

    @property
    def FileName(self):
        r"""文件名称(正则)；长度不超过200个
        :rtype: list of str
        """
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileDirectory(self):
        r"""文件目录(正则)；长度不超过200个,内容base64转义
        :rtype: list of str
        """
        return self._FileDirectory

    @FileDirectory.setter
    def FileDirectory(self, FileDirectory):
        self._FileDirectory = FileDirectory

    @property
    def FileExtension(self):
        r"""文件后缀；长度不超过200个,内容base64转义（废弃）
        :rtype: list of str
        """
        return self._FileExtension

    @FileExtension.setter
    def FileExtension(self, FileExtension):
        self._FileExtension = FileExtension

    @property
    def Md5List(self):
        r"""MD5列表
        :rtype: list of str
        """
        return self._Md5List

    @Md5List.setter
    def Md5List(self, Md5List):
        self._Md5List = Md5List

    @property
    def EventId(self):
        r"""木马事件ID
        :rtype: int
        """
        return self._EventId

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

    @property
    def IsHandleHistoryEvents(self):
        r"""对历史待处理执行加白操作；0是不处理，1是处理
        :rtype: int
        """
        return self._IsHandleHistoryEvents

    @IsHandleHistoryEvents.setter
    def IsHandleHistoryEvents(self, IsHandleHistoryEvents):
        self._IsHandleHistoryEvents = IsHandleHistoryEvents


    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")
        self._IsHandleHistoryEvents = params.get("IsHandleHistoryEvents")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""CreateMalwareWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateNetAttackWhiteListRequest(AbstractModel):
    r"""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):
        r"""是否全部主机； 0否，1是。
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def SrcIp(self):
        r"""来源IP 单IP:1.1.1.1  IP范围:1.1.1.1-1.1.2.1  IP范围：1.1.1.0/24 
        :rtype: list of str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def QuuidList(self):
        r"""quuid 列表
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def EventId(self):
        r"""事件id
        :rtype: int
        """
        return self._EventId

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

    @property
    def DealOldEvents(self):
        r"""是否加白所有符合该规则的告警 ，1:处理,0:不处理
        :rtype: int
        """
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Description(self):
        r"""描述
        :rtype: str
        """
        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):
    r"""CreateNetAttackWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateProtectServerRequest(AbstractModel):
    r"""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):
        r"""防护目录地址
        :rtype: str
        """
        return self._ProtectDir

    @ProtectDir.setter
    def ProtectDir(self, ProtectDir):
        self._ProtectDir = ProtectDir

    @property
    def ProtectHostConfig(self):
        r"""防护机器 信息
        :rtype: list of ProtectHostConfig
        """
        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):
    r"""CreateProtectServer返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateRansomDefenseStrategyRequest(AbstractModel):
    r"""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按天，2不备份
        :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):
        r"""策略名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Hour(self):
        r"""定时快照执行时间（0-23）：01:00;23:00
        :rtype: str
        """
        return self._Hour

    @Hour.setter
    def Hour(self, Hour):
        self._Hour = Hour

    @property
    def Id(self):
        r"""策略ID，填ID时修改策略，否则新增策略
        :rtype: int
        """
        return self._Id

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

    @property
    def Description(self):
        r"""策略备注
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Status(self):
        r"""是否开启：0关，1开
        :rtype: int
        """
        return self._Status

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

    @property
    def IsAll(self):
        r"""是否全部机器生效：0否，1是
        :rtype: int
        """
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def IncludeDir(self):
        r"""包含目录，;分隔
        :rtype: str
        """
        return self._IncludeDir

    @IncludeDir.setter
    def IncludeDir(self, IncludeDir):
        self._IncludeDir = IncludeDir

    @property
    def ExcludeDir(self):
        r"""排除目录，;分隔
        :rtype: str
        """
        return self._ExcludeDir

    @ExcludeDir.setter
    def ExcludeDir(self, ExcludeDir):
        self._ExcludeDir = ExcludeDir

    @property
    def BackupType(self):
        r"""备份模式： 0按周，1按天，2不备份
        :rtype: int
        """
        return self._BackupType

    @BackupType.setter
    def BackupType(self, BackupType):
        self._BackupType = BackupType

    @property
    def Weekday(self):
        r"""定时任务执行星期天数（1-7）：1;2;7
        :rtype: str
        """
        return self._Weekday

    @Weekday.setter
    def Weekday(self, Weekday):
        self._Weekday = Weekday

    @property
    def SaveDay(self):
        r"""保留天数：0永久
        :rtype: int
        """
        return self._SaveDay

    @SaveDay.setter
    def SaveDay(self, SaveDay):
        self._SaveDay = SaveDay

    @property
    def Machines(self):
        r"""绑定主机列表
        :rtype: list of RansomDefenseStrategyMachineInfo
        """
        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):
    r"""CreateRansomDefenseStrategy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateScanMalwareSettingRequest(AbstractModel):
    r"""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):
        r"""扫描模式 0 全盘扫描, 1 快速扫描
        :rtype: int
        """
        return self._ScanPattern

    @ScanPattern.setter
    def ScanPattern(self, ScanPattern):
        self._ScanPattern = ScanPattern

    @property
    def HostType(self):
        r"""服务器分类：1:专业版服务器；2:自选服务器
        :rtype: int
        """
        return self._HostType

    @HostType.setter
    def HostType(self, HostType):
        self._HostType = HostType

    @property
    def QuuidList(self):
        r"""自选服务器时生效，主机quuid的string数组
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def TimeoutPeriod(self):
        r"""超时时间单位 秒 默认3600 秒
        :rtype: int
        """
        return self._TimeoutPeriod

    @TimeoutPeriod.setter
    def TimeoutPeriod(self, TimeoutPeriod):
        self._TimeoutPeriod = TimeoutPeriod

    @property
    def EngineType(self):
        r"""1标准模式（只报严重、高危）、2增强模式（报严重、高危、中危）、3严格模式（报严重、高、中、低、提示）
        :rtype: int
        """
        return self._EngineType

    @EngineType.setter
    def EngineType(self, EngineType):
        self._EngineType = EngineType

    @property
    def EnableMemShellScan(self):
        r"""是否开启恶意进程查杀[0:未开启,1:开启]
        :rtype: int
        """
        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):
    r"""CreateScanMalwareSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务id
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""CreateSearchLog请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SearchContent: 搜索内容
        :type SearchContent: str
        """
        self._SearchContent = None

    @property
    def SearchContent(self):
        r"""搜索内容
        :rtype: str
        """
        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):
    r"""CreateSearchLog返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 0：成功，非0：失败
        :type Status: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._RequestId = None

    @property
    def Status(self):
        r"""0：成功，非0：失败
        :rtype: int
        """
        return self._Status

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""CreateSearchTemplate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SearchTemplate: 搜索模板
        :type SearchTemplate: :class:`tencentcloud.cwp.v20180228.models.SearchTemplate`
        """
        self._SearchTemplate = None

    @property
    def SearchTemplate(self):
        r"""搜索模板
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SearchTemplate`
        """
        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):
    r"""CreateSearchTemplate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 0：成功，非0：失败
        :type Status: int
        :param _Message: 失败原因
        :type Message: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._Message = None
        self._RequestId = None

    @property
    def Status(self):
        r"""0：成功，非0：失败
        :rtype: int
        """
        return self._Status

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

    @property
    def Message(self):
        r"""失败原因
        :rtype: str
        """
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._Message = params.get("Message")
        self._RequestId = params.get("RequestId")


class CreateVulFixRequest(AbstractModel):
    r"""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):
        r"""漏洞对应要修复的主机列表
        :rtype: list of CreateVulFixTaskQuuids
        """
        return self._CreateVulFixTaskQuuids

    @CreateVulFixTaskQuuids.setter
    def CreateVulFixTaskQuuids(self, CreateVulFixTaskQuuids):
        self._CreateVulFixTaskQuuids = CreateVulFixTaskQuuids

    @property
    def SaveDays(self):
        r"""快照保存天数，  0 天表示不创建快照。24小时没有快照的主机必须要创建快照才能修复
        :rtype: int
        """
        return self._SaveDays

    @SaveDays.setter
    def SaveDays(self, SaveDays):
        self._SaveDays = SaveDays

    @property
    def SnapshotName(self):
        r"""快照名称
        :rtype: str
        """
        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):
    r"""CreateVulFix返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FixId: 任务id
        :type FixId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FixId = None
        self._RequestId = None

    @property
    def FixId(self):
        r"""任务id
        :rtype: int
        """
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""创建修复任务的quuids

    """

    def __init__(self):
        r"""
        :param _Quuids: 需要修复漏洞的主机，所有主机必须有VulId的这个漏洞且是待修复状态。
        :type Quuids: list of str
        :param _VulId: 漏洞id
        :type VulId: int
        :param _FixMethod: 修复方式 0组件更新或者安装补丁,1禁用服务
        :type FixMethod: int
        :param _KbId: kb id
        :type KbId: int
        """
        self._Quuids = None
        self._VulId = None
        self._FixMethod = None
        self._KbId = None

    @property
    def Quuids(self):
        r"""需要修复漏洞的主机，所有主机必须有VulId的这个漏洞且是待修复状态。
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def FixMethod(self):
        r"""修复方式 0组件更新或者安装补丁,1禁用服务
        :rtype: int
        """
        return self._FixMethod

    @FixMethod.setter
    def FixMethod(self, FixMethod):
        self._FixMethod = FixMethod

    @property
    def KbId(self):
        r"""kb id
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId


    def _deserialize(self, params):
        self._Quuids = params.get("Quuids")
        self._VulId = params.get("VulId")
        self._FixMethod = params.get("FixMethod")
        self._KbId = params.get("KbId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""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):
        r"""授权类型
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def LicenseNum(self):
        r"""授权数量,最小为1 最大99999
        :rtype: int
        """
        return self._LicenseNum

    @LicenseNum.setter
    def LicenseNum(self, LicenseNum):
        self._LicenseNum = LicenseNum

    @property
    def Deadline(self):
        r"""到期时间,最小为1
        :rtype: int
        """
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline

    @property
    def RuleName(self):
        r"""规则名称,大资产中心:asset_center
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def SourceType(self):
        r"""订单类型, 1 试用 2 赠送 3 体验 4 SSL-证书赠送 5 cvm赠送
        :rtype: int
        """
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType

    @property
    def RegionId(self):
        r"""地域, 1 广州 9新加坡, 默认为 1. 非必要情况不要选9
        :rtype: int
        """
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def ExtraParam(self):
        r"""额外参数,json字符串,包含ResourceId 资源ID,LicenseType 授权类型
        :rtype: str
        """
        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):
    r"""CreateWhiteListOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Resource: 资源对象
        :type Resource: :class:`tencentcloud.cwp.v20180228.models.OrderResource`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Resource = None
        self._RequestId = None

    @property
    def Resource(self):
        r"""资源对象
        :rtype: :class:`tencentcloud.cwp.v20180228.models.OrderResource`
        """
        return self._Resource

    @Resource.setter
    def Resource(self, Resource):
        self._Resource = Resource

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""默认策略基础信息

    """

    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):
        r"""策略名
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def StrategyId(self):
        r"""策略id
        :rtype: int
        """
        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 DeleteAllJavaMemShellsRequest(AbstractModel):
    r"""DeleteAllJavaMemShells请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器quuid
        :type Quuid: str
        """
        self._Quuid = None

    @property
    def Quuid(self):
        r"""服务器quuid
        :rtype: str
        """
        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):
    r"""DeleteAllJavaMemShells返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBanWhiteListRequest(AbstractModel):
    r"""DeleteBanWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 要删除的白名单ID列表 (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""要删除的白名单ID列表 (最大100条)
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteBanWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselinePolicyRequest(AbstractModel):
    r"""DeleteBaselinePolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyIds: 策略Id
        :type PolicyIds: list of int
        """
        self._PolicyIds = None

    @property
    def PolicyIds(self):
        r"""策略Id
        :rtype: list of int
        """
        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):
    r"""DeleteBaselinePolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselineRuleIgnoreRequest(AbstractModel):
    r"""DeleteBaselineRuleIgnore请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleIds: 规则Id
        :type RuleIds: list of int
        """
        self._RuleIds = None

    @property
    def RuleIds(self):
        r"""规则Id
        :rtype: list of int
        """
        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):
    r"""DeleteBaselineRuleIgnore返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselineRuleRequest(AbstractModel):
    r"""DeleteBaselineRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleId: 规则Id
        :type RuleId: int
        """
        self._RuleId = None

    @property
    def RuleId(self):
        r"""规则Id
        :rtype: int
        """
        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):
    r"""DeleteBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselineStrategyRequest(AbstractModel):
    r"""DeleteBaselineStrategy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyId: 基线策略id
        :type StrategyId: int
        """
        self._StrategyId = None

    @property
    def StrategyId(self):
        r"""基线策略id
        :rtype: int
        """
        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):
    r"""DeleteBaselineStrategy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselineWeakPasswordRequest(AbstractModel):
    r"""DeleteBaselineWeakPassword请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PasswordIds: 弱口令Id
        :type PasswordIds: list of int
        """
        self._PasswordIds = None

    @property
    def PasswordIds(self):
        r"""弱口令Id
        :rtype: list of int
        """
        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):
    r"""DeleteBaselineWeakPassword返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBashEventsRequest(AbstractModel):
    r"""DeleteBashEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大1000条。
        :type Ids: list of int non-negative
        :param _All: 是否删除全部
        :type All: bool
        """
        self._Ids = None
        self._All = None

    @property
    def Ids(self):
        r"""ID数组，最大1000条。
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def All(self):
        r"""是否删除全部
        :rtype: bool
        """
        return self._All

    @All.setter
    def All(self, All):
        self._All = All


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        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 DeleteBashEventsResponse(AbstractModel):
    r"""DeleteBashEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBashPoliciesRequest(AbstractModel):
    r"""DeleteBashPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""ID数组，最大100条。
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteBashPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBashRulesRequest(AbstractModel):
    r"""DeleteBashRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""ID数组，最大100条。
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteBashRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBruteAttacksRequest(AbstractModel):
    r"""DeleteBruteAttacks请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 暴力破解事件Id数组。(最大 100条)
        :type Ids: list of int non-negative
        :param _All: 是否删除全部
        :type All: bool
        """
        self._Ids = None
        self._All = None

    @property
    def Ids(self):
        r"""暴力破解事件Id数组。(最大 100条)
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def All(self):
        r"""是否删除全部
        :rtype: bool
        """
        return self._All

    @All.setter
    def All(self, All):
        self._All = All


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        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 DeleteBruteAttacksResponse(AbstractModel):
    r"""DeleteBruteAttacks返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLicenseRecordAllRequest(AbstractModel):
    r"""DeleteLicenseRecordAll请求参数结构体

    """


class DeleteLicenseRecordAllResponse(AbstractModel):
    r"""DeleteLicenseRecordAll返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLicenseRecordRequest(AbstractModel):
    r"""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):
        r"""授权ID ,可以用授权订单列表获取.
        :rtype: int
        """
        return self._LicenseId

    @LicenseId.setter
    def LicenseId(self, LicenseId):
        self._LicenseId = LicenseId

    @property
    def LicenseType(self):
        r"""授权类型
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def ResourceId(self):
        r"""资源ID
        :rtype: str
        """
        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):
    r"""DeleteLicenseRecord返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLogExportRequest(AbstractModel):
    r"""DeleteLogExport请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ExportId: 日志导出ID
        :type ExportId: str
        """
        self._ExportId = None

    @property
    def ExportId(self):
        r"""日志导出ID
        :rtype: str
        """
        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):
    r"""DeleteLogExport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLoginWhiteListRequest(AbstractModel):
    r"""DeleteLoginWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: <p>白名单ID (最大 100 条)</p>
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""<p>白名单ID (最大 100 条)</p>
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteLoginWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMachineClearHistoryRequest(AbstractModel):
    r"""DeleteMachineClearHistory请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: <p>需要删除的记录id值,最大长度100个</p>
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""<p>需要删除的记录id值,最大长度100个</p>
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteMachineClearHistory返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMachineRequest(AbstractModel):
    r"""DeleteMachine请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机安全客户端Uuid。
        :type Uuid: str
        """
        self._Uuid = None

    @property
    def Uuid(self):
        r"""主机安全客户端Uuid。
        :rtype: str
        """
        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):
    r"""DeleteMachine返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMachineTagRequest(AbstractModel):
    r"""DeleteMachineTag请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Rid: 关联的标签ID
        :type Rid: int
        """
        self._Rid = None

    @property
    def Rid(self):
        r"""关联的标签ID
        :rtype: int
        """
        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):
    r"""DeleteMachineTag返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMaliciousRequestWhiteListRequest(AbstractModel):
    r"""DeleteMaliciousRequestWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 白名单id (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""白名单id (最大100条)
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteMaliciousRequestWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMaliciousRequestsRequest(AbstractModel):
    r"""DeleteMaliciousRequests请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 恶意请求记录ID数组，(最大100条)
        :type Ids: list of int non-negative
        :param _All: 是否删除全部
        :type All: bool
        """
        self._Ids = None
        self._All = None

    @property
    def Ids(self):
        r"""恶意请求记录ID数组，(最大100条)
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def All(self):
        r"""是否删除全部
        :rtype: bool
        """
        return self._All

    @All.setter
    def All(self, All):
        self._All = All


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        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 DeleteMaliciousRequestsResponse(AbstractModel):
    r"""DeleteMaliciousRequests返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMalwareScanTaskRequest(AbstractModel):
    r"""DeleteMalwareScanTask请求参数结构体

    """


class DeleteMalwareScanTaskResponse(AbstractModel):
    r"""DeleteMalwareScanTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMalwareWhiteListRequest(AbstractModel):
    r"""DeleteMalwareWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""ID数组，最大100条。
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteMalwareWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMalwaresRequest(AbstractModel):
    r"""DeleteMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马记录ID数组 (最大100条)
        :type Ids: list of int non-negative
        :param _All: 是否删除全部
        :type All: bool
        """
        self._Ids = None
        self._All = None

    @property
    def Ids(self):
        r"""木马记录ID数组 (最大100条)
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def All(self):
        r"""是否删除全部
        :rtype: bool
        """
        return self._All

    @All.setter
    def All(self, All):
        self._All = All


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        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 DeleteMalwaresResponse(AbstractModel):
    r"""DeleteMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNetAttackWhiteListRequest(AbstractModel):
    r"""DeleteNetAttackWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""ID数组，最大100条。
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteNetAttackWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNonlocalLoginPlacesRequest(AbstractModel):
    r"""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):
        r"""删除异地登录事件的方式，可选值："Ids"、"Ip"、"All"，默认为Ids
        :rtype: str
        """
        return self._DelType

    @DelType.setter
    def DelType(self, DelType):
        self._DelType = DelType

    @property
    def Ids(self):
        r"""异地登录事件ID数组。DelType为Ids或DelType未填时此项必填
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Ip(self):
        r"""异地登录事件的Ip。DelType为Ip时必填
        :rtype: list of str
        """
        return self._Ip

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        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):
    r"""DeleteNonlocalLoginPlaces返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeletePrivilegeEventsRequest(AbstractModel):
    r"""DeletePrivilegeEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组. (最大100条)
        :type Ids: list of int non-negative
        :param _All: 是否删除全部
        :type All: bool
        """
        self._Ids = None
        self._All = None

    @property
    def Ids(self):
        r"""ID数组. (最大100条)
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def All(self):
        r"""是否删除全部
        :rtype: bool
        """
        return self._All

    @All.setter
    def All(self, All):
        self._All = All


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        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 DeletePrivilegeEventsResponse(AbstractModel):
    r"""DeletePrivilegeEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeletePrivilegeRulesRequest(AbstractModel):
    r"""DeletePrivilegeRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""ID数组，最大100条。
        :rtype: list of int non-negative
        """
        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):
    r"""DeletePrivilegeRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteProtectDirRequest(AbstractModel):
    r"""DeleteProtectDir请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 删除的目录ID 最大100条
        :type Ids: list of str
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""删除的目录ID 最大100条
        :rtype: list of str
        """
        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):
    r"""DeleteProtectDir返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteRaspRulesRequest(AbstractModel):
    r"""DeleteRaspRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _IDs: 待删除的规则ID数组 (最大100条)
        :type IDs: list of int non-negative
        """
        self._IDs = None

    @property
    def IDs(self):
        r"""待删除的规则ID数组 (最大100条)
        :rtype: list of int non-negative
        """
        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 DeleteRaspRulesResponse(AbstractModel):
    r"""DeleteRaspRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteReverseShellEventsRequest(AbstractModel):
    r"""DeleteReverseShellEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组. (最大100条)
        :type Ids: list of int non-negative
        :param _All: 是否删除全部
        :type All: bool
        """
        self._Ids = None
        self._All = None

    @property
    def Ids(self):
        r"""ID数组. (最大100条)
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def All(self):
        r"""是否删除全部
        :rtype: bool
        """
        return self._All

    @All.setter
    def All(self, All):
        self._All = All


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        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 DeleteReverseShellEventsResponse(AbstractModel):
    r"""DeleteReverseShellEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteReverseShellRulesRequest(AbstractModel):
    r"""DeleteReverseShellRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组. (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""ID数组. (最大100条)
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteReverseShellRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteRiskDnsEventRequest(AbstractModel):
    r"""DeleteRiskDnsEvent请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 恶意请求记录ID数组，(最大100条), 为空时全部删除
        :type Ids: list of int
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""恶意请求记录ID数组，(最大100条), 为空时全部删除
        :rtype: list of int
        """
        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):
    r"""DeleteRiskDnsEvent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteRiskDnsPolicyRequest(AbstractModel):
    r"""DeleteRiskDnsPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyIds: 策略ID
        :type PolicyIds: list of int
        """
        self._PolicyIds = None

    @property
    def PolicyIds(self):
        r"""策略ID
        :rtype: list of int
        """
        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):
    r"""DeleteRiskDnsPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteScanTaskRequest(AbstractModel):
    r"""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):
        r"""任务Id
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def ModuleType(self):
        r"""模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :rtype: str
        """
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def QuuidList(self):
        r"""自选服务器时生效，主机quuid的string数组
        :rtype: list of str
        """
        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):
    r"""DeleteScanTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteSearchTemplateRequest(AbstractModel):
    r"""DeleteSearchTemplate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 模板ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""模板ID
        :rtype: int
        """
        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):
    r"""DeleteSearchTemplate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 0：成功，非0：失败
        :type Status: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._RequestId = None

    @property
    def Status(self):
        r"""0：成功，非0：失败
        :rtype: int
        """
        return self._Status

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DeleteTags请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 标签ID (最大100 条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""标签ID (最大100 条)
        :rtype: list of int non-negative
        """
        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):
    r"""DeleteTags返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteWebHookPolicyRequest(AbstractModel):
    r"""DeleteWebHookPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: id列表
        :type Ids: list of int
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""id列表
        :rtype: list of int
        """
        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):
    r"""DeleteWebHookPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteWebHookReceiverRequest(AbstractModel):
    r"""DeleteWebHookReceiver请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: id数组
        :type Ids: list of int
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""id数组
        :rtype: list of int
        """
        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):
    r"""DeleteWebHookReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteWebHookRuleRequest(AbstractModel):
    r"""DeleteWebHookRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 规则Id列表
        :type Ids: list of int
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""规则Id列表
        :rtype: list of int
        """
        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):
    r"""DeleteWebHookRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteWebPageEventLogRequest(AbstractModel):
    r"""DeleteWebPageEventLog请求参数结构体

    """


class DeleteWebPageEventLogResponse(AbstractModel):
    r"""DeleteWebPageEventLog返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeliverTypeDetails(AbstractModel):
    r"""日志投递类型细节

    """

    def __init__(self):
        r"""
        :param _SecurityType: 安全模块类型 1: 入侵检测 2: 漏洞管理 3: 基线管理 4: 高级防御 5:客户端相关 6: 资产指纹 7 主机列表 8 客户端上报
        :type SecurityType: int
        :param _LogType: 安全模块下的日志类型
        :type LogType: list of int
        :param _TopicId: 主题ID
        :type TopicId: str
        :param _TopicName: 主题名
        :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: 最近一次状态上报时间戳
        :type StatusTime: int
        :param _LogName: 日志集名
        :type LogName: str
        :param _LogSetId: 日志集ID
        :type LogSetId: str
        :param _Region: 日志集所在地域
        :type Region: str
        """
        self._SecurityType = None
        self._LogType = None
        self._TopicId = None
        self._TopicName = None
        self._Switch = None
        self._Status = None
        self._ErrInfo = None
        self._StatusTime = None
        self._LogName = None
        self._LogSetId = None
        self._Region = None

    @property
    def SecurityType(self):
        r"""安全模块类型 1: 入侵检测 2: 漏洞管理 3: 基线管理 4: 高级防御 5:客户端相关 6: 资产指纹 7 主机列表 8 客户端上报
        :rtype: int
        """
        return self._SecurityType

    @SecurityType.setter
    def SecurityType(self, SecurityType):
        self._SecurityType = SecurityType

    @property
    def LogType(self):
        r"""安全模块下的日志类型
        :rtype: list of int
        """
        return self._LogType

    @LogType.setter
    def LogType(self, LogType):
        self._LogType = LogType

    @property
    def TopicId(self):
        r"""主题ID
        :rtype: str
        """
        return self._TopicId

    @TopicId.setter
    def TopicId(self, TopicId):
        self._TopicId = TopicId

    @property
    def TopicName(self):
        r"""主题名
        :rtype: str
        """
        return self._TopicName

    @TopicName.setter
    def TopicName(self, TopicName):
        self._TopicName = TopicName

    @property
    def Switch(self):
        r"""投递开关 0关闭 1开启
        :rtype: int
        """
        return self._Switch

    @Switch.setter
    def Switch(self, Switch):
        self._Switch = Switch

    @property
    def Status(self):
        r"""投递状态，0未开启 1正常 2异常
        :rtype: int
        """
        return self._Status

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

    @property
    def ErrInfo(self):
        r"""错误信息
        :rtype: str
        """
        return self._ErrInfo

    @ErrInfo.setter
    def ErrInfo(self, ErrInfo):
        self._ErrInfo = ErrInfo

    @property
    def StatusTime(self):
        r"""最近一次状态上报时间戳
        :rtype: int
        """
        return self._StatusTime

    @StatusTime.setter
    def StatusTime(self, StatusTime):
        self._StatusTime = StatusTime

    @property
    def LogName(self):
        r"""日志集名
        :rtype: str
        """
        return self._LogName

    @LogName.setter
    def LogName(self, LogName):
        self._LogName = LogName

    @property
    def LogSetId(self):
        r"""日志集ID
        :rtype: str
        """
        return self._LogSetId

    @LogSetId.setter
    def LogSetId(self, LogSetId):
        self._LogSetId = LogSetId

    @property
    def Region(self):
        r"""日志集所在地域
        :rtype: str
        """
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region


    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")
        self._LogName = params.get("LogName")
        self._LogSetId = params.get("LogSetId")
        self._Region = params.get("Region")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""DescribeABTestConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ProjectName: 灰度项目名称
        :type ProjectName: str
        """
        self._ProjectName = None

    @property
    def ProjectName(self):
        r"""灰度项目名称
        :rtype: str
        """
        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):
    r"""DescribeABTestConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Config: 灰度项目配置
        :type Config: list of ABTestConfig
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Config = None
        self._RequestId = None

    @property
    def Config(self):
        r"""灰度项目配置
        :rtype: list of ABTestConfig
        """
        return self._Config

    @Config.setter
    def Config(self, Config):
        self._Config = Config

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAESKey请求参数结构体

    """


class DescribeAESKeyResponse(AbstractModel):
    r"""DescribeAESKey返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeAccountStatisticsRequest(AbstractModel):
    r"""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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Username - String - 是否必填：否 - 帐号用户名</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeAccountStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 账号统计列表记录总数。
        :type TotalCount: int
        :param _AccountStatistics: 账号统计列表。
        :type AccountStatistics: list of AccountStatistics
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._AccountStatistics = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""账号统计列表记录总数。
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def AccountStatistics(self):
        r"""账号统计列表。
        :rtype: list of AccountStatistics
        """
        return self._AccountStatistics

    @AccountStatistics.setter
    def AccountStatistics(self, AccountStatistics):
        self._AccountStatistics = AccountStatistics

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""是否腾讯云
        :rtype: bool
        """
        return self._IsCloud

    @IsCloud.setter
    def IsCloud(self, IsCloud):
        self._IsCloud = IsCloud

    @property
    def NetType(self):
        r"""网络类型：basic-基础网络，private-VPC, public-公网，direct-专线
        :rtype: str
        """
        return self._NetType

    @NetType.setter
    def NetType(self, NetType):
        self._NetType = NetType

    @property
    def RegionCode(self):
        r"""地域标示, NetType=direct时必填
        :rtype: str
        """
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def VpcId(self):
        r"""VpcId, NetType=direct时必填
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def TagIds(self):
        r"""标签ID列表，IsCloud=false时才会生效
        :rtype: list of int non-negative
        """
        return self._TagIds

    @TagIds.setter
    def TagIds(self, TagIds):
        self._TagIds = TagIds

    @property
    def ExpireDate(self):
        r"""命令有效期，非腾讯云时必填（已废弃，命令永久生效）
        :rtype: str
        """
        return self._ExpireDate

    @ExpireDate.setter
    def ExpireDate(self, ExpireDate):
        self._ExpireDate = ExpireDate

    @property
    def Vip(self):
        r"""代理方式接入的vip
        :rtype: str
        """
        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):
    r"""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安装命令
        :type ARMCommand: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""linux系统安装命令
        :rtype: str
        """
        return self._LinuxCommand

    @LinuxCommand.setter
    def LinuxCommand(self, LinuxCommand):
        self._LinuxCommand = LinuxCommand

    @property
    def WindowsCommand(self):
        r"""windows系统安装命令（windows2008及以上）
        :rtype: str
        """
        return self._WindowsCommand

    @WindowsCommand.setter
    def WindowsCommand(self, WindowsCommand):
        self._WindowsCommand = WindowsCommand

    @property
    def WindowsStepOne(self):
        r"""windows系统安装命令第一步（windows2003）
        :rtype: str
        """
        return self._WindowsStepOne

    @WindowsStepOne.setter
    def WindowsStepOne(self, WindowsStepOne):
        self._WindowsStepOne = WindowsStepOne

    @property
    def WindowsStepTwo(self):
        r"""windows系统安装命令第二步（windows2003）
        :rtype: str
        """
        return self._WindowsStepTwo

    @WindowsStepTwo.setter
    def WindowsStepTwo(self, WindowsStepTwo):
        self._WindowsStepTwo = WindowsStepTwo

    @property
    def WindowsDownloadUrl(self):
        r"""windows版agent下载链接
        :rtype: str
        """
        return self._WindowsDownloadUrl

    @WindowsDownloadUrl.setter
    def WindowsDownloadUrl(self, WindowsDownloadUrl):
        self._WindowsDownloadUrl = WindowsDownloadUrl

    @property
    def ARMCommand(self):
        r"""Arm安装命令
        :rtype: str
        """
        return self._ARMCommand

    @ARMCommand.setter
    def ARMCommand(self, ARMCommand):
        self._ARMCommand = ARMCommand

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAgentInstallationToken请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ExpireDate: token 过期时间
        :type ExpireDate: str
        """
        self._ExpireDate = None

    @property
    def ExpireDate(self):
        r"""token 过期时间
        :rtype: str
        """
        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):
    r"""DescribeAgentInstallationToken返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Token: 安装命令token
        :type Token: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Token = None
        self._RequestId = None

    @property
    def Token(self):
        r"""安装命令token
        :rtype: str
        """
        return self._Token

    @Token.setter
    def Token(self, Token):
        self._Token = Token

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""机器uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def AlarmVid(self):
        r"""告警vid
        :rtype: str
        """
        return self._AlarmVid

    @AlarmVid.setter
    def AlarmVid(self, AlarmVid):
        self._AlarmVid = AlarmVid

    @property
    def AlarmTime(self):
        r"""告警时间
        :rtype: int
        """
        return self._AlarmTime

    @AlarmTime.setter
    def AlarmTime(self, AlarmTime):
        self._AlarmTime = AlarmTime

    @property
    def TableId(self):
        r"""告警来源表ID
        :rtype: int
        """
        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):
    r"""DescribeAlarmIncidentNodes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IncidentNodes: 告警点所在事件的所有节点信息,可能包含多事件
        :type IncidentNodes: list of IncidentVertexInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IncidentNodes = None
        self._RequestId = None

    @property
    def IncidentNodes(self):
        r"""告警点所在事件的所有节点信息,可能包含多事件
        :rtype: list of IncidentVertexInfo
        """
        return self._IncidentNodes

    @IncidentNodes.setter
    def IncidentNodes(self, IncidentNodes):
        self._IncidentNodes = IncidentNodes

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""机器uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def StartTime(self):
        r"""开始时间戳
        :rtype: int
        """
        return self._StartTime

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

    @property
    def EndTime(self):
        r"""结束时间戳
        :rtype: int
        """
        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):
    r"""DescribeAlarmVertexId返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AlarmVertexIds: 告警点id列表
        :type AlarmVertexIds: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AlarmVertexIds = None
        self._RequestId = None

    @property
    def AlarmVertexIds(self):
        r"""告警点id列表
        :rtype: list of str
        """
        return self._AlarmVertexIds

    @AlarmVertexIds.setter
    def AlarmVertexIds(self, AlarmVertexIds):
        self._AlarmVertexIds = AlarmVertexIds

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetAppCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：搜索返回所有软件名包含Name的进程列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        r"""搜索条件：搜索返回所有软件名包含Name的进程列表
        :rtype: str
        """
        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):
    r"""DescribeAssetAppCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Apps: 各软件应用数量
        :type Apps: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Apps = None
        self._RequestId = None

    @property
    def Apps(self):
        r"""各软件应用数量
        :rtype: list of AssetKeyVal
        """
        return self._Apps

    @Apps.setter
    def Apps(self, Apps):
        self._Apps = Apps

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime|ProcessCount]
        :rtype: str
        """
        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):
    r"""DescribeAssetAppList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Apps: 应用列表
        :type Apps: list of AssetAppBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Apps = None
        self._Total = None
        self._RequestId = None

    @property
    def Apps(self):
        r"""应用列表
        :rtype: list of AssetAppBaseInfo
        """
        return self._Apps

    @Apps.setter
    def Apps(self, Apps):
        self._Apps = Apps

    @property
    def Total(self):
        r"""总数量
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Name(self):
        r"""App名
        :rtype: str
        """
        return self._Name

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

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        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):
    r"""DescribeAssetAppProcessList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Process: 进程列表
        :type Process: list of AssetAppProcessInfo
        :param _Total: 分区总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Process = None
        self._Total = None
        self._RequestId = None

    @property
    def Process(self):
        r"""进程列表
        :rtype: list of AssetAppProcessInfo
        """
        return self._Process

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

    @property
    def Total(self):
        r"""分区总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Id(self):
        r"""内核模块ID
        :rtype: str
        """
        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):
    r"""DescribeAssetCoreModuleInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Module: 内核模块详情
        :type Module: :class:`tencentcloud.cwp.v20180228.models.AssetCoreModuleDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Module = None
        self._RequestId = None

    @property
    def Module(self):
        r"""内核模块详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetCoreModuleDetail`
        """
        return self._Module

    @Module.setter
    def Module(self, Module):
        self._Module = Module

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>IP - String - 是否必填：否 - 主机ip</li>
<li>MachineName - String - 是否必填：否 - 主机名称</li>
<li>InstanceID - string - 是否必填：否 - 实例ID</li>
<li>Name- string - 是否必填：否 - 包名</li>
<li>User- string - 是否必填：否 - 用户</li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序依据[Size|FirstTime|ProcessCount|ModuleCount]
        :rtype: str
        """
        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):
    r"""DescribeAssetCoreModuleList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Modules: 列表
        :type Modules: list of AssetCoreModuleBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Modules = None
        self._Total = None
        self._RequestId = None

    @property
    def Modules(self):
        r"""列表
        :rtype: list of AssetCoreModuleBaseInfo
        """
        return self._Modules

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

    @property
    def Total(self):
        r"""总数量
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetDatabaseCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的数据库列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        r"""搜索条件：返回名称包含Name的数据库列表
        :rtype: str
        """
        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):
    r"""DescribeAssetDatabaseCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Databases: 各数据库数量
        :type Databases: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Databases = None
        self._RequestId = None

    @property
    def Databases(self):
        r"""各数据库数量
        :rtype: list of AssetKeyVal
        """
        return self._Databases

    @Databases.setter
    def Databases(self, Databases):
        self._Databases = Databases

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Id(self):
        r"""数据库ID
        :rtype: str
        """
        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):
    r"""DescribeAssetDatabaseInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Database: 数据库详情
        :type Database: :class:`tencentcloud.cwp.v20180228.models.AssetDatabaseDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Database = None
        self._RequestId = None

    @property
    def Database(self):
        r"""数据库详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetDatabaseDetail`
        """
        return self._Database

    @Database.setter
    def Database(self, Database):
        self._Database = Database

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""DescribeAssetDatabaseList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Databases: 列表
        :type Databases: list of AssetDatabaseBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Databases = None
        self._Total = None
        self._RequestId = None

    @property
    def Databases(self):
        r"""列表
        :rtype: list of AssetDatabaseBaseInfo
        """
        return self._Databases

    @Databases.setter
    def Databases(self, Databases):
        self._Databases = Databases

    @property
    def Total(self):
        r"""总数量
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        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):
    r"""DescribeAssetDiskList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Disks: 磁盘分区列表
        :type Disks: list of AssetDiskPartitionInfo
        :param _Total: 分区总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Disks = None
        self._Total = None
        self._RequestId = None

    @property
    def Disks(self):
        r"""磁盘分区列表
        :rtype: list of AssetDiskPartitionInfo
        """
        return self._Disks

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

    @property
    def Total(self):
        r"""分区总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Type(self):
        r"""该字段已废弃，由Filters代替
        :rtype: int
        """
        return self._Type

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>Name- string - 是否必填：否 - 环境变量名</li>
<li>Type- int - 是否必填：否 - 类型：0用户变量，1系统变量</li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""DescribeAssetEnvList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Envs: 列表
        :type Envs: list of AssetEnvBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Envs = None
        self._Total = None
        self._RequestId = None

    @property
    def Envs(self):
        r"""列表
        :rtype: list of AssetEnvBaseInfo
        """
        return self._Envs

    @Envs.setter
    def Envs(self, Envs):
        self._Envs = Envs

    @property
    def Total(self):
        r"""总数量
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Types = None
        self._RequestId = None

    @property
    def Types(self):
        r"""各项资源数量
system : 资源监控
account: 账号
port: 端口
process: 进程
app: 应用软件
database:数据库
webapp: Web应用
webframe: Web框架
webservice: Web服务
weblocation: Web站点
systempackage: 系统安装包
jar: jar包
initservice:启动服务
env: 环境变量
coremodule: 内核模块
        :rtype: list of AssetKeyVal
        """
        return self._Types

    @Types.setter
    def Types(self, Types):
        self._Types = Types

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetInfo请求参数结构体

    """


class DescribeAssetInfoResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""主机数
        :rtype: int
        """
        return self._MachineCount

    @MachineCount.setter
    def MachineCount(self, MachineCount):
        self._MachineCount = MachineCount

    @property
    def AccountCount(self):
        r"""账号数
        :rtype: int
        """
        return self._AccountCount

    @AccountCount.setter
    def AccountCount(self, AccountCount):
        self._AccountCount = AccountCount

    @property
    def PortCount(self):
        r"""端口数
        :rtype: int
        """
        return self._PortCount

    @PortCount.setter
    def PortCount(self, PortCount):
        self._PortCount = PortCount

    @property
    def ProcessCount(self):
        r"""进程数
        :rtype: int
        """
        return self._ProcessCount

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

    @property
    def SoftwareCount(self):
        r"""软件数
        :rtype: int
        """
        return self._SoftwareCount

    @SoftwareCount.setter
    def SoftwareCount(self, SoftwareCount):
        self._SoftwareCount = SoftwareCount

    @property
    def DatabaseCount(self):
        r"""数据库数
        :rtype: int
        """
        return self._DatabaseCount

    @DatabaseCount.setter
    def DatabaseCount(self, DatabaseCount):
        self._DatabaseCount = DatabaseCount

    @property
    def WebAppCount(self):
        r"""Web应用数
        :rtype: int
        """
        return self._WebAppCount

    @WebAppCount.setter
    def WebAppCount(self, WebAppCount):
        self._WebAppCount = WebAppCount

    @property
    def WebFrameCount(self):
        r"""Web框架数
        :rtype: int
        """
        return self._WebFrameCount

    @WebFrameCount.setter
    def WebFrameCount(self, WebFrameCount):
        self._WebFrameCount = WebFrameCount

    @property
    def WebServiceCount(self):
        r"""Web服务数
        :rtype: int
        """
        return self._WebServiceCount

    @WebServiceCount.setter
    def WebServiceCount(self, WebServiceCount):
        self._WebServiceCount = WebServiceCount

    @property
    def WebLocationCount(self):
        r"""Web站点数
        :rtype: int
        """
        return self._WebLocationCount

    @WebLocationCount.setter
    def WebLocationCount(self, WebLocationCount):
        self._WebLocationCount = WebLocationCount

    @property
    def AccountNewCount(self):
        r"""账号今日新增
        :rtype: int
        """
        return self._AccountNewCount

    @AccountNewCount.setter
    def AccountNewCount(self, AccountNewCount):
        self._AccountNewCount = AccountNewCount

    @property
    def PortNewCount(self):
        r"""端口今日新增
        :rtype: int
        """
        return self._PortNewCount

    @PortNewCount.setter
    def PortNewCount(self, PortNewCount):
        self._PortNewCount = PortNewCount

    @property
    def ProcessNewCount(self):
        r"""进程今日新增
        :rtype: int
        """
        return self._ProcessNewCount

    @ProcessNewCount.setter
    def ProcessNewCount(self, ProcessNewCount):
        self._ProcessNewCount = ProcessNewCount

    @property
    def SoftwareNewCount(self):
        r"""软件今日新增
        :rtype: int
        """
        return self._SoftwareNewCount

    @SoftwareNewCount.setter
    def SoftwareNewCount(self, SoftwareNewCount):
        self._SoftwareNewCount = SoftwareNewCount

    @property
    def DatabaseNewCount(self):
        r"""数据库今日新增
        :rtype: int
        """
        return self._DatabaseNewCount

    @DatabaseNewCount.setter
    def DatabaseNewCount(self, DatabaseNewCount):
        self._DatabaseNewCount = DatabaseNewCount

    @property
    def WebAppNewCount(self):
        r"""Web应用今日新增
        :rtype: int
        """
        return self._WebAppNewCount

    @WebAppNewCount.setter
    def WebAppNewCount(self, WebAppNewCount):
        self._WebAppNewCount = WebAppNewCount

    @property
    def WebFrameNewCount(self):
        r"""Web框架今日新增
        :rtype: int
        """
        return self._WebFrameNewCount

    @WebFrameNewCount.setter
    def WebFrameNewCount(self, WebFrameNewCount):
        self._WebFrameNewCount = WebFrameNewCount

    @property
    def WebServiceNewCount(self):
        r"""Web服务今日新增
        :rtype: int
        """
        return self._WebServiceNewCount

    @WebServiceNewCount.setter
    def WebServiceNewCount(self, WebServiceNewCount):
        self._WebServiceNewCount = WebServiceNewCount

    @property
    def WebLocationNewCount(self):
        r"""Web站点今日新增
        :rtype: int
        """
        return self._WebLocationNewCount

    @WebLocationNewCount.setter
    def WebLocationNewCount(self, WebLocationNewCount):
        self._WebLocationNewCount = WebLocationNewCount

    @property
    def MachineNewCount(self):
        r"""主机今日新增
        :rtype: int
        """
        return self._MachineNewCount

    @MachineNewCount.setter
    def MachineNewCount(self, MachineNewCount):
        self._MachineNewCount = MachineNewCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""DescribeAssetInitServiceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Services: 列表
        :type Services: list of AssetInitServiceBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Services = None
        self._Total = None
        self._RequestId = None

    @property
    def Services(self):
        r"""列表
        :rtype: list of AssetInitServiceBaseInfo
        """
        return self._Services

    @Services.setter
    def Services(self, Services):
        self._Services = Services

    @property
    def Total(self):
        r"""总数量
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Id(self):
        r"""Jar包ID
        :rtype: str
        """
        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):
    r"""DescribeAssetJarInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Jar: Jar包详情
        :type Jar: :class:`tencentcloud.cwp.v20180228.models.AssetJarDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Jar = None
        self._RequestId = None

    @property
    def Jar(self):
        r"""Jar包详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetJarDetail`
        """
        return self._Jar

    @Jar.setter
    def Jar(self, Jar):
        self._Jar = Jar

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""DescribeAssetJarList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Jars: 应用列表
        :type Jars: list of AssetJarBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Jars = None
        self._Total = None
        self._RequestId = None

    @property
    def Jars(self):
        r"""应用列表
        :rtype: list of AssetJarBaseInfo
        """
        return self._Jars

    @Jars.setter
    def Jars(self, Jars):
        self._Jars = Jars

    @property
    def Total(self):
        r"""总数量
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetLoadInfo请求参数结构体

    """


class DescribeAssetLoadInfoResponse(AbstractModel):
    r"""DescribeAssetLoadInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CpuLoad: 系统负载
        :type CpuLoad: :class:`tencentcloud.cwp.v20180228.models.AssetLoadSummary`
        :param _MemLoad: 内存使用率
        :type MemLoad: :class:`tencentcloud.cwp.v20180228.models.AssetLoadSummary`
        :param _DiskLoad: 硬盘使用率
        :type DiskLoad: :class:`tencentcloud.cwp.v20180228.models.AssetLoadSummary`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CpuLoad = None
        self._MemLoad = None
        self._DiskLoad = None
        self._RequestId = None

    @property
    def CpuLoad(self):
        r"""系统负载
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetLoadSummary`
        """
        return self._CpuLoad

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

    @property
    def MemLoad(self):
        r"""内存使用率
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetLoadSummary`
        """
        return self._MemLoad

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

    @property
    def DiskLoad(self):
        r"""硬盘使用率
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetLoadSummary`
        """
        return self._DiskLoad

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        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):
    r"""DescribeAssetMachineDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineDetail: 主机详情
        :type MachineDetail: :class:`tencentcloud.cwp.v20180228.models.AssetMachineDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MachineDetail = None
        self._RequestId = None

    @property
    def MachineDetail(self):
        r"""主机详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetMachineDetail`
        """
        return self._MachineDetail

    @MachineDetail.setter
    def MachineDetail(self, MachineDetail):
        self._MachineDetail = MachineDetail

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetMachineList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>MachineName  主机名称</li>
<li>InstanceID  实例ID  </li>
<li>IP   内网IP或公网IP</li>
<li>OsType - String - 是否必填：否 - windows或linux</li>
<li>CpuLoad - Int - 是否必填：否 - 
	0: 未知  1: 低负载
	2: 中负载  3: 高负载</li>
<li>DiskLoad - Int - 是否必填：否 - 
	0: 0%或未知  1: 0%～20%
	2: 20%～50%  3: 50%～80%
	4: 80%～100%</li>
<li>MemLoad - Int - 是否必填：否 - 
	0: 0%或未知  1: 0%～20%
	2: 20%～50%  3: 50%～80%
	4: 80%～100%</li>
<li>Quuid：主机Quuid</li>
<li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        :type Filters: 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):
        r"""过滤条件。
<li>MachineName  主机名称</li>
<li>InstanceID  实例ID  </li>
<li>IP   内网IP或公网IP</li>
<li>OsType - String - 是否必填：否 - windows或linux</li>
<li>CpuLoad - Int - 是否必填：否 - 
	0: 未知  1: 低负载
	2: 中负载  3: 高负载</li>
<li>DiskLoad - Int - 是否必填：否 - 
	0: 0%或未知  1: 0%～20%
	2: 20%～50%  3: 50%～80%
	4: 80%～100%</li>
<li>MemLoad - Int - 是否必填：否 - 
	0: 0%或未知  1: 0%～20%
	2: 20%～50%  3: 50%～80%
	4: 80%～100%</li>
<li>Quuid：主机Quuid</li>
<li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序[FirstTime|PartitionCount]
        :rtype: str
        """
        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):
    r"""DescribeAssetMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _Machines: 记录列表
        :type Machines: list of AssetMachineBaseInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Machines = None
        self._RequestId = None

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Machines(self):
        r"""记录列表
        :rtype: list of AssetMachineBaseInfo
        """
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetMachineTagTop请求参数结构体

    """


class DescribeAssetMachineTagTopResponse(AbstractModel):
    r"""DescribeAssetMachineTagTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Tags: Top5标签及数量
        :type Tags: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Tags = None
        self._RequestId = None

    @property
    def Tags(self):
        r"""Top5标签及数量
        :rtype: list of AssetKeyVal
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>IP - String - 是否必填：否 - 主机ip</li>
<li>MachineName - String - 是否必填：否 - 主机名称</li>
<li>InstanceID - string - 是否必填：否 - 实例ID</li>
<li>User- string - 是否必填：否 - 用户</li>
<li>Status- int - 是否必填：否 - 默认启用状态：0未启用， 1启用 </li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""DescribeAssetPlanTaskList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Tasks: 列表
        :type Tasks: list of AssetPlanTask
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Tasks = None
        self._Total = None
        self._RequestId = None

    @property
    def Tasks(self):
        r"""列表
        :rtype: list of AssetPlanTask
        """
        return self._Tasks

    @Tasks.setter
    def Tasks(self, Tasks):
        self._Tasks = Tasks

    @property
    def Total(self):
        r"""总数量
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetPortCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Port: 搜索条件：返回指定端口号数据
        :type Port: int
        """
        self._Port = None

    @property
    def Port(self):
        r"""搜索条件：返回指定端口号数据
        :rtype: int
        """
        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):
    r"""DescribeAssetPortCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ports: 各进程数量
        :type Ports: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ports = None
        self._RequestId = None

    @property
    def Ports(self):
        r"""各进程数量
        :rtype: list of AssetKeyVal
        """
        return self._Ports

    @Ports.setter
    def Ports(self, Ports):
        self._Ports = Ports

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime|StartTime]
        :rtype: str
        """
        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):
    r"""DescribeAssetPortInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Ports: 列表
        :type Ports: list of AssetPortBaseInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Ports = None
        self._RequestId = None

    @property
    def Total(self):
        r"""记录总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Ports(self):
        r"""列表
        :rtype: list of AssetPortBaseInfo
        """
        return self._Ports

    @Ports.setter
    def Ports(self, Ports):
        self._Ports = Ports

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetProcessCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：搜索返回所有进程名包含Name的进程列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        r"""搜索条件：搜索返回所有进程名包含Name的进程列表
        :rtype: str
        """
        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):
    r"""DescribeAssetProcessCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Process: 各进程数量
        :type Process: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Process = None
        self._RequestId = None

    @property
    def Process(self):
        r"""各进程数量
        :rtype: list of AssetKeyVal
        """
        return self._Process

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime|StartTime]
        :rtype: str
        """
        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):
    r"""DescribeAssetProcessInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Process: 列表
        :type Process: list of AssetProcessBaseInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Process = None
        self._RequestId = None

    @property
    def Total(self):
        r"""记录总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Process(self):
        r"""列表
        :rtype: list of AssetProcessBaseInfo
        """
        return self._Process

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""开始时间，如：2020-09-22
        :rtype: str
        """
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        r"""结束时间，如：2020-09-22
        :rtype: str
        """
        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):
    r"""DescribeAssetRecentMachineInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalList: 总数量列表
        :type TotalList: list of AssetKeyVal
        :param _LiveList: 在线数量列表
        :type LiveList: list of AssetKeyVal
        :param _OfflineList: 离线数量列表
        :type OfflineList: list of AssetKeyVal
        :param _RiskList: 风险数量列表
        :type RiskList: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalList = None
        self._LiveList = None
        self._OfflineList = None
        self._RiskList = None
        self._RequestId = None

    @property
    def TotalList(self):
        r"""总数量列表
        :rtype: list of AssetKeyVal
        """
        return self._TotalList

    @TotalList.setter
    def TotalList(self, TotalList):
        self._TotalList = TotalList

    @property
    def LiveList(self):
        r"""在线数量列表
        :rtype: list of AssetKeyVal
        """
        return self._LiveList

    @LiveList.setter
    def LiveList(self, LiveList):
        self._LiveList = LiveList

    @property
    def OfflineList(self):
        r"""离线数量列表
        :rtype: list of AssetKeyVal
        """
        return self._OfflineList

    @OfflineList.setter
    def OfflineList(self, OfflineList):
        self._OfflineList = OfflineList

    @property
    def RiskList(self):
        r"""风险数量列表
        :rtype: list of AssetKeyVal
        """
        return self._RiskList

    @RiskList.setter
    def RiskList(self, RiskList):
        self._RiskList = RiskList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>Name - String - 是否必填：否 - 包 名</li>
<li>StartTime - String - 是否必填：否 - 安装开始时间</li>
<li>EndTime - String - 是否必填：否 - 安装开始时间</li>
<li>Type - int - 是否必填：否 - 安装包类型：
1:rmp
2:dpkg
3:java
4:system</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc-升序 或 desc-降序。默认：desc-降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式可选：[FistTime|InstallTime:安装时间]
        :rtype: str
        """
        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):
    r"""DescribeAssetSystemPackageList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Packages: 列表
        :type Packages: list of AssetSystemPackageInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Packages = None
        self._RequestId = None

    @property
    def Total(self):
        r"""记录总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Packages(self):
        r"""列表
        :rtype: list of AssetSystemPackageInfo
        """
        return self._Packages

    @Packages.setter
    def Packages(self, Packages):
        self._Packages = Packages

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetTotalCount请求参数结构体

    """


class DescribeAssetTotalCountResponse(AbstractModel):
    r"""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:环境变量
coremodule:内核模块
        :type Types: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Types = None
        self._RequestId = None

    @property
    def Types(self):
        r"""各项资源数量
system : 资源监控
account: 账号
port: 端口
process: 进程
app: 应用软件
database:数据库
webapp: Web应用
webframe: Web框架
webservice: Web服务
weblocation: Web站点
jar: Jar包
initservice: 启动服务
planTask:计划任务
env:环境变量
coremodule:内核模块
        :rtype: list of AssetKeyVal
        """
        return self._Types

    @Types.setter
    def Types(self, Types):
        self._Types = Types

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetTypeTop请求参数结构体

    """


class DescribeAssetTypeTopResponse(AbstractModel):
    r"""DescribeAssetTypeTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _User: 账号Top5
        :type User: list of AssetKeyVal
        :param _Port: 端口Top5
        :type Port: list of AssetKeyVal
        :param _Process: 进程Top5
        :type Process: list of AssetKeyVal
        :param _Software: 软件Top5
        :type Software: list of AssetKeyVal
        :param _Database: 数据库Top5
        :type Database: list of AssetKeyVal
        :param _WebApp: Web应用Top5
        :type WebApp: list of AssetKeyVal
        :param _WebLocation: Web站点Top5
        :type WebLocation: list of AssetKeyVal
        :param _WebFrame: Web框架Top5
        :type WebFrame: list of AssetKeyVal
        :param _WebService: Web服务Top5
        :type WebService: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""账号Top5
        :rtype: list of AssetKeyVal
        """
        return self._User

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

    @property
    def Port(self):
        r"""端口Top5
        :rtype: list of AssetKeyVal
        """
        return self._Port

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

    @property
    def Process(self):
        r"""进程Top5
        :rtype: list of AssetKeyVal
        """
        return self._Process

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

    @property
    def Software(self):
        r"""软件Top5
        :rtype: list of AssetKeyVal
        """
        return self._Software

    @Software.setter
    def Software(self, Software):
        self._Software = Software

    @property
    def Database(self):
        r"""数据库Top5
        :rtype: list of AssetKeyVal
        """
        return self._Database

    @Database.setter
    def Database(self, Database):
        self._Database = Database

    @property
    def WebApp(self):
        r"""Web应用Top5
        :rtype: list of AssetKeyVal
        """
        return self._WebApp

    @WebApp.setter
    def WebApp(self, WebApp):
        self._WebApp = WebApp

    @property
    def WebLocation(self):
        r"""Web站点Top5
        :rtype: list of AssetKeyVal
        """
        return self._WebLocation

    @WebLocation.setter
    def WebLocation(self, WebLocation):
        self._WebLocation = WebLocation

    @property
    def WebFrame(self):
        r"""Web框架Top5
        :rtype: list of AssetKeyVal
        """
        return self._WebFrame

    @WebFrame.setter
    def WebFrame(self, WebFrame):
        self._WebFrame = WebFrame

    @property
    def WebService(self):
        r"""Web服务Top5
        :rtype: list of AssetKeyVal
        """
        return self._WebService

    @WebService.setter
    def WebService(self, WebService):
        self._WebService = WebService

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetTypes请求参数结构体

    """


class DescribeAssetTypesResponse(AbstractModel):
    r"""DescribeAssetTypes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Types: 资产指纹类型列表
        :type Types: list of AssetType
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Types = None
        self._RequestId = None

    @property
    def Types(self):
        r"""资产指纹类型列表
        :rtype: list of AssetType
        """
        return self._Types

    @Types.setter
    def Types(self, Types):
        self._Types = Types

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetUserCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：搜索名称中包含name的所有账号列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        r"""搜索条件：搜索名称中包含name的所有账号列表
        :rtype: str
        """
        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):
    r"""DescribeAssetUserCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Users: 各账号数量
        :type Users: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Users = None
        self._RequestId = None

    @property
    def Users(self):
        r"""各账号数量
        :rtype: list of AssetKeyVal
        """
        return self._Users

    @Users.setter
    def Users(self, Users):
        self._Users = Users

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""云服务器UUID
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机安全UUID
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Name(self):
        r"""账户名
        :rtype: str
        """
        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):
    r"""DescribeAssetUserInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _User: 用户详细信息
        :type User: :class:`tencentcloud.cwp.v20180228.models.AssetUserDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._User = None
        self._RequestId = None

    @property
    def User(self):
        r"""用户详细信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetUserDetail`
        """
        return self._User

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Name(self):
        r"""账号名
        :rtype: str
        """
        return self._Name

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

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        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):
    r"""DescribeAssetUserKeyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Keys: 公钥列表
        :type Keys: list of AssetUserKeyInfo
        :param _Total: 分区总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Keys = None
        self._Total = None
        self._RequestId = None

    @property
    def Keys(self):
        r"""公钥列表
        :rtype: list of AssetUserKeyInfo
        """
        return self._Keys

    @Keys.setter
    def Keys(self, Keys):
        self._Keys = Keys

    @property
    def Total(self):
        r"""分区总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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>
<li>IsRoot - uint64 - 是否必填：否 - 是否Root权限：0 不是，1是 仅linux</li>
<li>IsSudo - uint64 - 是否必填：否 - 是否Sudo权限：0 不是，1是 仅linux</li>
<li>IsSshLogin - uint64 - 是否必填：否 - 是否ssh登录：0 不是，1是 仅linux</li>
<li>ShellLoginStatus - uint64 - 是否必填：否 - 是否shell登录性，0不是；1是 仅linux</li>
<li>PasswordStatus - uint64 - 是否必填：否 - 密码状态：1正常 2即将过期 3已过期 4已锁定 仅linux</li>
<li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        :type Filters: 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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>IP - String - 是否必填：否 - 主机ip</li>
<li>MachineName - String - 是否必填：否 - 主机名称</li>
<li>InstanceID - string - 是否必填：否 - 实例ID</li>
<li>Name - String - 是否必填：否 - 账户名（模糊匹配）</li>
<li>NameStrict - String - 是否必填：否 - 账户名（严格匹配）</li>
<li>Uid - uint64 - 是否必填：否 - Uid</li>
<li>Guid - uint64 - 是否必填：否 - Guid</li>
<li>LoginTimeStart - String - 是否必填：否 - 开始时间，如：2021-01-11</li>
<li>LoginTimeEnd - String - 是否必填：否 - 结束时间，如：2021-01-11</li>
<li>LoginType - uint64 - 是否必填：否 - 0-不可登录；1-只允许key登录；2只允许密码登录；3-允许key和密码 仅linux</li>
<li>OsType - String - 是否必填：否 - windows或linux</li>
<li>Status - uint64 - 是否必填：否 - 账号状态：0-禁用；1-启用</li>
<li>UserType - uint64 - 是否必填：否 - 账号类型：0访客用户，1标准用户，2管理员用户 仅windows</li>
<li>IsDomain - uint64 - 是否必填：否 - 是否域账号：0 不是，1是 仅windows</li>
<li>IsRoot - uint64 - 是否必填：否 - 是否Root权限：0 不是，1是 仅linux</li>
<li>IsSudo - uint64 - 是否必填：否 - 是否Sudo权限：0 不是，1是 仅linux</li>
<li>IsSshLogin - uint64 - 是否必填：否 - 是否ssh登录：0 不是，1是 仅linux</li>
<li>ShellLoginStatus - uint64 - 是否必填：否 - 是否shell登录性，0不是；1是 仅linux</li>
<li>PasswordStatus - uint64 - 是否必填：否 - 密码状态：1正常 2即将过期 3已过期 4已锁定 仅linux</li>
<li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|LoginTime|PasswordChangeTime|PasswordDuaTime|PasswordLockDays]

        :rtype: str
        """
        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):
    r"""DescribeAssetUserList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Users: 账号列表
        :type Users: list of AssetUserBaseInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Users = None
        self._RequestId = None

    @property
    def Total(self):
        r"""记录总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Users(self):
        r"""账号列表
        :rtype: list of AssetUserBaseInfo
        """
        return self._Users

    @Users.setter
    def Users(self, Users):
        self._Users = Users

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetWebAppCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的所有Web应用列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        r"""搜索条件：返回名称包含Name的所有Web应用列表
        :rtype: str
        """
        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):
    r"""DescribeAssetWebAppCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebApps: 各Web应用数量
        :type WebApps: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebApps = None
        self._RequestId = None

    @property
    def WebApps(self):
        r"""各Web应用数量
        :rtype: list of AssetKeyVal
        """
        return self._WebApps

    @WebApps.setter
    def WebApps(self, WebApps):
        self._WebApps = WebApps

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|PluginCount]
        :rtype: str
        """
        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):
    r"""DescribeAssetWebAppList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _WebApps: 列表
        :type WebApps: list of AssetWebAppBaseInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._WebApps = None
        self._RequestId = None

    @property
    def Total(self):
        r"""记录总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def WebApps(self):
        r"""列表
        :rtype: list of AssetWebAppBaseInfo
        """
        return self._WebApps

    @WebApps.setter
    def WebApps(self, WebApps):
        self._WebApps = WebApps

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Id(self):
        r"""Web应用ID
        :rtype: str
        """
        return self._Id

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

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        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):
    r"""DescribeAssetWebAppPluginList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Plugins: 列表
        :type Plugins: list of AssetWebAppPluginInfo
        :param _Total: 分区总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Plugins = None
        self._Total = None
        self._RequestId = None

    @property
    def Plugins(self):
        r"""列表
        :rtype: list of AssetWebAppPluginInfo
        """
        return self._Plugins

    @Plugins.setter
    def Plugins(self, Plugins):
        self._Plugins = Plugins

    @property
    def Total(self):
        r"""分区总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetWebFrameCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的所有Web框架列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        r"""搜索条件：返回名称包含Name的所有Web框架列表
        :rtype: str
        """
        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):
    r"""DescribeAssetWebFrameCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebFrames: 各Web框架数量
        :type WebFrames: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebFrames = None
        self._RequestId = None

    @property
    def WebFrames(self):
        r"""各Web框架数量
        :rtype: list of AssetKeyVal
        """
        return self._WebFrames

    @WebFrames.setter
    def WebFrames(self, WebFrames):
        self._WebFrames = WebFrames

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|JarCount]
        :rtype: str
        """
        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):
    r"""DescribeAssetWebFrameList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _WebFrames: 列表
        :type WebFrames: list of AssetWebFrameBaseInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._WebFrames = None
        self._RequestId = None

    @property
    def Total(self):
        r"""记录总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def WebFrames(self):
        r"""列表
        :rtype: list of AssetWebFrameBaseInfo
        """
        return self._WebFrames

    @WebFrames.setter
    def WebFrames(self, WebFrames):
        self._WebFrames = WebFrames

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetWebLocationCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的所有Web站点列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        r"""搜索条件：返回名称包含Name的所有Web站点列表
        :rtype: str
        """
        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):
    r"""DescribeAssetWebLocationCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebLocations: 各Web站点数量
        :type WebLocations: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebLocations = None
        self._RequestId = None

    @property
    def WebLocations(self):
        r"""各Web站点数量
        :rtype: list of AssetKeyVal
        """
        return self._WebLocations

    @WebLocations.setter
    def WebLocations(self, WebLocations):
        self._WebLocations = WebLocations

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Id(self):
        r"""站点Id
        :rtype: str
        """
        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):
    r"""DescribeAssetWebLocationInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebLocation: 站点信息
        :type WebLocation: :class:`tencentcloud.cwp.v20180228.models.AssetWebLocationInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebLocation = None
        self._RequestId = None

    @property
    def WebLocation(self):
        r"""站点信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.AssetWebLocationInfo`
        """
        return self._WebLocation

    @WebLocation.setter
    def WebLocation(self, WebLocation):
        self._WebLocation = WebLocation

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|PathCount]
        :rtype: str
        """
        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):
    r"""DescribeAssetWebLocationList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Locations: 站点列表
        :type Locations: list of AssetWebLocationBaseInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Locations = None
        self._RequestId = None

    @property
    def Total(self):
        r"""记录总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Locations(self):
        r"""站点列表
        :rtype: list of AssetWebLocationBaseInfo
        """
        return self._Locations

    @Locations.setter
    def Locations(self, Locations):
        self._Locations = Locations

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Id(self):
        r"""Web站点Id
        :rtype: str
        """
        return self._Id

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

    @property
    def Limit(self):
        r"""返回列表数量，最多100，默认10
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0
        :rtype: int
        """
        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):
    r"""DescribeAssetWebLocationPathList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _Paths: 列表
        :type Paths: list of AssetWebLocationPath
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Paths = None
        self._RequestId = None

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Paths(self):
        r"""列表
        :rtype: list of AssetWebLocationPath
        """
        return self._Paths

    @Paths.setter
    def Paths(self, Paths):
        self._Paths = Paths

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAssetWebServiceCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的所有Web服务列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        r"""搜索条件：返回名称包含Name的所有Web服务列表
        :rtype: str
        """
        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):
    r"""DescribeAssetWebServiceCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebServices: 各Web服务数量
        :type WebServices: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebServices = None
        self._RequestId = None

    @property
    def WebServices(self):
        r"""各Web服务数量
        :rtype: list of AssetKeyVal
        """
        return self._WebServices

    @WebServices.setter
    def WebServices(self, WebServices):
        self._WebServices = WebServices

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|ProcessCount]
        :rtype: str
        """
        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):
    r"""DescribeAssetWebServiceInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebServices: 列表
        :type WebServices: list of AssetWebServiceBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebServices = None
        self._Total = None
        self._RequestId = None

    @property
    def WebServices(self):
        r"""列表
        :rtype: list of AssetWebServiceBaseInfo
        """
        return self._WebServices

    @WebServices.setter
    def WebServices(self, WebServices):
        self._WebServices = WebServices

    @property
    def Total(self):
        r"""总数量
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Id(self):
        r"""Web服务ID
        :rtype: str
        """
        return self._Id

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

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        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):
    r"""DescribeAssetWebServiceProcessList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Process: 进程列表
        :type Process: list of AssetAppProcessInfo
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Process = None
        self._Total = None
        self._RequestId = None

    @property
    def Process(self):
        r"""进程列表
        :rtype: list of AssetAppProcessInfo
        """
        return self._Process

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

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAttackEventInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        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):
    r"""DescribeAttackEventInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackEventInfo: 网络攻击事件详情
        :type NetAttackEventInfo: :class:`tencentcloud.cwp.v20180228.models.NetAttackEventInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetAttackEventInfo = None
        self._RequestId = None

    @property
    def NetAttackEventInfo(self):
        r"""网络攻击事件详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.NetAttackEventInfo`
        """
        return self._NetAttackEventInfo

    @NetAttackEventInfo.setter
    def NetAttackEventInfo(self, NetAttackEventInfo):
        self._NetAttackEventInfo = NetAttackEventInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r""" 过滤条件。
<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>

        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""排序
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序方式 ASC,DESC
        :rtype: str
        """
        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):
    r"""DescribeAttackEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 攻击事件列表
        :type List: list of NetAttackEvent
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""攻击事件列表
        :rtype: list of NetAttackEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeAttackStatisticsRequest(AbstractModel):
    r"""DescribeAttackStatistics请求参数结构体

    """


class DescribeAttackStatisticsResponse(AbstractModel):
    r"""DescribeAttackStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PendingAttackCount: 总攻击次数
        :type PendingAttackCount: int
        :param _PendingTryAttackCount: 总尝试攻击次数
        :type PendingTryAttackCount: int
        :param _PendingSuccAttackCount: 总攻击成功次数
        :type PendingSuccAttackCount: int
        :param _PendingNewAttackCount: 今日新增攻击次数
        :type PendingNewAttackCount: int
        :param _AttackedAssetCount: 总受攻击资产数量
        :type AttackedAssetCount: int
        :param _NewAttackedAssetCount: 今日新增受攻击资产数量
        :type NewAttackedAssetCount: int
        :param _AttackedPortCount: 总受攻击端口数量
        :type AttackedPortCount: int
        :param _NewAttackedPortCount: 今日新增受攻击端口数量
        :type NewAttackedPortCount: int
        :param _AttackSrcIpCount: 总攻击来源ip数量
        :type AttackSrcIpCount: int
        :param _NewAttackSrcIpCount: 今日新增攻击来源ip数量
        :type NewAttackSrcIpCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""总攻击次数
        :rtype: int
        """
        return self._PendingAttackCount

    @PendingAttackCount.setter
    def PendingAttackCount(self, PendingAttackCount):
        self._PendingAttackCount = PendingAttackCount

    @property
    def PendingTryAttackCount(self):
        r"""总尝试攻击次数
        :rtype: int
        """
        return self._PendingTryAttackCount

    @PendingTryAttackCount.setter
    def PendingTryAttackCount(self, PendingTryAttackCount):
        self._PendingTryAttackCount = PendingTryAttackCount

    @property
    def PendingSuccAttackCount(self):
        r"""总攻击成功次数
        :rtype: int
        """
        return self._PendingSuccAttackCount

    @PendingSuccAttackCount.setter
    def PendingSuccAttackCount(self, PendingSuccAttackCount):
        self._PendingSuccAttackCount = PendingSuccAttackCount

    @property
    def PendingNewAttackCount(self):
        r"""今日新增攻击次数
        :rtype: int
        """
        return self._PendingNewAttackCount

    @PendingNewAttackCount.setter
    def PendingNewAttackCount(self, PendingNewAttackCount):
        self._PendingNewAttackCount = PendingNewAttackCount

    @property
    def AttackedAssetCount(self):
        r"""总受攻击资产数量
        :rtype: int
        """
        return self._AttackedAssetCount

    @AttackedAssetCount.setter
    def AttackedAssetCount(self, AttackedAssetCount):
        self._AttackedAssetCount = AttackedAssetCount

    @property
    def NewAttackedAssetCount(self):
        r"""今日新增受攻击资产数量
        :rtype: int
        """
        return self._NewAttackedAssetCount

    @NewAttackedAssetCount.setter
    def NewAttackedAssetCount(self, NewAttackedAssetCount):
        self._NewAttackedAssetCount = NewAttackedAssetCount

    @property
    def AttackedPortCount(self):
        r"""总受攻击端口数量
        :rtype: int
        """
        return self._AttackedPortCount

    @AttackedPortCount.setter
    def AttackedPortCount(self, AttackedPortCount):
        self._AttackedPortCount = AttackedPortCount

    @property
    def NewAttackedPortCount(self):
        r"""今日新增受攻击端口数量
        :rtype: int
        """
        return self._NewAttackedPortCount

    @NewAttackedPortCount.setter
    def NewAttackedPortCount(self, NewAttackedPortCount):
        self._NewAttackedPortCount = NewAttackedPortCount

    @property
    def AttackSrcIpCount(self):
        r"""总攻击来源ip数量
        :rtype: int
        """
        return self._AttackSrcIpCount

    @AttackSrcIpCount.setter
    def AttackSrcIpCount(self, AttackSrcIpCount):
        self._AttackSrcIpCount = AttackSrcIpCount

    @property
    def NewAttackSrcIpCount(self):
        r"""今日新增攻击来源ip数量
        :rtype: int
        """
        return self._NewAttackSrcIpCount

    @NewAttackSrcIpCount.setter
    def NewAttackSrcIpCount(self, NewAttackSrcIpCount):
        self._NewAttackSrcIpCount = NewAttackSrcIpCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAttackTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters:  过滤条件。
<li>BeginTime - String 起始时间,默认近7天- 是否必填: 否</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        r""" 过滤条件。
<li>BeginTime - String 起始时间,默认近7天- 是否必填: 否</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeAttackTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackTopInfo: top统计数据
        :type NetAttackTopInfo: :class:`tencentcloud.cwp.v20180228.models.NetAttackTopInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetAttackTopInfo = None
        self._RequestId = None

    @property
    def NetAttackTopInfo(self):
        r"""top统计数据
        :rtype: :class:`tencentcloud.cwp.v20180228.models.NetAttackTopInfo`
        """
        return self._NetAttackTopInfo

    @NetAttackTopInfo.setter
    def NetAttackTopInfo(self, NetAttackTopInfo):
        self._NetAttackTopInfo = NetAttackTopInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeAttackTrends请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters:  过滤条件。
<li>BeginTime - String 起始时间,默认近7天- 是否必填: 否</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        r""" 过滤条件。
<li>BeginTime - String 起始时间,默认近7天- 是否必填: 否</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeAttackTrends返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackTrend: 攻击趋势统计数据（天）
        :type NetAttackTrend: list of NetAttackTrend
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetAttackTrend = None
        self._RequestId = None

    @property
    def NetAttackTrend(self):
        r"""攻击趋势统计数据（天）
        :rtype: list of NetAttackTrend
        """
        return self._NetAttackTrend

    @NetAttackTrend.setter
    def NetAttackTrend(self, NetAttackTrend):
        self._NetAttackTrend = NetAttackTrend

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeAttackTypeRequest(AbstractModel):
    r"""DescribeAttackType请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Source - String - 是否必填：是 - 加白的模块，rasp：漏洞防御，memshell_inject：内存马注入</li>

        :type Filters: list of Filter
        :param _Limit: 返回数量，默认为10，最大值为1000。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _By: 排序字段，目前有：Id，默认按照Id排序，可以不传
        :type By: str
        :param _Order: 排序升序还是倒序，DESC有ASC、
        :type Order: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._By = None
        self._Order = None

    @property
    def Filters(self):
        r"""过滤条件。
<li>Source - String - 是否必填：是 - 加白的模块，rasp：漏洞防御，memshell_inject：内存马注入</li>

        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为1000。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def By(self):
        r"""排序字段，目前有：Id，默认按照Id排序，可以不传
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序升序还是倒序，DESC有ASC、
        :rtype: str
        """
        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 = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        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 DescribeAttackTypeResponse(AbstractModel):
    r"""DescribeAttackType返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of RaspAttackTypeListItem
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of RaspAttackTypeListItem
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspAttackTypeListItem()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeAttackVulTypeListRequest(AbstractModel):
    r"""DescribeAttackVulTypeList请求参数结构体

    """


class DescribeAttackVulTypeListResponse(AbstractModel):
    r"""DescribeAttackVulTypeList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 威胁类型列表
        :type List: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""威胁类型列表
        :rtype: list of str
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeBanModeRequest(AbstractModel):
    r"""DescribeBanMode请求参数结构体

    """


class DescribeBanModeResponse(AbstractModel):
    r"""DescribeBanMode返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: <p>阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断</p>
        :type Mode: str
        :param _StandardModeConfig: <p>标准阻断模式的配置</p>
        :type StandardModeConfig: :class:`tencentcloud.cwp.v20180228.models.StandardModeConfig`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Mode = None
        self._StandardModeConfig = None
        self._RequestId = None

    @property
    def Mode(self):
        r"""<p>阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断</p>
        :rtype: str
        """
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def StandardModeConfig(self):
        r"""<p>标准阻断模式的配置</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.StandardModeConfig`
        """
        return self._StandardModeConfig

    @StandardModeConfig.setter
    def StandardModeConfig(self, StandardModeConfig):
        self._StandardModeConfig = StandardModeConfig

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBanRegions请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: 阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断
        :type Mode: str
        """
        self._Mode = None

    @property
    def Mode(self):
        r"""阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断
        :rtype: str
        """
        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):
    r"""DescribeBanRegions返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RegionSet: 地域信息列表
        :type RegionSet: list of RegionSet
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RegionSet = None
        self._RequestId = None

    @property
    def RegionSet(self):
        r"""地域信息列表
        :rtype: list of RegionSet
        """
        return self._RegionSet

    @RegionSet.setter
    def RegionSet(self, RegionSet):
        self._RegionSet = RegionSet

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBanStatus请求参数结构体

    """


class DescribeBanStatusResponse(AbstractModel):
    r"""DescribeBanStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: <p>(已废弃) 阻断开关状态: 0 -- 关闭  1 -- 高级阻断 2 -- 基础阻断(只阻断情报库黑ip)</p>
        :type Status: int
        :param _ShowTips: <p>是否弹窗提示信息 false: 关闭，true: 开启</p>
        :type ShowTips: bool
        :param _OpenSmartMode: <p>是否开启智能过白模式</p>
        :type OpenSmartMode: bool
        :param _BanBlackIp: <p>是否开启情报IP阻断</p>
        :type BanBlackIp: bool
        :param _BanVulIp: <p>是否开启漏洞IP阻断</p>
        :type BanVulIp: bool
        :param _BanByRule: <p>是否开启规则阻断</p>
        :type BanByRule: bool
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._ShowTips = None
        self._OpenSmartMode = None
        self._BanBlackIp = None
        self._BanVulIp = None
        self._BanByRule = None
        self._RequestId = None

    @property
    def Status(self):
        r"""<p>(已废弃) 阻断开关状态: 0 -- 关闭  1 -- 高级阻断 2 -- 基础阻断(只阻断情报库黑ip)</p>
        :rtype: int
        """
        return self._Status

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

    @property
    def ShowTips(self):
        r"""<p>是否弹窗提示信息 false: 关闭，true: 开启</p>
        :rtype: bool
        """
        return self._ShowTips

    @ShowTips.setter
    def ShowTips(self, ShowTips):
        self._ShowTips = ShowTips

    @property
    def OpenSmartMode(self):
        r"""<p>是否开启智能过白模式</p>
        :rtype: bool
        """
        return self._OpenSmartMode

    @OpenSmartMode.setter
    def OpenSmartMode(self, OpenSmartMode):
        self._OpenSmartMode = OpenSmartMode

    @property
    def BanBlackIp(self):
        r"""<p>是否开启情报IP阻断</p>
        :rtype: bool
        """
        return self._BanBlackIp

    @BanBlackIp.setter
    def BanBlackIp(self, BanBlackIp):
        self._BanBlackIp = BanBlackIp

    @property
    def BanVulIp(self):
        r"""<p>是否开启漏洞IP阻断</p>
        :rtype: bool
        """
        return self._BanVulIp

    @BanVulIp.setter
    def BanVulIp(self, BanVulIp):
        self._BanVulIp = BanVulIp

    @property
    def BanByRule(self):
        r"""<p>是否开启规则阻断</p>
        :rtype: bool
        """
        return self._BanByRule

    @BanByRule.setter
    def BanByRule(self, BanByRule):
        self._BanByRule = BanByRule

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._OpenSmartMode = params.get("OpenSmartMode")
        self._BanBlackIp = params.get("BanBlackIp")
        self._BanVulIp = params.get("BanVulIp")
        self._BanByRule = params.get("BanByRule")
        self._RequestId = params.get("RequestId")


class DescribeBanWhiteListRequest(AbstractModel):
    r"""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):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 查询关键字 </li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeBanWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总记录数
        :type TotalCount: int
        :param _WhiteList: 白名单列表
        :type WhiteList: list of BanWhiteListDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._WhiteList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总记录数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def WhiteList(self):
        r"""白名单列表
        :rtype: list of BanWhiteListDetail
        """
        return self._WhiteList

    @WhiteList.setter
    def WhiteList(self, WhiteList):
        self._WhiteList = WhiteList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineAnalysisData请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyId: 基线策略id
        :type StrategyId: int
        """
        self._StrategyId = None

    @property
    def StrategyId(self):
        r"""基线策略id
        :rtype: int
        """
        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):
    r"""DescribeBaselineAnalysisData返回参数结构体

    """

    def __init__(self):
        r"""
        :param _LatestScanTime: 最后检测时间
        :type LatestScanTime: str
        :param _IsGlobal: 是否全部服务器：1-是 0-否
        :type IsGlobal: int
        :param _ScanHostCount: 服务器总数
        :type ScanHostCount: int
        :param _ScanRuleCount: 检测项总数
        :type ScanRuleCount: int
        :param _IfFirstScan: 是否是第一次检测  1是 0不是
        :type IfFirstScan: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""最后检测时间
        :rtype: str
        """
        return self._LatestScanTime

    @LatestScanTime.setter
    def LatestScanTime(self, LatestScanTime):
        self._LatestScanTime = LatestScanTime

    @property
    def IsGlobal(self):
        r"""是否全部服务器：1-是 0-否
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def ScanHostCount(self):
        r"""服务器总数
        :rtype: int
        """
        return self._ScanHostCount

    @ScanHostCount.setter
    def ScanHostCount(self, ScanHostCount):
        self._ScanHostCount = ScanHostCount

    @property
    def ScanRuleCount(self):
        r"""检测项总数
        :rtype: int
        """
        return self._ScanRuleCount

    @ScanRuleCount.setter
    def ScanRuleCount(self, ScanRuleCount):
        self._ScanRuleCount = ScanRuleCount

    @property
    def IfFirstScan(self):
        r"""是否是第一次检测  1是 0不是
        :rtype: int
        """
        return self._IfFirstScan

    @IfFirstScan.setter
    def IfFirstScan(self, IfFirstScan):
        self._IfFirstScan = IfFirstScan

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineBasicInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineName: 基线名称
        :type BaselineName: str
        """
        self._BaselineName = None

    @property
    def BaselineName(self):
        r"""基线名称
        :rtype: str
        """
        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):
    r"""DescribeBaselineBasicInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineBasicInfoList: 基线基础信息列表
        :type BaselineBasicInfoList: list of BaselineBasicInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BaselineBasicInfoList = None
        self._RequestId = None

    @property
    def BaselineBasicInfoList(self):
        r"""基线基础信息列表
        :rtype: list of BaselineBasicInfo
        """
        return self._BaselineBasicInfoList

    @BaselineBasicInfoList.setter
    def BaselineBasicInfoList(self, BaselineBasicInfoList):
        self._BaselineBasicInfoList = BaselineBasicInfoList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineDefaultStrategyList请求参数结构体

    """


class DescribeBaselineDefaultStrategyListResponse(AbstractModel):
    r"""DescribeBaselineDefaultStrategyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyList: 默认策略基础信息列表
        :type StrategyList: list of DefaultStrategyInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._StrategyList = None
        self._RequestId = None

    @property
    def StrategyList(self):
        r"""默认策略基础信息列表
        :rtype: list of DefaultStrategyInfo
        """
        return self._StrategyList

    @StrategyList.setter
    def StrategyList(self, StrategyList):
        self._StrategyList = StrategyList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineId: 基线id
        :type BaselineId: int
        """
        self._BaselineId = None

    @property
    def BaselineId(self):
        r"""基线id
        :rtype: int
        """
        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):
    r"""DescribeBaselineDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineDetail: 基线详情
        :type BaselineDetail: :class:`tencentcloud.cwp.v20180228.models.BaselineDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BaselineDetail = None
        self._RequestId = None

    @property
    def BaselineDetail(self):
        r"""基线详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BaselineDetail`
        """
        return self._BaselineDetail

    @BaselineDetail.setter
    def BaselineDetail(self, BaselineDetail):
        self._BaselineDetail = BaselineDetail

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>PolicyName - string - 是否必填：否 - 策略名称</li>
<li>PolicyDetectStatus - int - 是否必填：否 - 1:检测中 2:检测完成</li>
<li>FirstTime - string - 是否必填：否 - 开始时间</li>
<li>LastTime - string - 是否必填：否 - 结束时间</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [HostCount|StartTime|StopTime]
        :rtype: str
        """
        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):
    r"""DescribeBaselineDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselinePolicyDetect
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselinePolicyDetect
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineDetectOverview请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略Id
        :type PolicyId: int
        """
        self._PolicyId = None

    @property
    def PolicyId(self):
        r"""策略Id
        :rtype: int
        """
        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):
    r"""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: 最近一次检测通过个数
        :type LatestPassCount: int
        :param _LatestNotPassCount: 最近一次检测未通过个数
        :type LatestNotPassCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""检测服务器数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ItemCount(self):
        r"""检测项
        :rtype: int
        """
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount

    @property
    def PolicyCount(self):
        r"""检测策略项
        :rtype: int
        """
        return self._PolicyCount

    @PolicyCount.setter
    def PolicyCount(self, PolicyCount):
        self._PolicyCount = PolicyCount

    @property
    def PassRate(self):
        r"""通过率*100%
        :rtype: int
        """
        return self._PassRate

    @PassRate.setter
    def PassRate(self, PassRate):
        self._PassRate = PassRate

    @property
    def LatestPassCount(self):
        r"""最近一次检测通过个数
        :rtype: int
        """
        return self._LatestPassCount

    @LatestPassCount.setter
    def LatestPassCount(self, LatestPassCount):
        self._LatestPassCount = LatestPassCount

    @property
    def LatestNotPassCount(self):
        r"""最近一次检测未通过个数
        :rtype: int
        """
        return self._LatestNotPassCount

    @LatestNotPassCount.setter
    def LatestNotPassCount(self, LatestNotPassCount):
        self._LatestNotPassCount = LatestNotPassCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>Status - int - 是否必填：否 - 0:导出中 1:已完成</li>
<li>StartTime - string - 是否必填：否 - 开始时间</li>
<li>EndTime - string - 是否必填：否 - 结束时间</li>
<li>TaskName - string - 是否必填：否 - 任务名称</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [StartTime|EndTime]
        :rtype: str
        """
        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):
    r"""DescribeBaselineDownloadList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineDownload
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineDownload
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def BaselineId(self):
        r"""基线id
        :rtype: int
        """
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId

    @property
    def Filters(self):
        r"""过滤条件。
<li>AliasName- String- 主机别名</li>
<li>Status- Uint- 1已通过  0未通过 5检测中</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def StrategyId(self):
        r"""策略id
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def UuidList(self):
        r"""主机uuid数组
        :rtype: list of str
        """
        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):
    r"""DescribeBaselineEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 记录总数
        :type TotalCount: int
        :param _EffectHostList: 影响服务器列表
        :type EffectHostList: list of BaselineEffectHost
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._EffectHostList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def EffectHostList(self):
        r"""影响服务器列表
        :rtype: list of BaselineEffectHost
        """
        return self._EffectHostList

    @EffectHostList.setter
    def EffectHostList(self, EffectHostList):
        self._EffectHostList = EffectHostList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>ItemName- string - 是否必填：否 - 项名称</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [CreateTime|MoifyTime|FixTime]
        :rtype: str
        """
        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):
    r"""DescribeBaselineFixList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineFix
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineFix
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineHostDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>PolicyId - int64 - 是否必填：否 - 策略Id</li>
<li>HostName - string - 是否必填：否 - 主机名称</li>
<li>HostIp - string - 是否必填：否 - 主机Ip</li>
<li>ItemId - int64 - 是否必填：否 - 项Id</li>
<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):
        r"""<li>PolicyId - int64 - 是否必填：否 - 策略Id</li>
<li>HostName - string - 是否必填：否 - 主机名称</li>
<li>HostIp - string - 是否必填：否 - 主机Ip</li>
<li>ItemId - int64 - 是否必填：否 - 项Id</li>
<li>RuleId - int64 - 是否必填：否 - 规则Id</li>
<li>DetectStatus - int - 是否必填：否 - 检测状态</li>
<li>Level - int - 是否必填：否 - 风险等级</li>
<li>StartTime - string - 是否必填：否 - 开时时间</li>
<li>EndTime - string - 是否必填：否 - 结束时间</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [LastTime|ItemCount|PassedItemCount|NotPassedItemCount|FirstTime]
        :rtype: str
        """
        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):
    r"""DescribeBaselineHostDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineHostDetect
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineHostDetect
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""请求的规则
        :rtype: int
        """
        return self._RuleID

    @RuleID.setter
    def RuleID(self, RuleID):
        self._RuleID = RuleID

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        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):
    r"""DescribeBaselineHostIgnoreList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _List: 无
        :type List: list of BaselineHost
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineHost
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineHostRiskTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略ID
        :type PolicyId: int
        """
        self._PolicyId = None

    @property
    def PolicyId(self):
        r"""策略ID
        :rtype: int
        """
        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):
    r"""DescribeBaselineHostRiskTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HostRiskTop5: 风险主机top5
        :type HostRiskTop5: list of HostRiskLevelCount
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostRiskTop5 = None
        self._RequestId = None

    @property
    def HostRiskTop5(self):
        r"""风险主机top5
        :rtype: list of HostRiskLevelCount
        """
        return self._HostRiskTop5

    @HostRiskTop5.setter
    def HostRiskTop5(self, HostRiskTop5):
        self._HostRiskTop5 = HostRiskTop5

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""动态top值
        :rtype: int
        """
        return self._Top

    @Top.setter
    def Top(self, Top):
        self._Top = Top

    @property
    def StrategyId(self):
        r"""策略id
        :rtype: int
        """
        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):
    r"""DescribeBaselineHostTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineHostTopList: 主机基线策略事件Top
        :type BaselineHostTopList: list of BaselineHostTopList
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BaselineHostTopList = None
        self._RequestId = None

    @property
    def BaselineHostTopList(self):
        r"""主机基线策略事件Top
        :rtype: list of BaselineHostTopList
        """
        return self._BaselineHostTopList

    @BaselineHostTopList.setter
    def BaselineHostTopList(self, BaselineHostTopList):
        self._BaselineHostTopList = BaselineHostTopList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [HostCount|FirstTime|LastTime]
        :rtype: str
        """
        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):
    r"""DescribeBaselineItemDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _List: 无
        :type List: list of BaselineItemDetect
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineItemDetect
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""忽略规则ID
        :rtype: int
        """
        return self._RuleID

    @RuleID.setter
    def RuleID(self, RuleID):
        self._RuleID = RuleID

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""请求偏移默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""<li>CatgoryId - int64 - 是否必填：否 - 规则Id</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式 [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列 [ID]
        :rtype: str
        """
        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):
    r"""DescribeBaselineItemIgnoreList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineItemInfo
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineItemInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineItemInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>ItemId - int64 - 是否必填：否 - 项Id</li>
<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):
        r"""<li>ItemId - int64 - 是否必填：否 - 项Id</li>
<li>Level - int - 是否必填：否 - 风险等级</li>
<li>ItemName - string - 是否必填：否 - 检测项名字</li>
<li>RuleId - int - 是否必填：否 - 规则Id</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列
        :rtype: str
        """
        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):
    r"""DescribeBaselineItemInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 结果列表
        :type List: list of BaselineItemInfo
        :param _Total: 总条目数
        :type Total: int
        :param _CategoryList: 基线分类列表
        :type CategoryList: list of BaselineItemsCategory
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._CategoryList = None
        self._RequestId = None

    @property
    def List(self):
        r"""结果列表
        :rtype: list of BaselineItemInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总条目数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def CategoryList(self):
        r"""基线分类列表
        :rtype: list of BaselineItemsCategory
        """
        return self._CategoryList

    @CategoryList.setter
    def CategoryList(self, CategoryList):
        self._CategoryList = CategoryList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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")
        if params.get("CategoryList") is not None:
            self._CategoryList = []
            for item in params.get("CategoryList"):
                obj = BaselineItemsCategory()
                obj._deserialize(item)
                self._CategoryList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineItemListRequest(AbstractModel):
    r"""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):
        r"""<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列
        :rtype: str
        """
        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):
    r"""DescribeBaselineItemList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineItem
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineItem
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineItemRiskTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略ID
        :type PolicyId: int
        """
        self._PolicyId = None

    @property
    def PolicyId(self):
        r"""策略ID
        :rtype: int
        """
        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):
    r"""DescribeBaselineItemRiskTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RiskItemTop5: 结果数组
        :type RiskItemTop5: list of BaselineRiskItem
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RiskItemTop5 = None
        self._RequestId = None

    @property
    def RiskItemTop5(self):
        r"""结果数组
        :rtype: list of BaselineRiskItem
        """
        return self._RiskItemTop5

    @RiskItemTop5.setter
    def RiskItemTop5(self, RiskItemTop5):
        self._RiskItemTop5 = RiskItemTop5

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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-低危 2-中危 3-高危 4-严重</li> <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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件 <li>StrategyId- Uint64 - 基线策略id</li> <li>Status - Uint64 - 处理状态 1-已通过 0-未通过</li> <li>Level - Uint64 - 威胁等级 1-低危 2-中危 3-高危 4-严重</li> <li>BaselineName  - String - 基线名称</li> <li>Quuid- String - 主机quuid</li> <li>Uuid- String - 主机uuid</li>
        :rtype: list of Filters
        """
        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):
    r"""DescribeBaselineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineList: 基线信息列表
        :type BaselineList: list of BaselineInfo
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BaselineList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def BaselineList(self):
        r"""基线信息列表
        :rtype: list of BaselineInfo
        """
        return self._BaselineList

    @BaselineList.setter
    def BaselineList(self, BaselineList):
        self._BaselineList = BaselineList

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>PolicyName - String - 是否必填：否 - 策略名称</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [RuleCount|ItemCount|HostCount]
        :rtype: str
        """
        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):
    r"""DescribeBaselinePolicyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselinePolicy
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselinePolicy
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineRuleCategoryList请求参数结构体

    """


class DescribeBaselineRuleCategoryListResponse(AbstractModel):
    r"""DescribeBaselineRuleCategoryList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineCategory
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineCategory
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [HostCount|FirstTime|LastTime]
        :rtype: str
        """
        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):
    r"""DescribeBaselineRuleDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineRuleDetect
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineRuleDetect
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>RuleName - String - 是否必填：否 - 规则名称</li>
<li>ItemId- int - 是否必填：否 - 检测项Id</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [HostCount]
        :rtype: str
        """
        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):
    r"""DescribeBaselineRuleIgnoreList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _List: 列表
        :type List: list of BaselineRule
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        r"""列表
        :rtype: list of BaselineRule
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>RuleName - String - 是否必填：否 - 规则名称</li>
<li>CategoryId - int64 - 是否必填：否 自定义筛选为-1 - 规则分类</li>
<li>RuleType - int - 是否必填：否 0:系统 1:自定义 - 规则类型</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列
        :rtype: str
        """
        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):
    r"""DescribeBaselineRuleList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineRule
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        r"""无
        :rtype: list of BaselineRule
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""基线id
        :rtype: int
        """
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId

    @property
    def Limit(self):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Level(self):
        r"""危害等级
        :rtype: list of int non-negative
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Status(self):
        r"""状态
        :rtype: int
        """
        return self._Status

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

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        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):
    r"""DescribeBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _BaselineRuleList: 基线检测项列表
        :type BaselineRuleList: list of BaselineRuleInfo
        :param _ShowRuleRemark: 是否显示说明列：true-是，false-否
        :type ShowRuleRemark: bool
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._BaselineRuleList = None
        self._ShowRuleRemark = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def BaselineRuleList(self):
        r"""基线检测项列表
        :rtype: list of BaselineRuleInfo
        """
        return self._BaselineRuleList

    @BaselineRuleList.setter
    def BaselineRuleList(self, BaselineRuleList):
        self._BaselineRuleList = BaselineRuleList

    @property
    def ShowRuleRemark(self):
        r"""是否显示说明列：true-是，false-否
        :rtype: bool
        """
        return self._ShowRuleRemark

    @ShowRuleRemark.setter
    def ShowRuleRemark(self, ShowRuleRemark):
        self._ShowRuleRemark = ShowRuleRemark

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineScanSchedule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: int
        """
        self._TaskId = None

    @property
    def TaskId(self):
        r"""任务id
        :rtype: int
        """
        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):
    r"""DescribeBaselineScanSchedule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Schedule: 检测进度(百分比)
        :type Schedule: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Schedule = None
        self._RequestId = None

    @property
    def Schedule(self):
        r"""检测进度(百分比)
        :rtype: int
        """
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBaselineStrategyDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyId: 用户基线策略id
        :type StrategyId: int
        """
        self._StrategyId = None

    @property
    def StrategyId(self):
        r"""用户基线策略id
        :rtype: int
        """
        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):
    r"""DescribeBaselineStrategyDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PassRate: 策略扫描通过率
        :type PassRate: int
        :param _StrategyName: 策略名
        :type StrategyName: str
        :param _ScanCycle: 策略扫描周期(天)
        :type ScanCycle: str
        :param _ScanAt: 定期检测时间, 该时间下发扫描
        :type ScanAt: str
        :param _IsGlobal: 扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        :type IsGlobal: int
        :param _MachineType: 云服务器类型：
cvm：腾讯云服务器
bm：裸金属
ecm：边缘计算主机
lh: 轻量应用服务器
ohter: 混合云机器
        :type MachineType: str
        :param _Region: 主机地域
        :type Region: str
        :param _Quuids: 用户该策略下的所有主机id
        :type Quuids: list of str
        :param _CategoryIds: 用户该策略下所有的基线id
        :type CategoryIds: list of str
        :param _IfScanned: 1 表示扫描过, 0没扫描过
        :type IfScanned: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""策略扫描通过率
        :rtype: int
        """
        return self._PassRate

    @PassRate.setter
    def PassRate(self, PassRate):
        self._PassRate = PassRate

    @property
    def StrategyName(self):
        r"""策略名
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def ScanCycle(self):
        r"""策略扫描周期(天)
        :rtype: str
        """
        return self._ScanCycle

    @ScanCycle.setter
    def ScanCycle(self, ScanCycle):
        self._ScanCycle = ScanCycle

    @property
    def ScanAt(self):
        r"""定期检测时间, 该时间下发扫描
        :rtype: str
        """
        return self._ScanAt

    @ScanAt.setter
    def ScanAt(self, ScanAt):
        self._ScanAt = ScanAt

    @property
    def IsGlobal(self):
        r"""扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MachineType(self):
        r"""云服务器类型：
cvm：腾讯云服务器
bm：裸金属
ecm：边缘计算主机
lh: 轻量应用服务器
ohter: 混合云机器
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def Region(self):
        r"""主机地域
        :rtype: str
        """
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def Quuids(self):
        r"""用户该策略下的所有主机id
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def CategoryIds(self):
        r"""用户该策略下所有的基线id
        :rtype: list of str
        """
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds

    @property
    def IfScanned(self):
        r"""1 表示扫描过, 0没扫描过
        :rtype: int
        """
        return self._IfScanned

    @IfScanned.setter
    def IfScanned(self, IfScanned):
        self._IfScanned = IfScanned

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Enabled(self):
        r"""规则开关，1：打开 0：关闭  2:全部
        :rtype: int
        """
        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):
    r"""DescribeBaselineStrategyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 分页查询记录的总数
        :type TotalCount: int
        :param _StrategyList: 用户策略信息列表
        :type StrategyList: list of Strategy
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._StrategyList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""分页查询记录的总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def StrategyList(self):
        r"""用户策略信息列表
        :rtype: list of Strategy
        """
        return self._StrategyList

    @StrategyList.setter
    def StrategyList(self, StrategyList):
        self._StrategyList = StrategyList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""动态top值
        :rtype: int
        """
        return self._Top

    @Top.setter
    def Top(self, Top):
        self._Top = Top

    @property
    def StrategyId(self):
        r"""策略id
        :rtype: int
        """
        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):
    r"""DescribeBaselineTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleTopList: 检测项Top列表
        :type RuleTopList: list of BaselineRuleTopInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RuleTopList = None
        self._RequestId = None

    @property
    def RuleTopList(self):
        r"""检测项Top列表
        :rtype: list of BaselineRuleTopInfo
        """
        return self._RuleTopList

    @RuleTopList.setter
    def RuleTopList(self, RuleTopList):
        self._RuleTopList = RuleTopList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>WeakPassword - string - 是否必填：否 - 弱口令</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式 [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列 [CreateTime|ModifyTime]
        :rtype: str
        """
        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):
    r"""DescribeBaselineWeakPasswordList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _List: 列表
        :type List: list of BaselineWeakPassword
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        r"""总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        r"""列表
        :rtype: list of BaselineWeakPassword
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBashEventsInfoNew请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        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):
    r"""DescribeBashEventsInfoNew返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BashEventsInfo: 事件详情
        :type BashEventsInfo: :class:`tencentcloud.cwp.v20180228.models.BashEventsInfoNew`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BashEventsInfo = None
        self._RequestId = None

    @property
    def BashEventsInfo(self):
        r"""事件详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BashEventsInfoNew`
        """
        return self._BashEventsInfo

    @BashEventsInfo.setter
    def BashEventsInfo(self, BashEventsInfo):
        self._BashEventsInfo = BashEventsInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBashEventsInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        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):
    r"""DescribeBashEventsInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BashEventsInfo: 事件详情
        :type BashEventsInfo: :class:`tencentcloud.cwp.v20180228.models.BashEventsInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BashEventsInfo = None
        self._RequestId = None

    @property
    def BashEventsInfo(self):
        r"""事件详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BashEventsInfo`
        """
        return self._BashEventsInfo

    @BashEventsInfo.setter
    def BashEventsInfo(self, BashEventsInfo):
        self._BashEventsInfo = BashEventsInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式：根据请求次数排序：asc-升序/desc-降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：CreateTime-发生时间。ModifyTime-处理时间
        :rtype: str
        """
        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):
    r"""DescribeBashEventsNew返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 高危命令事件列表
        :type List: list of BashEventNew
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""高危命令事件列表
        :rtype: list of BashEventNew
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式：根据请求次数排序：asc-升序/desc-降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：CreateTime-发生时间。ModifyTime-处理时间
        :rtype: str
        """
        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):
    r"""DescribeBashEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 高危命令事件列表
        :type List: list of BashEvent
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""高危命令事件列表
        :rtype: list of BashEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        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):
    r"""DescribeBashPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of BashPolicy
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of BashPolicy
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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>Name - String - 是否必填：否 - 规则名称</li>
<li>Rule - String - 是否必填：否 - 规则内容</li>
<li>Level - Int - 是否必填：否 - 威胁等级</li>
<li>White - Int - 是否必填：否 - 白名单类型</li>
<li>RuleCategory - Int - 是否必填：否 - 策略类型</li>
<li>BashAction - Int - 是否必填：否 - 操作动作</li>
<li>Status - Int - 是否必填：否 - 生效状态</li>
        :type Filters: list of Filter
        """
        self._Type = None
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Type(self):
        r"""0-系统规则; 1-用户规则
        :rtype: int
        """
        return self._Type

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

    @property
    def Limit(self):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Name - String - 是否必填：否 - 规则名称</li>
<li>Rule - String - 是否必填：否 - 规则内容</li>
<li>Level - Int - 是否必填：否 - 威胁等级</li>
<li>White - Int - 是否必填：否 - 白名单类型</li>
<li>RuleCategory - Int - 是否必填：否 - 策略类型</li>
<li>BashAction - Int - 是否必填：否 - 操作动作</li>
<li>Status - Int - 是否必填：否 - 生效状态</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeBashRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of BashRule
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of BashRule
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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-未阻断-安平暂不支持阻断，10-阻断成功(生效中)</li>
<li>DataFrom - Int - 命中规则：0-登录规则，1-情报规则</li>
<li>EventType - String - 是否必填：否 - 破解状态筛选：200-破解失败(密码错误),300-破解成功,400-破解失败(账号不存在)</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):
        r"""需要返回的数量，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<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-未阻断-安平暂不支持阻断，10-阻断成功(生效中)</li>
<li>DataFrom - Int - 命中规则：0-登录规则，1-情报规则</li>
<li>EventType - String - 是否必填：否 - 破解状态筛选：200-破解失败(密码错误),300-破解成功,400-破解失败(账号不存在)</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式：根据请求次数排序：asc-升序/desc-降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：CreateTime-首次攻击时间
        :rtype: str
        """
        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):
    r"""DescribeBruteAttackList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _BruteAttackList: 密码破解列表
        :type BruteAttackList: list of BruteAttackInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._BruteAttackList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def BruteAttackList(self):
        r"""密码破解列表
        :rtype: list of BruteAttackInfo
        """
        return self._BruteAttackList

    @BruteAttackList.setter
    def BruteAttackList(self, BruteAttackList):
        self._BruteAttackList = BruteAttackList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeBruteAttackRules请求参数结构体

    """


class DescribeBruteAttackRulesResponse(AbstractModel):
    r"""DescribeBruteAttackRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Rules: <p>爆破阻断规则列表</p>
        :type Rules: list of BruteAttackRuleList
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Rules = None
        self._RequestId = None

    @property
    def Rules(self):
        r"""<p>爆破阻断规则列表</p>
        :rtype: list of BruteAttackRuleList
        """
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""漏洞id 支持多个漏洞
        :rtype: list of int non-negative
        """
        return self._VulIds

    @VulIds.setter
    def VulIds(self, VulIds):
        self._VulIds = VulIds

    @property
    def Quuids(self):
        r"""需要修复的主机，和VulIds是and 的关系
        :rtype: list of str
        """
        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):
    r"""DescribeCanFixVulMachine返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulInfo: 主机漏洞修护信息列表
        :type VulInfo: list of CanFixVulInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulInfo = None
        self._RequestId = None

    @property
    def VulInfo(self):
        r"""主机漏洞修护信息列表
        :rtype: list of CanFixVulInfo
        """
        return self._VulInfo

    @VulInfo.setter
    def VulInfo(self, VulInfo):
        self._VulInfo = VulInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""需要修改的事件id 数组，支持批量
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def UpdateAll(self):
        r"""是否更新全部，即是否对所有的事件进行操作，当ids 不为空时，此参数无效
        :rtype: bool
        """
        return self._UpdateAll

    @UpdateAll.setter
    def UpdateAll(self, UpdateAll):
        self._UpdateAll = UpdateAll

    @property
    def ExcludeId(self):
        r"""排除的事件id,当操作全部事件时，需要排除这次id
        :rtype: list of int non-negative
        """
        return self._ExcludeId

    @ExcludeId.setter
    def ExcludeId(self, ExcludeId):
        self._ExcludeId = ExcludeId

    @property
    def Filters(self):
        r"""<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>
        :rtype: list of Filters
        """
        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):
    r"""DescribeCanNotSeparateMachine返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 不可隔离主机列表
        :type List: list of CanNotSeparateInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""不可隔离主机列表
        :rtype: list of CanNotSeparateInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""客户端异常类型 1:客户端离线，2:客户端卸载
        :rtype: int
        """
        return self._ExceptionType

    @ExceptionType.setter
    def ExceptionType(self, ExceptionType):
        self._ExceptionType = ExceptionType

    @property
    def Offset(self):
        r"""分页的偏移量
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""分页单页限制数目，不为0，最大值100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def StartTime(self):
        r"""起始时间 `2006-01-02 15:04:05` 格式
        :rtype: str
        """
        return self._StartTime

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

    @property
    def EndTime(self):
        r"""结束时间 `2006-01-02 15:04:05` 格式
        :rtype: str
        """
        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):
    r"""DescribeClientException返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 事件总数量
        :type TotalCount: int
        :param _Records: 事件详情
        :type Records: list of RecordInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._Records = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""事件总数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Records(self):
        r"""事件详情
        :rtype: list of RecordInfo
        """
        return self._Records

    @Records.setter
    def Records(self, Records):
        self._Records = Records

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeDefenceEventDetailRequest(AbstractModel):
    r"""DescribeDefenceEventDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 漏洞事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""漏洞事件id
        :rtype: int
        """
        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):
    r"""DescribeDefenceEventDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 漏洞事件详细信息
        :type Data: :class:`tencentcloud.cwp.v20180228.models.VulDefenceEventDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""漏洞事件详细信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VulDefenceEventDetail`
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""地域标示
        :rtype: str
        """
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def VpcId(self):
        r"""Vpc的ID
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def ExpireDate(self):
        r"""命令过期时间
        :rtype: str
        """
        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):
    r"""DescribeDirectConnectInstallCommand返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip: 安装命令的ip
        :type Ip: str
        :param _Token: 安装命令的token
        :type Token: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ip = None
        self._Token = None
        self._RequestId = None

    @property
    def Ip(self):
        r"""安装命令的ip
        :rtype: str
        """
        return self._Ip

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

    @property
    def Token(self):
        r"""安装命令的token
        :rtype: str
        """
        return self._Token

    @Token.setter
    def Token(self, Token):
        self._Token = Token

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeESAggregations请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Query: ES聚合条件JSON
        :type Query: str
        """
        self._Query = None

    @property
    def Query(self):
        r"""ES聚合条件JSON
        :rtype: str
        """
        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):
    r"""DescribeESAggregations返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: ES聚合结果JSON
        :type Data: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""ES聚合结果JSON
        :rtype: str
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeEmergencyVulListRequest(AbstractModel):
    r"""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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式 desc , asc
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段 PublishDate  LastScanTime HostCount
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def HotspotAttack(self):
        r"""是否热点漏洞
        :rtype: bool
        """
        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):
    r"""DescribeEmergencyVulList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 漏洞列表
        :type List: list of EmergencyVul
        :param _TotalCount: 漏洞总条数
        :type TotalCount: int
        :param _ExistsRisk: 是否存在风险
        :type ExistsRisk: bool
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._ExistsRisk = None
        self._RequestId = None

    @property
    def List(self):
        r"""漏洞列表
        :rtype: list of EmergencyVul
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""漏洞总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ExistsRisk(self):
        r"""是否存在风险
        :rtype: bool
        """
        return self._ExistsRisk

    @ExistsRisk.setter
    def ExistsRisk(self, ExistsRisk):
        self._ExistsRisk = ExistsRisk

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""事件表名
        :rtype: str
        """
        return self._TableName

    @TableName.setter
    def TableName(self, TableName):
        self._TableName = TableName

    @property
    def Ids(self):
        r"""事件表id号
        :rtype: list of int
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Type = None
        self._Value = None
        self._RequestId = None

    @property
    def Type(self):
        r"""告警类型，爆破bruteattack，高危命令bash，恶意文件malware，恶意请求risk_dns，本地提权privilege_escalation，反弹shell reverse_shell，内存马java_shell
        :rtype: str
        """
        return self._Type

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

    @property
    def Value(self):
        r"""事件内容的json编码字符串，字段结构对齐事件表
        :rtype: str
        """
        return self._Value

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeExportMachinesRequest(AbstractModel):
    r"""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):
        r"""云主机类型。
<li>CVM：表示虚拟主机</li>
<li>BM:  表示黑石物理机</li>
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        r"""机器所属地域。如：ap-guangzhou，ap-shanghai
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 查询关键字 </li>
<li>Status - String - 是否必填：否 - 客户端在线状态（OFFLINE: 离线 | ONLINE: 在线 | UNINSTALLED：未安装）</li>
<li>Version - String  是否必填：否 - 当前防护版本（ PRO_VERSION：专业版 | BASIC_VERSION：基础版）</li>
每个过滤条件只支持一个值，暂不支持多个值“或”关系查询
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ProjectIds(self):
        r"""机器所属业务ID列表
        :rtype: list of int non-negative
        """
        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):
    r"""DescribeExportMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""起始时间，单位ms
        :rtype: int
        """
        return self._From

    @From.setter
    def From(self, From):
        self._From = From

    @property
    def To(self):
        r"""结束时间，单位ms
        :rtype: int
        """
        return self._To

    @To.setter
    def To(self, To):
        self._To = To

    @property
    def Query(self):
        r"""查询语句，语句长度最大为4096
        :rtype: str
        """
        return self._Query

    @Query.setter
    def Query(self, Query):
        self._Query = Query

    @property
    def FieldName(self):
        r"""日志字段名称
        :rtype: str
        """
        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):
    r"""DescribeFastAnalysis返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FieldValueRatioInfos: 分析统计信息
        :type FieldValueRatioInfos: list of FieldValueRatioInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FieldValueRatioInfos = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def FieldValueRatioInfos(self):
        r"""分析统计信息
        :rtype: list of FieldValueRatioInfo
        """
        return self._FieldValueRatioInfos

    @FieldValueRatioInfos.setter
    def FieldValueRatioInfos(self, FieldValueRatioInfos):
        self._FieldValueRatioInfos = FieldValueRatioInfos

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""事件id
        :rtype: int
        """
        return self._Id

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

    @property
    def Limit(self):
        r"""一页多少个 控制返回的uuids条数
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""控制返回的uuids条数
        :rtype: int
        """
        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):
    r"""DescribeFileTamperEventRuleInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileTamperRuleDetail: 规则详情信息
        :type FileTamperRuleDetail: :class:`tencentcloud.cwp.v20180228.models.FileTamperRuleDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileTamperRuleDetail = None
        self._RequestId = None

    @property
    def FileTamperRuleDetail(self):
        r"""规则详情信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.FileTamperRuleDetail`
        """
        return self._FileTamperRuleDetail

    @FileTamperRuleDetail.setter
    def FileTamperRuleDetail(self, FileTamperRuleDetail):
        self._FileTamperRuleDetail = FileTamperRuleDetail

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式 ASC,DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段 CreateTime、ModifyTime
        :rtype: str
        """
        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):
    r"""DescribeFileTamperEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 核心文件事件列表
        :type List: list of FileTamperEvent
        :param _TotalCount: 数据总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""核心文件事件列表
        :rtype: list of FileTamperEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""数据总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeFileTamperRuleCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuids: 查询的主机uuids 一次性最多只能查100个
        :type Uuids: list of str
        """
        self._Uuids = None

    @property
    def Uuids(self):
        r"""查询的主机uuids 一次性最多只能查100个
        :rtype: list of str
        """
        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):
    r"""DescribeFileTamperRuleCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机关联核心文件规则数量信息
        :type List: list of FileTamperRuleCount
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""主机关联核心文件规则数量信息
        :rtype: list of FileTamperRuleCount
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""规则id
        :rtype: int
        """
        return self._Id

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

    @property
    def Limit(self):
        r"""控制返回的uuids 数量
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""控制返回的uuids 数量，起始位置
        :rtype: int
        """
        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):
    r"""DescribeFileTamperRuleInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileTamperRuleDetail: 规则详情信息
        :type FileTamperRuleDetail: :class:`tencentcloud.cwp.v20180228.models.FileTamperRuleDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileTamperRuleDetail = None
        self._RequestId = None

    @property
    def FileTamperRuleDetail(self):
        r"""规则详情信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.FileTamperRuleDetail`
        """
        return self._FileTamperRuleDetail

    @FileTamperRuleDetail.setter
    def FileTamperRuleDetail(self, FileTamperRuleDetail):
        self._FileTamperRuleDetail = FileTamperRuleDetail

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<li>RuleCategory- string- 规则类别  0=系统规则，1=用户规则</li>
<li>Name- String - 规则名称</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式 ASC,DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段 CreateTime、ModifyTime、HostCount
        :rtype: str
        """
        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):
    r"""DescribeFileTamperRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 规则列表
        :type List: list of FileTamperRuleInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""规则列表
        :rtype: list of FileTamperRuleInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""云主机类型。
<li>CVM：表示腾讯云服务器</li>
<li>BM:  表示黑石物理机</li>
<li>ECM:  表示边缘计算服务器</li>
<li>LH:  表示轻量应用服务器</li>
<li>Other:  表示混合云机器</li>
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        r"""机器所属地域。如：ap-guangzhou，ap-shanghai
        :rtype: str
        """
        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):
    r"""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: 旗舰版主机数
        :type FlagshipMachineCnt: int
        :param _ProtectDays: 保护天数
        :type ProtectDays: int
        :param _AddedOnTheFifteen: 15天内新增的主机数
        :type AddedOnTheFifteen: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""云主机总数
        :rtype: int
        """
        return self._MachinesAll

    @MachinesAll.setter
    def MachinesAll(self, MachinesAll):
        self._MachinesAll = MachinesAll

    @property
    def MachinesUninstalled(self):
        r"""云主机没有安装主机安全客户端的总数
        :rtype: int
        """
        return self._MachinesUninstalled

    @MachinesUninstalled.setter
    def MachinesUninstalled(self, MachinesUninstalled):
        self._MachinesUninstalled = MachinesUninstalled

    @property
    def AgentsAll(self):
        r"""主机安全客户端总数的总数
        :rtype: int
        """
        return self._AgentsAll

    @AgentsAll.setter
    def AgentsAll(self, AgentsAll):
        self._AgentsAll = AgentsAll

    @property
    def AgentsOnline(self):
        r"""主机安全客户端在线的总数
        :rtype: int
        """
        return self._AgentsOnline

    @AgentsOnline.setter
    def AgentsOnline(self, AgentsOnline):
        self._AgentsOnline = AgentsOnline

    @property
    def AgentsOffline(self):
        r"""主机安全客户端 离线+关机 的总数
        :rtype: int
        """
        return self._AgentsOffline

    @AgentsOffline.setter
    def AgentsOffline(self, AgentsOffline):
        self._AgentsOffline = AgentsOffline

    @property
    def AgentsPro(self):
        r"""主机安全客户端专业版的总数
        :rtype: int
        """
        return self._AgentsPro

    @AgentsPro.setter
    def AgentsPro(self, AgentsPro):
        self._AgentsPro = AgentsPro

    @property
    def AgentsBasic(self):
        r"""主机安全客户端基础版的总数
        :rtype: int
        """
        return self._AgentsBasic

    @AgentsBasic.setter
    def AgentsBasic(self, AgentsBasic):
        self._AgentsBasic = AgentsBasic

    @property
    def AgentsProExpireWithInSevenDays(self):
        r"""7天内到期的预付费专业版总数
        :rtype: int
        """
        return self._AgentsProExpireWithInSevenDays

    @AgentsProExpireWithInSevenDays.setter
    def AgentsProExpireWithInSevenDays(self, AgentsProExpireWithInSevenDays):
        self._AgentsProExpireWithInSevenDays = AgentsProExpireWithInSevenDays

    @property
    def RiskMachine(self):
        r"""风险主机总数
        :rtype: int
        """
        return self._RiskMachine

    @RiskMachine.setter
    def RiskMachine(self, RiskMachine):
        self._RiskMachine = RiskMachine

    @property
    def Shutdown(self):
        r"""已关机总数
        :rtype: int
        """
        return self._Shutdown

    @Shutdown.setter
    def Shutdown(self, Shutdown):
        self._Shutdown = Shutdown

    @property
    def Offline(self):
        r"""已离线总数
        :rtype: int
        """
        return self._Offline

    @Offline.setter
    def Offline(self, Offline):
        self._Offline = Offline

    @property
    def FlagshipMachineCnt(self):
        r"""旗舰版主机数
        :rtype: int
        """
        return self._FlagshipMachineCnt

    @FlagshipMachineCnt.setter
    def FlagshipMachineCnt(self, FlagshipMachineCnt):
        self._FlagshipMachineCnt = FlagshipMachineCnt

    @property
    def ProtectDays(self):
        r"""保护天数
        :rtype: int
        """
        return self._ProtectDays

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

    @property
    def AddedOnTheFifteen(self):
        r"""15天内新增的主机数
        :rtype: int
        """
        return self._AddedOnTheFifteen

    @AddedOnTheFifteen.setter
    def AddedOnTheFifteen(self, AddedOnTheFifteen):
        self._AddedOnTheFifteen = AddedOnTheFifteen

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""云镜客户端唯一Uuid。
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Username - String - 是否必填：否 - 帐号名</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeHistoryAccounts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 账号变更历史列表记录总数。
        :type TotalCount: int
        :param _HistoryAccounts: 账号变更历史数据数组。
        :type HistoryAccounts: list of HistoryAccount
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._HistoryAccounts = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""账号变更历史列表记录总数。
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def HistoryAccounts(self):
        r"""账号变更历史数据数组。
        :rtype: list of HistoryAccount
        """
        return self._HistoryAccounts

    @HistoryAccounts.setter
    def HistoryAccounts(self, HistoryAccounts):
        self._HistoryAccounts = HistoryAccounts

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeHistoryService请求参数结构体

    """


class DescribeHistoryServiceResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""1 可购买 2 只能升降配 3 只能跳到续费管理页
        :rtype: int
        """
        return self._BuyStatus

    @BuyStatus.setter
    def BuyStatus(self, BuyStatus):
        self._BuyStatus = BuyStatus

    @property
    def InquireNum(self):
        r"""用户已购容量 单位 G
        :rtype: int
        """
        return self._InquireNum

    @InquireNum.setter
    def InquireNum(self, InquireNum):
        self._InquireNum = InquireNum

    @property
    def EndTime(self):
        r"""到期时间
        :rtype: str
        """
        return self._EndTime

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

    @property
    def IsAutoOpenRenew(self):
        r"""是否自动续费,0 初始值, 1 开通 2 没开通
        :rtype: int
        """
        return self._IsAutoOpenRenew

    @IsAutoOpenRenew.setter
    def IsAutoOpenRenew(self, IsAutoOpenRenew):
        self._IsAutoOpenRenew = IsAutoOpenRenew

    @property
    def ResourceId(self):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def Status(self):
        r"""0 没开通 1 正常 2隔离 3销毁
        :rtype: int
        """
        return self._Status

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

    @property
    def StartTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Quuid数组
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def Uuids(self):
        r"""Uuids 查询，Quuid查询时填空
        :rtype: list of str
        """
        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):
    r"""DescribeHostInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HostInfoList: 主机信息与标签信息
        :type HostInfoList: list of HostTagInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostInfoList = None
        self._RequestId = None

    @property
    def HostInfoList(self):
        r"""主机信息与标签信息
        :rtype: list of HostTagInfo
        """
        return self._HostInfoList

    @HostInfoList.setter
    def HostInfoList(self, HostInfoList):
        self._HostInfoList = HostInfoList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeHostLoginList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 需要返回的数量，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。<li>Quuid - String - 是否必填：否 - 云服务器uuid</li><li>Uuid - String - 是否必填：否 - 主机安全唯一Uuid</li><li>MachineName - String - 是否必填：否 - 主机别名</li><li>Ip - String - 是否必填：否 - 主机ip</li><li>InstanceID - String - 是否必填：否 - 主机实例ID</li><li>SrcIp - String - 是否必填：否 - 来源ip筛选</li><li>UserName - String - 是否必填：否 - 用户名筛选</li><li>Status - string - 是否必填：否 - 状态筛选：2:待处理；5：已加白,14:已处理，15：已忽略</li><li>LoginTimeBegin - String - 是否必填：否 - 按照修改时间段筛选，开始时间</li><li>LoginTimeEnd - String - 是否必填：否 - 按照修改时间段筛选，结束时间</li><li>RiskLevel - string - 是否必填：否 - 状态筛选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):
        r"""需要返回的数量，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。<li>Quuid - String - 是否必填：否 - 云服务器uuid</li><li>Uuid - String - 是否必填：否 - 主机安全唯一Uuid</li><li>MachineName - String - 是否必填：否 - 主机别名</li><li>Ip - String - 是否必填：否 - 主机ip</li><li>InstanceID - String - 是否必填：否 - 主机实例ID</li><li>SrcIp - String - 是否必填：否 - 来源ip筛选</li><li>UserName - String - 是否必填：否 - 用户名筛选</li><li>Status - string - 是否必填：否 - 状态筛选：2:待处理；5：已加白,14:已处理，15：已忽略</li><li>LoginTimeBegin - String - 是否必填：否 - 按照修改时间段筛选，开始时间</li><li>LoginTimeEnd - String - 是否必填：否 - 按照修改时间段筛选，结束时间</li><li>RiskLevel - string - 是否必填：否 - 状态筛选0:高危；1：可疑</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式：根据请求次数排序：asc-升序/desc-降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：LoginTime-发生时间
        :rtype: str
        """
        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):
    r"""DescribeHostLoginList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _HostLoginList: 异常登录列表
        :type HostLoginList: list of HostLoginList
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._HostLoginList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def HostLoginList(self):
        r"""异常登录列表
        :rtype: list of HostLoginList
        """
        return self._HostLoginList

    @HostLoginList.setter
    def HostLoginList(self, HostLoginList):
        self._HostLoginList = HostLoginList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeHotVulTop请求参数结构体

    """


class DescribeHotVulTopResponse(AbstractModel):
    r"""DescribeHotVulTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 漏洞信息
        :type List: list of VulStoreListInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""漏洞信息
        :rtype: list of VulStoreListInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def RuleName(self):
        r"""检测项名称
        :rtype: str
        """
        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):
    r"""DescribeIgnoreBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IgnoreBaselineRuleList: 忽略基线检测项列表信息
        :type IgnoreBaselineRuleList: list of IgnoreBaselineRule
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IgnoreBaselineRuleList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def IgnoreBaselineRuleList(self):
        r"""忽略基线检测项列表信息
        :rtype: list of IgnoreBaselineRule
        """
        return self._IgnoreBaselineRuleList

    @IgnoreBaselineRuleList.setter
    def IgnoreBaselineRuleList(self, IgnoreBaselineRuleList):
        self._IgnoreBaselineRuleList = IgnoreBaselineRuleList

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeIgnoreHostAndItemConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>ItemId - int64 - 是否必填：否 - 项Id</li>
<li>RuleId - int64 - 是否必填：否 - 规则Id</li>
<li>HostId - string - 是否必填：否 - 主机Id</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""<li>ItemId - int64 - 是否必填：否 - 项Id</li>
<li>RuleId - int64 - 是否必填：否 - 规则Id</li>
<li>HostId - string - 是否必填：否 - 主机Id</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeIgnoreHostAndItemConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ItemSet: 受影响检测项
        :type ItemSet: list of BaselineItemInfo
        :param _HostSet: 受影响主机
        :type HostSet: list of BaselineHost
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ItemSet = None
        self._HostSet = None
        self._RequestId = None

    @property
    def ItemSet(self):
        r"""受影响检测项
        :rtype: list of BaselineItemInfo
        """
        return self._ItemSet

    @ItemSet.setter
    def ItemSet(self, ItemSet):
        self._ItemSet = ItemSet

    @property
    def HostSet(self):
        r"""受影响主机
        :rtype: list of BaselineHost
        """
        return self._HostSet

    @HostSet.setter
    def HostSet(self, HostSet):
        self._HostSet = HostSet

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def RuleId(self):
        r"""检测项id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def Filters(self):
        r"""过滤条件。
<li>AliasName- String- 主机别名</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def TagNames(self):
        r"""主机标签名
        :rtype: list of str
        """
        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):
    r"""DescribeIgnoreRuleEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IgnoreRuleEffectHostList: 忽略检测项影响主机列表
        :type IgnoreRuleEffectHostList: list of IgnoreRuleEffectHostInfo
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IgnoreRuleEffectHostList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def IgnoreRuleEffectHostList(self):
        r"""忽略检测项影响主机列表
        :rtype: list of IgnoreRuleEffectHostInfo
        """
        return self._IgnoreRuleEffectHostList

    @IgnoreRuleEffectHostList.setter
    def IgnoreRuleEffectHostList(self, IgnoreRuleEffectHostList):
        self._IgnoreRuleEffectHostList = IgnoreRuleEffectHostList

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器内网IP（默认）/ 服务器名称 / 服务器ID 数组 (最大 1000条)
        :rtype: list of str
        """
        return self._MachineList

    @MachineList.setter
    def MachineList(self, MachineList):
        self._MachineList = MachineList

    @property
    def ImportType(self):
        r"""批量导入的数据类型：Ip、Name、Id 三选一
        :rtype: str
        """
        return self._ImportType

    @ImportType.setter
    def ImportType(self, ImportType):
        self._ImportType = ImportType

    @property
    def IsQueryProMachine(self):
        r"""该参数已作废.
        :rtype: bool
        """
        return self._IsQueryProMachine

    @IsQueryProMachine.setter
    def IsQueryProMachine(self, IsQueryProMachine):
        self._IsQueryProMachine = IsQueryProMachine

    @property
    def Filters(self):
        r"""过滤条件：<li>Version - String  是否必填：否 - 当前防护版本（ PRO_VERSION：专业版 | BASIC_VERSION：基础版 | Flagship：旗舰版 | ProtectedMachines：专业版+旗舰版） | BASIC_PROPOST_GENERAL_DISCOUNT：轻量版+专业版按量计费+基础版主机 | UnFlagship：专业版预付费+专业版后付费+基础版+轻量版</li>
        :rtype: list of Filters
        """
        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):
    r"""DescribeImportMachineInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EffectiveMachineInfoList: 有效的机器信息列表：机器名称、机器公网/内网ip、机器标签
        :type EffectiveMachineInfoList: list of EffectiveMachineInfo
        :param _InvalidMachineList: 用户批量导入失败的机器列表（例如机器不存在等...）
        :type InvalidMachineList: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EffectiveMachineInfoList = None
        self._InvalidMachineList = None
        self._RequestId = None

    @property
    def EffectiveMachineInfoList(self):
        r"""有效的机器信息列表：机器名称、机器公网/内网ip、机器标签
        :rtype: list of EffectiveMachineInfo
        """
        return self._EffectiveMachineInfoList

    @EffectiveMachineInfoList.setter
    def EffectiveMachineInfoList(self, EffectiveMachineInfoList):
        self._EffectiveMachineInfoList = EffectiveMachineInfoList

    @property
    def InvalidMachineList(self):
        r"""用户批量导入失败的机器列表（例如机器不存在等...）
        :rtype: list of str
        """
        return self._InvalidMachineList

    @InvalidMachineList.setter
    def InvalidMachineList(self, InvalidMachineList):
        self._InvalidMachineList = InvalidMachineList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeInjectRiskyServiceSwitchRequest(AbstractModel):
    r"""DescribeInjectRiskyServiceSwitch请求参数结构体

    """


class DescribeInjectRiskyServiceSwitchResponse(AbstractModel):
    r"""DescribeInjectRiskyServiceSwitch返回参数结构体

    """

    def __init__(self):
        r"""
        :param _JavaShellInjectRiskyServiceStatus: 内存马是否注入风险服务配置，0: 用户没有操作过，默认不注入 1: 注入,2:用户指定不注入
注意：此字段可能返回 null，表示取不到有效值。
        :type JavaShellInjectRiskyServiceStatus: int
        :param _RaspInjectRiskyServiceStatus: 主机rasp是否注入风险服务配置，0: 用户没有操作过，默认不注入 1: 注入,2:用户指定不注入
注意：此字段可能返回 null，表示取不到有效值。
        :type RaspInjectRiskyServiceStatus: int
        :param _TotalCount: 风险服务总条数
        :type TotalCount: int
        :param _List: 风险服务列表
        :type List: list of RiskMainClass
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._JavaShellInjectRiskyServiceStatus = None
        self._RaspInjectRiskyServiceStatus = None
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def JavaShellInjectRiskyServiceStatus(self):
        r"""内存马是否注入风险服务配置，0: 用户没有操作过，默认不注入 1: 注入,2:用户指定不注入
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._JavaShellInjectRiskyServiceStatus

    @JavaShellInjectRiskyServiceStatus.setter
    def JavaShellInjectRiskyServiceStatus(self, JavaShellInjectRiskyServiceStatus):
        self._JavaShellInjectRiskyServiceStatus = JavaShellInjectRiskyServiceStatus

    @property
    def RaspInjectRiskyServiceStatus(self):
        r"""主机rasp是否注入风险服务配置，0: 用户没有操作过，默认不注入 1: 注入,2:用户指定不注入
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._RaspInjectRiskyServiceStatus

    @RaspInjectRiskyServiceStatus.setter
    def RaspInjectRiskyServiceStatus(self, RaspInjectRiskyServiceStatus):
        self._RaspInjectRiskyServiceStatus = RaspInjectRiskyServiceStatus

    @property
    def TotalCount(self):
        r"""风险服务总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""风险服务列表
        :rtype: list of RiskMainClass
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._JavaShellInjectRiskyServiceStatus = params.get("JavaShellInjectRiskyServiceStatus")
        self._RaspInjectRiskyServiceStatus = params.get("RaspInjectRiskyServiceStatus")
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RiskMainClass()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeJavaMemShellInfoRequest(AbstractModel):
    r"""DescribeJavaMemShellInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件Id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""事件Id
        :rtype: int
        """
        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):
    r"""DescribeJavaMemShellInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Info: java内存马事件详细信息
        :type Info: :class:`tencentcloud.cwp.v20180228.models.JavaMemShellDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Info = None
        self._RequestId = None

    @property
    def Info(self):
        r"""java内存马事件详细信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.JavaMemShellDetail`
        """
        return self._Info

    @Info.setter
    def Info(self, Info):
        self._Info = Info

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeJavaMemShellList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：InstanceID、IP、

MachineName主机名模糊查询, Type，Status精确匹配，CreateBeginTime，CreateEndTime时间段
        :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: 排序列，严格相等：最近检测时间RecentFoundTime
        :type By: str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        r"""过滤条件：InstanceID、IP、

MachineName主机名模糊查询, Type，Status精确匹配，CreateBeginTime，CreateEndTime时间段
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序，大小写无关：asc 升序，desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序列，严格相等：最近检测时间RecentFoundTime
        :rtype: str
        """
        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 DescribeJavaMemShellListResponse(AbstractModel):
    r"""DescribeJavaMemShellList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 事件列表
        :type List: list of JavaMemShellInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""事件列表
        :rtype: list of JavaMemShellInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件：Pid精确匹配，MainClass模糊匹配
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        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):
    r"""DescribeJavaMemShellPluginInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: java内存马插件列表
        :type List: list of JavaMemShellPluginInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""java内存马插件列表
        :rtype: list of JavaMemShellPluginInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeJavaMemShellPluginList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：InstanceID、IP、

MachineName模糊查询, 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):
        r"""过滤条件：InstanceID、IP、

MachineName模糊查询, JavaShellStatus，Exception精确匹配
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        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):
    r"""DescribeJavaMemShellPluginList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: java内存马插件列表
        :type List: list of JavaMemShellPluginSetting
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""java内存马插件列表
        :rtype: list of JavaMemShellPluginSetting
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLicenseBindList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LicenseId: <p>授权ID取DescribeLicenseList接口List对象下的LicenseId参数值</p>
        :type LicenseId: int
        :param _LicenseType: <p>授权类型</p><p>枚举值：</p><ul><li>0： 专业版-按量计费</li><li>1： 专业版-包年包月(主机安全)</li><li>2： 旗舰版-包年包月(主机安全)</li><li>3： 轻量版-LH-包年包月</li><li>6： 专业版-包年包月（云安全中心）</li><li>7： 旗舰版-包年包月（云安全中心）</li></ul>
        :type LicenseType: int
        :param _ResourceId: <p>资源ID,取DescribeLicenseList接口List对象下的ResourceId参数值</p>
        :type ResourceId: str
        :param _Filters: <li>InstanceID、IP、<p>MachineName 模糊查询</li></p>
        :type Filters: list of Filters
        :param _Limit: <p>限制条数,默认10.</p>
        :type Limit: int
        :param _Offset: <p>偏移量,默认0.</p>
        :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):
        r"""<p>授权ID取DescribeLicenseList接口List对象下的LicenseId参数值</p>
        :rtype: int
        """
        return self._LicenseId

    @LicenseId.setter
    def LicenseId(self, LicenseId):
        self._LicenseId = LicenseId

    @property
    def LicenseType(self):
        r"""<p>授权类型</p><p>枚举值：</p><ul><li>0： 专业版-按量计费</li><li>1： 专业版-包年包月(主机安全)</li><li>2： 旗舰版-包年包月(主机安全)</li><li>3： 轻量版-LH-包年包月</li><li>6： 专业版-包年包月（云安全中心）</li><li>7： 旗舰版-包年包月（云安全中心）</li></ul>
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def ResourceId(self):
        r"""<p>资源ID,取DescribeLicenseList接口List对象下的ResourceId参数值</p>
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def Filters(self):
        r"""<li>InstanceID、IP、<p>MachineName 模糊查询</li></p>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""<p>限制条数,默认10.</p>
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""<p>偏移量,默认0.</p>
        :rtype: int
        """
        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):
    r"""DescribeLicenseBindList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: <p>总条数</p>
        :type TotalCount: int
        :param _List: <p>绑定机器列表信息</p>
        :type List: list of LicenseBindDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""<p>总条数</p>
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""<p>绑定机器列表信息</p>
        :rtype: list of LicenseBindDetail
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""任务ID
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def Limit(self):
        r"""限制条数,默认10.
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤参数
Status 绑定进度状态 0 进行中 1 已完成 2 失败
        :rtype: list of Filter
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Schedule = None
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Schedule(self):
        r"""进度
        :rtype: int
        """
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def List(self):
        r"""绑定任务详情
        :rtype: list of LicenseBindTaskDetail
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLicenseGeneral请求参数结构体

    """


class DescribeLicenseGeneralResponse(AbstractModel):
    r"""DescribeLicenseGeneral返回参数结构体

    """

    def __init__(self):
        r"""
        :param _LicenseCnt: <p>总授权数 (包含隔离,过期等不可用状态)</p>
        :type LicenseCnt: int
        :param _AvailableLicenseCnt: <p>可用授权数</p>
        :type AvailableLicenseCnt: int
        :param _AvailableProVersionLicenseCnt: <p>可用专业版授权数(包含后付费).</p>
        :type AvailableProVersionLicenseCnt: int
        :param _AvailableFlagshipVersionLicenseCnt: <p>可用旗舰版授权数</p>
        :type AvailableFlagshipVersionLicenseCnt: int
        :param _NearExpiryLicenseCnt: <p>即将到期授权数 (15天内到期的)</p>
        :type NearExpiryLicenseCnt: int
        :param _ExpireLicenseCnt: <p>已到期授权数(不包含已删除的记录)</p>
        :type ExpireLicenseCnt: int
        :param _AutoOpenStatus: <p>自动升级开关状态,默认 false,  true 开启, false 关闭</p>
        :type AutoOpenStatus: bool
        :param _ProtectType: <p>PROVERSION_POSTPAY 专业版-后付费, PROVERSION_PREPAY 专业版-预付费, FLAGSHIP_PREPAY 旗舰版-预付费</p>
        :type ProtectType: str
        :param _IsOpenStatusHistory: <p>历史是否开通过自动升级开关</p>
        :type IsOpenStatusHistory: bool
        :param _UsedLicenseCnt: <p>已使用授权数</p>
        :type UsedLicenseCnt: int
        :param _NotExpiredLicenseCnt: <p>未到期授权数</p>
        :type NotExpiredLicenseCnt: int
        :param _FlagshipVersionLicenseCnt: <p>旗舰版总授权数(有效订单)</p>
        :type FlagshipVersionLicenseCnt: int
        :param _ProVersionLicenseCnt: <p>专业版总授权数(有效订单)</p>
        :type ProVersionLicenseCnt: int
        :param _CwpVersionLicenseCnt: <p>轻量版总授权数(有效订单的授权数)</p>
        :type CwpVersionLicenseCnt: int
        :param _AvailableLHLicenseCnt: <p>可用惠普版授权数</p>
        :type AvailableLHLicenseCnt: int
        :param _AutoRepurchaseSwitch: <p>自动加购开关, true 开启, false 关闭</p>
        :type AutoRepurchaseSwitch: bool
        :param _AutoRepurchaseRenewSwitch: <p>自动加购订单是否自动续费 ,true 开启, false 关闭</p>
        :type AutoRepurchaseRenewSwitch: bool
        :param _DestroyOrderNum: <p>已销毁订单数</p>
        :type DestroyOrderNum: int
        :param _RepurchaseRenewSwitch: <p>自动加购是否自动续费开关,true 开启,false 关闭</p>
        :type RepurchaseRenewSwitch: bool
        :param _AutoBindRaspSwitch: <p>是否自动新增机器绑定rasp防护,false 关闭 true 开启</p>
        :type AutoBindRaspSwitch: bool
        :param _AutoOpenRaspSwitch: <p>是否自动新增机器开启rasp防护,false 关闭 true 开启</p>
        :type AutoOpenRaspSwitch: bool
        :param _AutoDowngradeSwitch: <p>是否自动缩容开关开启</p>
        :type AutoDowngradeSwitch: bool
        :param _AvailableAISecurityLicenseCnt: <p>可使用的AI防护版授权数</p>
        :type AvailableAISecurityLicenseCnt: int
        :param _AISecurityVersionLicenseCnt: <p>AI 防护版总授权数</p>
        :type AISecurityVersionLicenseCnt: int
        :param _ApplicationAvailableLicenseCnt: <p>应用防护授权数+旗舰版授权数相加后的可使用授权数</p>
        :type ApplicationAvailableLicenseCnt: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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._RepurchaseRenewSwitch = None
        self._AutoBindRaspSwitch = None
        self._AutoOpenRaspSwitch = None
        self._AutoDowngradeSwitch = None
        self._AvailableAISecurityLicenseCnt = None
        self._AISecurityVersionLicenseCnt = None
        self._ApplicationAvailableLicenseCnt = None
        self._RequestId = None

    @property
    def LicenseCnt(self):
        r"""<p>总授权数 (包含隔离,过期等不可用状态)</p>
        :rtype: int
        """
        return self._LicenseCnt

    @LicenseCnt.setter
    def LicenseCnt(self, LicenseCnt):
        self._LicenseCnt = LicenseCnt

    @property
    def AvailableLicenseCnt(self):
        r"""<p>可用授权数</p>
        :rtype: int
        """
        return self._AvailableLicenseCnt

    @AvailableLicenseCnt.setter
    def AvailableLicenseCnt(self, AvailableLicenseCnt):
        self._AvailableLicenseCnt = AvailableLicenseCnt

    @property
    def AvailableProVersionLicenseCnt(self):
        r"""<p>可用专业版授权数(包含后付费).</p>
        :rtype: int
        """
        return self._AvailableProVersionLicenseCnt

    @AvailableProVersionLicenseCnt.setter
    def AvailableProVersionLicenseCnt(self, AvailableProVersionLicenseCnt):
        self._AvailableProVersionLicenseCnt = AvailableProVersionLicenseCnt

    @property
    def AvailableFlagshipVersionLicenseCnt(self):
        r"""<p>可用旗舰版授权数</p>
        :rtype: int
        """
        return self._AvailableFlagshipVersionLicenseCnt

    @AvailableFlagshipVersionLicenseCnt.setter
    def AvailableFlagshipVersionLicenseCnt(self, AvailableFlagshipVersionLicenseCnt):
        self._AvailableFlagshipVersionLicenseCnt = AvailableFlagshipVersionLicenseCnt

    @property
    def NearExpiryLicenseCnt(self):
        r"""<p>即将到期授权数 (15天内到期的)</p>
        :rtype: int
        """
        return self._NearExpiryLicenseCnt

    @NearExpiryLicenseCnt.setter
    def NearExpiryLicenseCnt(self, NearExpiryLicenseCnt):
        self._NearExpiryLicenseCnt = NearExpiryLicenseCnt

    @property
    def ExpireLicenseCnt(self):
        r"""<p>已到期授权数(不包含已删除的记录)</p>
        :rtype: int
        """
        return self._ExpireLicenseCnt

    @ExpireLicenseCnt.setter
    def ExpireLicenseCnt(self, ExpireLicenseCnt):
        self._ExpireLicenseCnt = ExpireLicenseCnt

    @property
    def AutoOpenStatus(self):
        r"""<p>自动升级开关状态,默认 false,  true 开启, false 关闭</p>
        :rtype: bool
        """
        return self._AutoOpenStatus

    @AutoOpenStatus.setter
    def AutoOpenStatus(self, AutoOpenStatus):
        self._AutoOpenStatus = AutoOpenStatus

    @property
    def ProtectType(self):
        r"""<p>PROVERSION_POSTPAY 专业版-后付费, PROVERSION_PREPAY 专业版-预付费, FLAGSHIP_PREPAY 旗舰版-预付费</p>
        :rtype: str
        """
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def IsOpenStatusHistory(self):
        r"""<p>历史是否开通过自动升级开关</p>
        :rtype: bool
        """
        return self._IsOpenStatusHistory

    @IsOpenStatusHistory.setter
    def IsOpenStatusHistory(self, IsOpenStatusHistory):
        self._IsOpenStatusHistory = IsOpenStatusHistory

    @property
    def UsedLicenseCnt(self):
        r"""<p>已使用授权数</p>
        :rtype: int
        """
        return self._UsedLicenseCnt

    @UsedLicenseCnt.setter
    def UsedLicenseCnt(self, UsedLicenseCnt):
        self._UsedLicenseCnt = UsedLicenseCnt

    @property
    def NotExpiredLicenseCnt(self):
        r"""<p>未到期授权数</p>
        :rtype: int
        """
        return self._NotExpiredLicenseCnt

    @NotExpiredLicenseCnt.setter
    def NotExpiredLicenseCnt(self, NotExpiredLicenseCnt):
        self._NotExpiredLicenseCnt = NotExpiredLicenseCnt

    @property
    def FlagshipVersionLicenseCnt(self):
        r"""<p>旗舰版总授权数(有效订单)</p>
        :rtype: int
        """
        return self._FlagshipVersionLicenseCnt

    @FlagshipVersionLicenseCnt.setter
    def FlagshipVersionLicenseCnt(self, FlagshipVersionLicenseCnt):
        self._FlagshipVersionLicenseCnt = FlagshipVersionLicenseCnt

    @property
    def ProVersionLicenseCnt(self):
        r"""<p>专业版总授权数(有效订单)</p>
        :rtype: int
        """
        return self._ProVersionLicenseCnt

    @ProVersionLicenseCnt.setter
    def ProVersionLicenseCnt(self, ProVersionLicenseCnt):
        self._ProVersionLicenseCnt = ProVersionLicenseCnt

    @property
    def CwpVersionLicenseCnt(self):
        r"""<p>轻量版总授权数(有效订单的授权数)</p>
        :rtype: int
        """
        return self._CwpVersionLicenseCnt

    @CwpVersionLicenseCnt.setter
    def CwpVersionLicenseCnt(self, CwpVersionLicenseCnt):
        self._CwpVersionLicenseCnt = CwpVersionLicenseCnt

    @property
    def AvailableLHLicenseCnt(self):
        r"""<p>可用惠普版授权数</p>
        :rtype: int
        """
        return self._AvailableLHLicenseCnt

    @AvailableLHLicenseCnt.setter
    def AvailableLHLicenseCnt(self, AvailableLHLicenseCnt):
        self._AvailableLHLicenseCnt = AvailableLHLicenseCnt

    @property
    def AutoRepurchaseSwitch(self):
        r"""<p>自动加购开关, true 开启, false 关闭</p>
        :rtype: bool
        """
        return self._AutoRepurchaseSwitch

    @AutoRepurchaseSwitch.setter
    def AutoRepurchaseSwitch(self, AutoRepurchaseSwitch):
        self._AutoRepurchaseSwitch = AutoRepurchaseSwitch

    @property
    def AutoRepurchaseRenewSwitch(self):
        r"""<p>自动加购订单是否自动续费 ,true 开启, false 关闭</p>
        :rtype: bool
        """
        return self._AutoRepurchaseRenewSwitch

    @AutoRepurchaseRenewSwitch.setter
    def AutoRepurchaseRenewSwitch(self, AutoRepurchaseRenewSwitch):
        self._AutoRepurchaseRenewSwitch = AutoRepurchaseRenewSwitch

    @property
    def DestroyOrderNum(self):
        r"""<p>已销毁订单数</p>
        :rtype: int
        """
        return self._DestroyOrderNum

    @DestroyOrderNum.setter
    def DestroyOrderNum(self, DestroyOrderNum):
        self._DestroyOrderNum = DestroyOrderNum

    @property
    def RepurchaseRenewSwitch(self):
        r"""<p>自动加购是否自动续费开关,true 开启,false 关闭</p>
        :rtype: bool
        """
        return self._RepurchaseRenewSwitch

    @RepurchaseRenewSwitch.setter
    def RepurchaseRenewSwitch(self, RepurchaseRenewSwitch):
        self._RepurchaseRenewSwitch = RepurchaseRenewSwitch

    @property
    def AutoBindRaspSwitch(self):
        r"""<p>是否自动新增机器绑定rasp防护,false 关闭 true 开启</p>
        :rtype: bool
        """
        return self._AutoBindRaspSwitch

    @AutoBindRaspSwitch.setter
    def AutoBindRaspSwitch(self, AutoBindRaspSwitch):
        self._AutoBindRaspSwitch = AutoBindRaspSwitch

    @property
    def AutoOpenRaspSwitch(self):
        r"""<p>是否自动新增机器开启rasp防护,false 关闭 true 开启</p>
        :rtype: bool
        """
        return self._AutoOpenRaspSwitch

    @AutoOpenRaspSwitch.setter
    def AutoOpenRaspSwitch(self, AutoOpenRaspSwitch):
        self._AutoOpenRaspSwitch = AutoOpenRaspSwitch

    @property
    def AutoDowngradeSwitch(self):
        r"""<p>是否自动缩容开关开启</p>
        :rtype: bool
        """
        return self._AutoDowngradeSwitch

    @AutoDowngradeSwitch.setter
    def AutoDowngradeSwitch(self, AutoDowngradeSwitch):
        self._AutoDowngradeSwitch = AutoDowngradeSwitch

    @property
    def AvailableAISecurityLicenseCnt(self):
        r"""<p>可使用的AI防护版授权数</p>
        :rtype: int
        """
        return self._AvailableAISecurityLicenseCnt

    @AvailableAISecurityLicenseCnt.setter
    def AvailableAISecurityLicenseCnt(self, AvailableAISecurityLicenseCnt):
        self._AvailableAISecurityLicenseCnt = AvailableAISecurityLicenseCnt

    @property
    def AISecurityVersionLicenseCnt(self):
        r"""<p>AI 防护版总授权数</p>
        :rtype: int
        """
        return self._AISecurityVersionLicenseCnt

    @AISecurityVersionLicenseCnt.setter
    def AISecurityVersionLicenseCnt(self, AISecurityVersionLicenseCnt):
        self._AISecurityVersionLicenseCnt = AISecurityVersionLicenseCnt

    @property
    def ApplicationAvailableLicenseCnt(self):
        r"""<p>应用防护授权数+旗舰版授权数相加后的可使用授权数</p>
        :rtype: int
        """
        return self._ApplicationAvailableLicenseCnt

    @ApplicationAvailableLicenseCnt.setter
    def ApplicationAvailableLicenseCnt(self, ApplicationAvailableLicenseCnt):
        self._ApplicationAvailableLicenseCnt = ApplicationAvailableLicenseCnt

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._RepurchaseRenewSwitch = params.get("RepurchaseRenewSwitch")
        self._AutoBindRaspSwitch = params.get("AutoBindRaspSwitch")
        self._AutoOpenRaspSwitch = params.get("AutoOpenRaspSwitch")
        self._AutoDowngradeSwitch = params.get("AutoDowngradeSwitch")
        self._AvailableAISecurityLicenseCnt = params.get("AvailableAISecurityLicenseCnt")
        self._AISecurityVersionLicenseCnt = params.get("AISecurityVersionLicenseCnt")
        self._ApplicationAvailableLicenseCnt = params.get("ApplicationAvailableLicenseCnt")
        self._RequestId = params.get("RequestId")


class DescribeLicenseListRequest(AbstractModel):
    r"""DescribeLicenseList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 多个条件筛选时取交集
<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>
<li>DealNames 子订单号,最大长度10个,超出会失败</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
        :param _Order: ASC 正序,  DESC 倒序
        :type Order: str
        :param _By: LicenseCnt 授权数量
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Tags = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        r"""多个条件筛选时取交集
<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>
<li>DealNames 子订单号,最大长度10个,超出会失败</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10.
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0.
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Tags(self):
        r"""标签筛选,平台标签能力,这里传入 标签键,标签值作为一个对象
        :rtype: list of Tags
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Order(self):
        r"""ASC 正序,  DESC 倒序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""LicenseCnt 授权数量
        :rtype: str
        """
        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")
        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._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 DescribeLicenseListResponse(AbstractModel):
    r"""DescribeLicenseList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 授权数列表信息
        :type List: list of LicenseDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""授权数列表信息
        :rtype: list of LicenseDetail
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLicense请求参数结构体

    """


class DescribeLicenseResponse(AbstractModel):
    r"""DescribeLicense返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FunctionsEn: 支持功能
        :type FunctionsEn: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FunctionsEn = None
        self._RequestId = None

    @property
    def FunctionsEn(self):
        r"""支持功能
        :rtype: list of str
        """
        return self._FunctionsEn

    @FunctionsEn.setter
    def FunctionsEn(self, FunctionsEn):
        self._FunctionsEn = FunctionsEn

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._FunctionsEn = params.get("FunctionsEn")
        self._RequestId = params.get("RequestId")


class DescribeLicenseWhiteConfigRequest(AbstractModel):
    r"""DescribeLicenseWhiteConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleName: <p>规则名称,例如: cwp</p>
        :type RuleName: str
        """
        self._RuleName = None

    @property
    def RuleName(self):
        r"""<p>规则名称,例如: cwp</p>
        :rtype: str
        """
        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):
    r"""DescribeLicenseWhiteConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FlagShip: <p>旗舰版 配置信息</p>
        :type FlagShip: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        :param _Professional: <p>专业版 配置信息</p>
        :type Professional: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        :param _PrattWhitney: <p>轻量版 配置信息</p>
        :type PrattWhitney: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        :param _RASP: <p>重保授权包 配置信息</p>
        :type RASP: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        :param _LOG: <p>日志分析配置信息</p>
        :type LOG: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FlagShip = None
        self._Professional = None
        self._PrattWhitney = None
        self._RASP = None
        self._LOG = None
        self._RequestId = None

    @property
    def FlagShip(self):
        r"""<p>旗舰版 配置信息</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        """
        return self._FlagShip

    @FlagShip.setter
    def FlagShip(self, FlagShip):
        self._FlagShip = FlagShip

    @property
    def Professional(self):
        r"""<p>专业版 配置信息</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        """
        return self._Professional

    @Professional.setter
    def Professional(self, Professional):
        self._Professional = Professional

    @property
    def PrattWhitney(self):
        r"""<p>轻量版 配置信息</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        """
        return self._PrattWhitney

    @PrattWhitney.setter
    def PrattWhitney(self, PrattWhitney):
        self._PrattWhitney = PrattWhitney

    @property
    def RASP(self):
        r"""<p>重保授权包 配置信息</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        """
        return self._RASP

    @RASP.setter
    def RASP(self, RASP):
        self._RASP = RASP

    @property
    def LOG(self):
        r"""<p>日志分析配置信息</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VersionWhiteConfig`
        """
        return self._LOG

    @LOG.setter
    def LOG(self, LOG):
        self._LOG = LOG

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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"))
        if params.get("RASP") is not None:
            self._RASP = VersionWhiteConfig()
            self._RASP._deserialize(params.get("RASP"))
        if params.get("LOG") is not None:
            self._LOG = VersionWhiteConfig()
            self._LOG._deserialize(params.get("LOG"))
        self._RequestId = params.get("RequestId")


class DescribeLogDeliveryKafkaOptionsRequest(AbstractModel):
    r"""DescribeLogDeliveryKafkaOptions请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceID: kafka实例id
        :type InstanceID: str
        """
        self._InstanceID = None

    @property
    def InstanceID(self):
        r"""kafka实例id
        :rtype: str
        """
        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):
    r"""DescribeLogDeliveryKafkaOptions返回参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceList: 实例列表
        :type InstanceList: list of CKafkaInstanceInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._InstanceList = None
        self._RequestId = None

    @property
    def InstanceList(self):
        r"""实例列表
        :rtype: list of CKafkaInstanceInfo
        """
        return self._InstanceList

    @InstanceList.setter
    def InstanceList(self, InstanceList):
        self._InstanceList = InstanceList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页的偏移量，默认值为0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""分页单页限制数目，默认值为20，最大值100
        :rtype: int
        """
        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):
    r"""DescribeLogExports返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数目
        :type TotalCount: int
        :param _Exports: 日志导出列表
        :type Exports: list of ExportInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._Exports = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数目
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Exports(self):
        r"""日志导出列表
        :rtype: list of ExportInfo
        """
        return self._Exports

    @Exports.setter
    def Exports(self, Exports):
        self._Exports = Exports

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""要查询的日志的起始时间，Unix时间戳，单位ms
        :rtype: int
        """
        return self._StartTime

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

    @property
    def EndTime(self):
        r"""要查询的日志的结束时间，Unix时间戳，单位ms
        :rtype: int
        """
        return self._EndTime

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

    @property
    def QueryString(self):
        r"""查询语句
        :rtype: str
        """
        return self._QueryString

    @QueryString.setter
    def QueryString(self, QueryString):
        self._QueryString = QueryString

    @property
    def Interval(self):
        r"""时间间隔: 单位ms
        :rtype: int
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._Period = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Data(self):
        r"""周期内统计结果详情
        :rtype: list of LogHistogram
        """
        return self._Data

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

    @property
    def Period(self):
        r"""统计周期： 单位ms
        :rtype: int
        """
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period

    @property
    def TotalCount(self):
        r"""命中关键字的日志总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLogIndex请求参数结构体

    """


class DescribeLogIndexResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._Rule = None
        self._ModifyTime = None
        self._RequestId = None

    @property
    def Status(self):
        r"""是否生效
        :rtype: bool
        """
        return self._Status

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

    @property
    def Rule(self):
        r"""索引规则
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RuleInfo`
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def ModifyTime(self):
        r"""索引修改时间，初始值为索引创建时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLogKafkaDeliverInfo请求参数结构体

    """


class DescribeLogKafkaDeliverInfoResponse(AbstractModel):
    r"""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: 投递类型细节
        :type DeliverTypeDetails: list of DeliverTypeDetails
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""实例环境
        :rtype: str
        """
        return self._KafkaEnvName

    @KafkaEnvName.setter
    def KafkaEnvName(self, KafkaEnvName):
        self._KafkaEnvName = KafkaEnvName

    @property
    def KafkaId(self):
        r"""实例id
        :rtype: str
        """
        return self._KafkaId

    @KafkaId.setter
    def KafkaId(self, KafkaId):
        self._KafkaId = KafkaId

    @property
    def Zone(self):
        r"""地域
        :rtype: str
        """
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Az(self):
        r"""可用区
        :rtype: str
        """
        return self._Az

    @Az.setter
    def Az(self, Az):
        self._Az = Az

    @property
    def VpcId(self):
        r"""所属网络
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        r"""所在子网
        :rtype: str
        """
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def AccessType(self):
        r"""接入方式，1公网域名接入，2支撑环境接入
        :rtype: int
        """
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType

    @property
    def AccessAddr(self):
        r"""接入地址
        :rtype: str
        """
        return self._AccessAddr

    @AccessAddr.setter
    def AccessAddr(self, AccessAddr):
        self._AccessAddr = AccessAddr

    @property
    def DeliverStatus(self):
        r"""投递状态，1：健康，2：告警，3：异常
        :rtype: int
        """
        return self._DeliverStatus

    @DeliverStatus.setter
    def DeliverStatus(self, DeliverStatus):
        self._DeliverStatus = DeliverStatus

    @property
    def InsVersion(self):
        r"""kafka版本
        :rtype: str
        """
        return self._InsVersion

    @InsVersion.setter
    def InsVersion(self, InsVersion):
        self._InsVersion = InsVersion

    @property
    def BandWidth(self):
        r"""峰值带宽
        :rtype: int
        """
        return self._BandWidth

    @BandWidth.setter
    def BandWidth(self, BandWidth):
        self._BandWidth = BandWidth

    @property
    def DiskSize(self):
        r"""磁盘容量
        :rtype: int
        """
        return self._DiskSize

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

    @property
    def Username(self):
        r"""用户名
        :rtype: str
        """
        return self._Username

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

    @property
    def DeliverTypeDetails(self):
        r"""投递类型细节
        :rtype: list of DeliverTypeDetails
        """
        return self._DeliverTypeDetails

    @DeliverTypeDetails.setter
    def DeliverTypeDetails(self, DeliverTypeDetails):
        self._DeliverTypeDetails = DeliverTypeDetails

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLogStorageConfig请求参数结构体

    """


class DescribeLogStorageConfigResponse(AbstractModel):
    r"""DescribeLogStorageConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Type: 存储类型，string数组
        :type Type: list of str
        :param _Period: 日志存储时长，3640表示不限
        :type Period: int
        :param _PeriodModifyCount: 本月Period的修改次数
        :type PeriodModifyCount: int
        :param _Granularity: 日志存储时长单位，年year/月month/天day
        :type Granularity: str
        :param _MsgLanguage: 语言类型
        :type MsgLanguage: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Type = None
        self._Period = None
        self._PeriodModifyCount = None
        self._Granularity = None
        self._MsgLanguage = None
        self._RequestId = None

    @property
    def Type(self):
        r"""存储类型，string数组
        :rtype: list of str
        """
        return self._Type

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

    @property
    def Period(self):
        r"""日志存储时长，3640表示不限
        :rtype: int
        """
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period

    @property
    def PeriodModifyCount(self):
        r"""本月Period的修改次数
        :rtype: int
        """
        return self._PeriodModifyCount

    @PeriodModifyCount.setter
    def PeriodModifyCount(self, PeriodModifyCount):
        self._PeriodModifyCount = PeriodModifyCount

    @property
    def Granularity(self):
        r"""日志存储时长单位，年year/月month/天day
        :rtype: str
        """
        return self._Granularity

    @Granularity.setter
    def Granularity(self, Granularity):
        self._Granularity = Granularity

    @property
    def MsgLanguage(self):
        r"""语言类型
        :rtype: str
        """
        return self._MsgLanguage

    @MsgLanguage.setter
    def MsgLanguage(self, MsgLanguage):
        self._MsgLanguage = MsgLanguage

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._Granularity = params.get("Granularity")
        self._MsgLanguage = params.get("MsgLanguage")
        self._RequestId = params.get("RequestId")


class DescribeLogStorageRecordRequest(AbstractModel):
    r"""DescribeLogStorageRecord请求参数结构体

    """


class DescribeLogStorageRecordResponse(AbstractModel):
    r"""DescribeLogStorageRecord返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Records: 存储量记录
        :type Records: list of LogStorageRecord
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Records = None
        self._RequestId = None

    @property
    def Records(self):
        r"""存储量记录
        :rtype: list of LogStorageRecord
        """
        return self._Records

    @Records.setter
    def Records(self, Records):
        self._Records = Records

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLogStorageStatistic请求参数结构体

    """


class DescribeLogStorageStatisticResponse(AbstractModel):
    r"""DescribeLogStorageStatistic返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalSize: 总容量（单位：GB）
        :type TotalSize: int
        :param _UsedSize: 已使用容量（单位：GB）
        :type UsedSize: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalSize = None
        self._UsedSize = None
        self._RequestId = None

    @property
    def TotalSize(self):
        r"""总容量（单位：GB）
        :rtype: int
        """
        return self._TotalSize

    @TotalSize.setter
    def TotalSize(self, TotalSize):
        self._TotalSize = TotalSize

    @property
    def UsedSize(self):
        r"""已使用容量（单位：GB）
        :rtype: int
        """
        return self._UsedSize

    @UsedSize.setter
    def UsedSize(self, UsedSize):
        self._UsedSize = UsedSize

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLogType请求参数结构体

    """


class DescribeLogTypeResponse(AbstractModel):
    r"""DescribeLogType返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: cls日志类型信息
        :type Data: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""cls日志类型信息
        :rtype: str
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeLoginTypeGlobalConfRequest(AbstractModel):
    r"""DescribeLoginTypeGlobalConf请求参数结构体

    """


class DescribeLoginTypeGlobalConfResponse(AbstractModel):
    r"""DescribeLoginTypeGlobalConf返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Enable: <p>是否开启防卸载 <li>0 否</li> <li>1 是</li> <li>9 未设置,和0一样是未开启</li></p>
        :type Enable: int
        :param _Scope: <p>开启范围 <li>0 自选主机</li> <li>1 全部主机</li></p>
        :type Scope: int
        :param _IncludeHostCount: <p>正选主机配置数</p>
        :type IncludeHostCount: int
        :param _ExcludeHostCount: <p>反选主机配置数</p>
        :type ExcludeHostCount: int
        :param _IncludeQuuid: <p>正选quuid配置列表</p>
        :type IncludeQuuid: list of str
        :param _ExcludeQuuid: <p>反选quuid配置列表</p>
        :type ExcludeQuuid: list of str
        :param _EnableCount: <p>已开启机器数</p>
        :type EnableCount: int
        :param _DisableCount: <p>未启机器数</p>
        :type DisableCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Enable = None
        self._Scope = None
        self._IncludeHostCount = None
        self._ExcludeHostCount = None
        self._IncludeQuuid = None
        self._ExcludeQuuid = None
        self._EnableCount = None
        self._DisableCount = None
        self._RequestId = None

    @property
    def Enable(self):
        r"""<p>是否开启防卸载 <li>0 否</li> <li>1 是</li> <li>9 未设置,和0一样是未开启</li></p>
        :rtype: int
        """
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def Scope(self):
        r"""<p>开启范围 <li>0 自选主机</li> <li>1 全部主机</li></p>
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def IncludeHostCount(self):
        r"""<p>正选主机配置数</p>
        :rtype: int
        """
        return self._IncludeHostCount

    @IncludeHostCount.setter
    def IncludeHostCount(self, IncludeHostCount):
        self._IncludeHostCount = IncludeHostCount

    @property
    def ExcludeHostCount(self):
        r"""<p>反选主机配置数</p>
        :rtype: int
        """
        return self._ExcludeHostCount

    @ExcludeHostCount.setter
    def ExcludeHostCount(self, ExcludeHostCount):
        self._ExcludeHostCount = ExcludeHostCount

    @property
    def IncludeQuuid(self):
        r"""<p>正选quuid配置列表</p>
        :rtype: list of str
        """
        return self._IncludeQuuid

    @IncludeQuuid.setter
    def IncludeQuuid(self, IncludeQuuid):
        self._IncludeQuuid = IncludeQuuid

    @property
    def ExcludeQuuid(self):
        r"""<p>反选quuid配置列表</p>
        :rtype: list of str
        """
        return self._ExcludeQuuid

    @ExcludeQuuid.setter
    def ExcludeQuuid(self, ExcludeQuuid):
        self._ExcludeQuuid = ExcludeQuuid

    @property
    def EnableCount(self):
        r"""<p>已开启机器数</p>
        :rtype: int
        """
        return self._EnableCount

    @EnableCount.setter
    def EnableCount(self, EnableCount):
        self._EnableCount = EnableCount

    @property
    def DisableCount(self):
        r"""<p>未启机器数</p>
        :rtype: int
        """
        return self._DisableCount

    @DisableCount.setter
    def DisableCount(self, DisableCount):
        self._DisableCount = DisableCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._IncludeHostCount = params.get("IncludeHostCount")
        self._ExcludeHostCount = params.get("ExcludeHostCount")
        self._IncludeQuuid = params.get("IncludeQuuid")
        self._ExcludeQuuid = params.get("ExcludeQuuid")
        self._EnableCount = params.get("EnableCount")
        self._DisableCount = params.get("DisableCount")
        self._RequestId = params.get("RequestId")


class DescribeLoginTypeHostRequest(AbstractModel):
    r"""DescribeLoginTypeHost请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>Name - string - 是否必填：否 - 主机名</li> <li>InstanceId - string - 是否必填：否 - 实例ID</li> <li>PublicIp - string - 是否必填：否 - 公网IP</li> <li>PrivateIp - string - 是否必填：否 - 私网IP</li>
        :type Filters: list of Filter
        :param _Limit: <p>限制条数,默认10,最大100</p>
        :type Limit: int
        :param _Offset: <p>偏移量,默认0</p>
        :type Offset: int
        :param _Order: <p>排序方式: [ASC:升序|DESC:降序]</p>
        :type Order: str
        :param _By: <p>可选排序列: [Id]</p>
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        r"""<li>Name - string - 是否必填：否 - 主机名</li> <li>InstanceId - string - 是否必填：否 - 实例ID</li> <li>PublicIp - string - 是否必填：否 - 公网IP</li> <li>PrivateIp - string - 是否必填：否 - 私网IP</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""<p>限制条数,默认10,最大100</p>
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""<p>偏移量,默认0</p>
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""<p>排序方式: [ASC:升序|DESC:降序]</p>
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""<p>可选排序列: [Id]</p>
        :rtype: str
        """
        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 DescribeLoginTypeHostResponse(AbstractModel):
    r"""DescribeLoginTypeHost返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: <p>总数</p>
        :type Total: int
        :param _List: <p>主机列表</p>
        :type List: list of ClientSettingHost
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        r"""<p>总数</p>
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        r"""<p>主机列表</p>
        :rtype: list of ClientSettingHost
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = ClientSettingHost()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLoginWhiteCombinedListRequest(AbstractModel):
    r"""DescribeLoginWhiteCombinedList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: <p>需要返回的数量，默认为10，最大值为100</p>
        :type Limit: int
        :param _Offset: <p>偏移量，默认为0。</p>
        :type Offset: int
        :param _Filters: <p>过滤条件。<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li><li>UserName - String - 是否必填：否 - 用户名筛选</li><li>SrcIP - String - 是否必填：否 - 来源IP筛选</li><li>Location - String - 是否必填：否 - 登录地筛选</li><li>ModifyBeginTime - String - 是否必填：否 - 按照修改时间段筛选，开始时间</li><li>ModifyEndTime - String - 是否必填：否 - 按照修改时间段筛选，结束时间</li></p>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        r"""<p>需要返回的数量，默认为10，最大值为100</p>
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""<p>偏移量，默认为0。</p>
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""<p>过滤条件。<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li><li>UserName - String - 是否必填：否 - 用户名筛选</li><li>SrcIP - String - 是否必填：否 - 来源IP筛选</li><li>Location - String - 是否必填：否 - 登录地筛选</li><li>ModifyBeginTime - String - 是否必填：否 - 按照修改时间段筛选，开始时间</li><li>ModifyEndTime - String - 是否必填：否 - 按照修改时间段筛选，结束时间</li></p>
        :rtype: list of Filter
        """
        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):
    r"""DescribeLoginWhiteCombinedList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: <p>总数量</p>
        :type TotalCount: int
        :param _LoginWhiteCombinedInfos: <p>合并后的白名单列表</p>
        :type LoginWhiteCombinedInfos: list of LoginWhiteCombinedInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._LoginWhiteCombinedInfos = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""<p>总数量</p>
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def LoginWhiteCombinedInfos(self):
        r"""<p>合并后的白名单列表</p>
        :rtype: list of LoginWhiteCombinedInfo
        """
        return self._LoginWhiteCombinedInfos

    @LoginWhiteCombinedInfos.setter
    def LoginWhiteCombinedInfos(self, LoginWhiteCombinedInfos):
        self._LoginWhiteCombinedInfos = LoginWhiteCombinedInfos

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeLoginWhiteHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: <p>白名单ID</p>
        :type Id: int
        :param _Limit: <p>需要返回的数量，最大值为1000</p>
        :type Limit: int
        :param _Offset: <p>偏移量，默认为0。</p>
        :type Offset: int
        :param _Filters: <p>过滤条件 <li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li></p>
        :type Filters: list of AssetFilters
        """
        self._Id = None
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Id(self):
        r"""<p>白名单ID</p>
        :rtype: int
        """
        return self._Id

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

    @property
    def Limit(self):
        r"""<p>需要返回的数量，最大值为1000</p>
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""<p>偏移量，默认为0。</p>
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""<p>过滤条件 <li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li></p>
        :rtype: list of AssetFilters
        """
        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):
    r"""DescribeLoginWhiteHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: <p>总数</p>
        :type TotalCount: int
        :param _Hosts: <p>服务器列表</p>
        :type Hosts: list of HostDesc
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._Hosts = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""<p>总数</p>
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Hosts(self):
        r"""<p>服务器列表</p>
        :rtype: list of HostDesc
        """
        return self._Hosts

    @Hosts.setter
    def Hosts(self, Hosts):
        self._Hosts = Hosts

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>IpOrAlias - String - 是否必填：否 - 查询关键字 </li>
<li>UserName - String - 是否必填：否 - 用户名筛选 </li>
<li>ModifyBeginTime - String - 是否必填：否 - 按照修改时间段筛选，开始时间 </li>
<li>ModifyEndTime - String - 是否必填：否 - 按照修改时间段筛选，结束时间 </li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeLoginWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 记录总数
        :type TotalCount: int
        :param _LoginWhiteLists: 异地登录白名单数组
        :type LoginWhiteLists: list of LoginWhiteLists
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._LoginWhiteLists = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def LoginWhiteLists(self):
        r"""异地登录白名单数组
        :rtype: list of LoginWhiteLists
        """
        return self._LoginWhiteLists

    @LoginWhiteLists.setter
    def LoginWhiteLists(self, LoginWhiteLists):
        self._LoginWhiteLists = LoginWhiteLists

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachineClearHistory请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <p>筛选条件<br>多个条件筛选时 Keywords,TimeBetween,取交集</p><li> Keywords 实例名称/内网/公网IP</li><li> TimeBetween 时间区间</li>
        :type Filters: list of Filters
        :param _Limit: <p>限制条数,默认10 ,最大100</p>
        :type Limit: int
        :param _Offset: <p>偏移量,默认0</p>
        :type Offset: int
        :param _Order: <p>正序, ASC , 倒序 DESC , 默认ASC</p>
        :type Order: str
        :param _By: <p>AgentLastOfflineTime 客户端最后离线时间<br>AutoClearTime 清理时间</p>
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        r"""<p>筛选条件<br>多个条件筛选时 Keywords,TimeBetween,取交集</p><li> Keywords 实例名称/内网/公网IP</li><li> TimeBetween 时间区间</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""<p>限制条数,默认10 ,最大100</p>
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""<p>偏移量,默认0</p>
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""<p>正序, ASC , 倒序 DESC , 默认ASC</p>
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""<p>AgentLastOfflineTime 客户端最后离线时间<br>AutoClearTime 清理时间</p>
        :rtype: str
        """
        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):
    r"""DescribeMachineClearHistory返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: <p>总条数</p>
        :type TotalCount: int
        :param _List: <p>列表数据</p>
        :type List: list of MachineClearHistory
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""<p>总条数</p>
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""<p>列表数据</p>
        :rtype: list of MachineClearHistory
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachineDefenseCnt请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Uuids- String - 是否必填：否 - 主机uuid</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤条件。
<li>Uuids- String - 是否必填：否 - 主机uuid</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeMachineDefenseCnt返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AttackLogs: 攻击检测统计
        :type AttackLogs: int
        :param _FileTamper: 核心文件监控统计
        :type FileTamper: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AttackLogs = None
        self._FileTamper = None
        self._RequestId = None

    @property
    def AttackLogs(self):
        r"""攻击检测统计
        :rtype: int
        """
        return self._AttackLogs

    @AttackLogs.setter
    def AttackLogs(self, AttackLogs):
        self._AttackLogs = AttackLogs

    @property
    def FileTamper(self):
        r"""核心文件监控统计
        :rtype: int
        """
        return self._FileTamper

    @FileTamper.setter
    def FileTamper(self, FileTamper):
        self._FileTamper = FileTamper

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        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):
    r"""DescribeMachineFileTamperRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 查询主机相关核心文件监控规则详情
        :type List: list of MachineFileTamperRule
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""查询主机相关核心文件监控规则详情
        :rtype: list of MachineFileTamperRule
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachineGeneral请求参数结构体

    """


class DescribeMachineGeneralResponse(AbstractModel):
    r"""DescribeMachineGeneral返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineCnt: <p>资产总数</p>
        :type MachineCnt: int
        :param _TencentCloudMachineCnt: <p>腾讯云服务商机器数</p>
        :type TencentCloudMachineCnt: int
        :param _AliCloudMachineCnt: <p>阿里云服务商机器数</p>
        :type AliCloudMachineCnt: int
        :param _BaiduCloudMachineCnt: <p>百度云服务商机器数</p>
        :type BaiduCloudMachineCnt: int
        :param _IDCMachineCnt: <p>IDC机器数</p>
        :type IDCMachineCnt: int
        :param _OtherCloudMachineCnt: <p>其他云服务商机器数</p>
        :type OtherCloudMachineCnt: int
        :param _ProtectMachineCnt: <p>已防护机器数</p>
        :type ProtectMachineCnt: int
        :param _BaseMachineCnt: <p>已防护基础版机器数</p>
        :type BaseMachineCnt: int
        :param _SpecialtyMachineCnt: <p>已防护专业版机器数</p>
        :type SpecialtyMachineCnt: int
        :param _FlagshipMachineCnt: <p>已防护旗舰版机器数</p>
        :type FlagshipMachineCnt: int
        :param _RiskMachineCnt: <p>存在风险的机器数</p>
        :type RiskMachineCnt: int
        :param _CompareYesterdayRiskMachineCnt: <p>比较昨日风险机器数</p>
        :type CompareYesterdayRiskMachineCnt: int
        :param _CompareYesterdayNotProtectMachineCnt: <p>比较昨日未防护机器数</p>
        :type CompareYesterdayNotProtectMachineCnt: int
        :param _CompareYesterdayDeadlineMachineCnt: <p>比较昨日即将到期的机器数</p>
        :type CompareYesterdayDeadlineMachineCnt: int
        :param _DeadlineMachineCnt: <p>即将到期的机器数</p>
        :type DeadlineMachineCnt: int
        :param _NotProtectMachineCnt: <p>未防护机器数</p>
        :type NotProtectMachineCnt: int
        :param _LHGeneralDiscountCnt: <p>已防护轻量机器数（Lighthouse机器）</p>
        :type LHGeneralDiscountCnt: int
        :param _CompareYesterdayMachineCnt: <p>比较昨日新增的主机数</p>
        :type CompareYesterdayMachineCnt: int
        :param _MachineDestroyAfterOfflineHours: <p>自动清理时间,最大720小时,最小0, 默认0 ,0=关闭</p>
        :type MachineDestroyAfterOfflineHours: int
        :param _CloudFrom: <p>云服务器类型数组</p>
        :type CloudFrom: list of CloudFromCnt
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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._CloudFrom = None
        self._RequestId = None

    @property
    def MachineCnt(self):
        r"""<p>资产总数</p>
        :rtype: int
        """
        return self._MachineCnt

    @MachineCnt.setter
    def MachineCnt(self, MachineCnt):
        self._MachineCnt = MachineCnt

    @property
    def TencentCloudMachineCnt(self):
        warnings.warn("parameter `TencentCloudMachineCnt` is deprecated", DeprecationWarning) 

        r"""<p>腾讯云服务商机器数</p>
        :rtype: int
        """
        return self._TencentCloudMachineCnt

    @TencentCloudMachineCnt.setter
    def TencentCloudMachineCnt(self, TencentCloudMachineCnt):
        warnings.warn("parameter `TencentCloudMachineCnt` is deprecated", DeprecationWarning) 

        self._TencentCloudMachineCnt = TencentCloudMachineCnt

    @property
    def AliCloudMachineCnt(self):
        warnings.warn("parameter `AliCloudMachineCnt` is deprecated", DeprecationWarning) 

        r"""<p>阿里云服务商机器数</p>
        :rtype: int
        """
        return self._AliCloudMachineCnt

    @AliCloudMachineCnt.setter
    def AliCloudMachineCnt(self, AliCloudMachineCnt):
        warnings.warn("parameter `AliCloudMachineCnt` is deprecated", DeprecationWarning) 

        self._AliCloudMachineCnt = AliCloudMachineCnt

    @property
    def BaiduCloudMachineCnt(self):
        warnings.warn("parameter `BaiduCloudMachineCnt` is deprecated", DeprecationWarning) 

        r"""<p>百度云服务商机器数</p>
        :rtype: int
        """
        return self._BaiduCloudMachineCnt

    @BaiduCloudMachineCnt.setter
    def BaiduCloudMachineCnt(self, BaiduCloudMachineCnt):
        warnings.warn("parameter `BaiduCloudMachineCnt` is deprecated", DeprecationWarning) 

        self._BaiduCloudMachineCnt = BaiduCloudMachineCnt

    @property
    def IDCMachineCnt(self):
        warnings.warn("parameter `IDCMachineCnt` is deprecated", DeprecationWarning) 

        r"""<p>IDC机器数</p>
        :rtype: int
        """
        return self._IDCMachineCnt

    @IDCMachineCnt.setter
    def IDCMachineCnt(self, IDCMachineCnt):
        warnings.warn("parameter `IDCMachineCnt` is deprecated", DeprecationWarning) 

        self._IDCMachineCnt = IDCMachineCnt

    @property
    def OtherCloudMachineCnt(self):
        warnings.warn("parameter `OtherCloudMachineCnt` is deprecated", DeprecationWarning) 

        r"""<p>其他云服务商机器数</p>
        :rtype: int
        """
        return self._OtherCloudMachineCnt

    @OtherCloudMachineCnt.setter
    def OtherCloudMachineCnt(self, OtherCloudMachineCnt):
        warnings.warn("parameter `OtherCloudMachineCnt` is deprecated", DeprecationWarning) 

        self._OtherCloudMachineCnt = OtherCloudMachineCnt

    @property
    def ProtectMachineCnt(self):
        r"""<p>已防护机器数</p>
        :rtype: int
        """
        return self._ProtectMachineCnt

    @ProtectMachineCnt.setter
    def ProtectMachineCnt(self, ProtectMachineCnt):
        self._ProtectMachineCnt = ProtectMachineCnt

    @property
    def BaseMachineCnt(self):
        r"""<p>已防护基础版机器数</p>
        :rtype: int
        """
        return self._BaseMachineCnt

    @BaseMachineCnt.setter
    def BaseMachineCnt(self, BaseMachineCnt):
        self._BaseMachineCnt = BaseMachineCnt

    @property
    def SpecialtyMachineCnt(self):
        r"""<p>已防护专业版机器数</p>
        :rtype: int
        """
        return self._SpecialtyMachineCnt

    @SpecialtyMachineCnt.setter
    def SpecialtyMachineCnt(self, SpecialtyMachineCnt):
        self._SpecialtyMachineCnt = SpecialtyMachineCnt

    @property
    def FlagshipMachineCnt(self):
        r"""<p>已防护旗舰版机器数</p>
        :rtype: int
        """
        return self._FlagshipMachineCnt

    @FlagshipMachineCnt.setter
    def FlagshipMachineCnt(self, FlagshipMachineCnt):
        self._FlagshipMachineCnt = FlagshipMachineCnt

    @property
    def RiskMachineCnt(self):
        r"""<p>存在风险的机器数</p>
        :rtype: int
        """
        return self._RiskMachineCnt

    @RiskMachineCnt.setter
    def RiskMachineCnt(self, RiskMachineCnt):
        self._RiskMachineCnt = RiskMachineCnt

    @property
    def CompareYesterdayRiskMachineCnt(self):
        r"""<p>比较昨日风险机器数</p>
        :rtype: int
        """
        return self._CompareYesterdayRiskMachineCnt

    @CompareYesterdayRiskMachineCnt.setter
    def CompareYesterdayRiskMachineCnt(self, CompareYesterdayRiskMachineCnt):
        self._CompareYesterdayRiskMachineCnt = CompareYesterdayRiskMachineCnt

    @property
    def CompareYesterdayNotProtectMachineCnt(self):
        r"""<p>比较昨日未防护机器数</p>
        :rtype: int
        """
        return self._CompareYesterdayNotProtectMachineCnt

    @CompareYesterdayNotProtectMachineCnt.setter
    def CompareYesterdayNotProtectMachineCnt(self, CompareYesterdayNotProtectMachineCnt):
        self._CompareYesterdayNotProtectMachineCnt = CompareYesterdayNotProtectMachineCnt

    @property
    def CompareYesterdayDeadlineMachineCnt(self):
        r"""<p>比较昨日即将到期的机器数</p>
        :rtype: int
        """
        return self._CompareYesterdayDeadlineMachineCnt

    @CompareYesterdayDeadlineMachineCnt.setter
    def CompareYesterdayDeadlineMachineCnt(self, CompareYesterdayDeadlineMachineCnt):
        self._CompareYesterdayDeadlineMachineCnt = CompareYesterdayDeadlineMachineCnt

    @property
    def DeadlineMachineCnt(self):
        r"""<p>即将到期的机器数</p>
        :rtype: int
        """
        return self._DeadlineMachineCnt

    @DeadlineMachineCnt.setter
    def DeadlineMachineCnt(self, DeadlineMachineCnt):
        self._DeadlineMachineCnt = DeadlineMachineCnt

    @property
    def NotProtectMachineCnt(self):
        r"""<p>未防护机器数</p>
        :rtype: int
        """
        return self._NotProtectMachineCnt

    @NotProtectMachineCnt.setter
    def NotProtectMachineCnt(self, NotProtectMachineCnt):
        self._NotProtectMachineCnt = NotProtectMachineCnt

    @property
    def LHGeneralDiscountCnt(self):
        r"""<p>已防护轻量机器数（Lighthouse机器）</p>
        :rtype: int
        """
        return self._LHGeneralDiscountCnt

    @LHGeneralDiscountCnt.setter
    def LHGeneralDiscountCnt(self, LHGeneralDiscountCnt):
        self._LHGeneralDiscountCnt = LHGeneralDiscountCnt

    @property
    def CompareYesterdayMachineCnt(self):
        r"""<p>比较昨日新增的主机数</p>
        :rtype: int
        """
        return self._CompareYesterdayMachineCnt

    @CompareYesterdayMachineCnt.setter
    def CompareYesterdayMachineCnt(self, CompareYesterdayMachineCnt):
        self._CompareYesterdayMachineCnt = CompareYesterdayMachineCnt

    @property
    def MachineDestroyAfterOfflineHours(self):
        r"""<p>自动清理时间,最大720小时,最小0, 默认0 ,0=关闭</p>
        :rtype: int
        """
        return self._MachineDestroyAfterOfflineHours

    @MachineDestroyAfterOfflineHours.setter
    def MachineDestroyAfterOfflineHours(self, MachineDestroyAfterOfflineHours):
        self._MachineDestroyAfterOfflineHours = MachineDestroyAfterOfflineHours

    @property
    def CloudFrom(self):
        r"""<p>云服务器类型数组</p>
        :rtype: list of CloudFromCnt
        """
        return self._CloudFrom

    @CloudFrom.setter
    def CloudFrom(self, CloudFrom):
        self._CloudFrom = CloudFrom

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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")
        if params.get("CloudFrom") is not None:
            self._CloudFrom = []
            for item in params.get("CloudFrom"):
                obj = CloudFromCnt()
                obj._deserialize(item)
                self._CloudFrom.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMachineInfoRequest(AbstractModel):
    r"""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):
        r"""主机安全客户端唯一Uuid。
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""Quuid , Uuid 必填一项
        :rtype: str
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""机器ip。
        :rtype: str
        """
        return self._MachineIp

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

    @property
    def ProtectDays(self):
        r"""受主机安全保护天数。
        :rtype: int
        """
        return self._ProtectDays

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

    @property
    def MachineOs(self):
        r"""操作系统。
        :rtype: str
        """
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def MachineName(self):
        r"""主机名称。
        :rtype: str
        """
        return self._MachineName

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

    @property
    def MachineStatus(self):
        r"""在线状态。
<li>ONLINE： 在线</li>
<li>OFFLINE：离线</li>
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def InstanceId(self):
        r"""CVM或BM主机唯一标识。
        :rtype: str
        """
        return self._InstanceId

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

    @property
    def MachineWanIp(self):
        r"""主机外网IP。
        :rtype: str
        """
        return self._MachineWanIp

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

    @property
    def Quuid(self):
        r"""CVM或BM主机唯一Uuid。
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机安全客户端唯一Uuid。
        :rtype: str
        """
        return self._Uuid

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

    @property
    def IsProVersion(self):
        r"""是否开通专业版。
<li>true：是</li>
<li>false：否</li>
        :rtype: bool
        """
        return self._IsProVersion

    @IsProVersion.setter
    def IsProVersion(self, IsProVersion):
        self._IsProVersion = IsProVersion

    @property
    def ProVersionOpenDate(self):
        r"""专业版开通时间。
        :rtype: str
        """
        return self._ProVersionOpenDate

    @ProVersionOpenDate.setter
    def ProVersionOpenDate(self, ProVersionOpenDate):
        self._ProVersionOpenDate = ProVersionOpenDate

    @property
    def MachineType(self):
        r"""云服务器类型。
<li>CVM: 腾讯云服务器</li>
<li>BM: 黑石物理机</li>
<li>ECM: 边缘计算服务器</li>
<li>LH: 轻量应用服务器</li>
<li>Other: 混合云机器</li>
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        r"""机器所属地域。如：ap-guangzhou，ap-shanghai
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def PayMode(self):
        r"""主机状态。
<li>POSTPAY: 表示后付费，即按量计费  </li>
<li>PREPAY: 表示预付费，即包年包月</li>
        :rtype: str
        """
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def FreeMalwaresLeft(self):
        r"""免费木马剩余检测数量。
        :rtype: int
        """
        return self._FreeMalwaresLeft

    @FreeMalwaresLeft.setter
    def FreeMalwaresLeft(self, FreeMalwaresLeft):
        self._FreeMalwaresLeft = FreeMalwaresLeft

    @property
    def FreeVulsLeft(self):
        r"""免费漏洞剩余检测数量。
        :rtype: int
        """
        return self._FreeVulsLeft

    @FreeVulsLeft.setter
    def FreeVulsLeft(self, FreeVulsLeft):
        self._FreeVulsLeft = FreeVulsLeft

    @property
    def AgentVersion(self):
        r"""agent版本号
        :rtype: str
        """
        return self._AgentVersion

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

    @property
    def ProVersionDeadline(self):
        r"""专业版到期时间(仅预付费)
        :rtype: str
        """
        return self._ProVersionDeadline

    @ProVersionDeadline.setter
    def ProVersionDeadline(self, ProVersionDeadline):
        self._ProVersionDeadline = ProVersionDeadline

    @property
    def HasAssetScan(self):
        r"""是否有资产扫描记录，0无，1有
        :rtype: int
        """
        return self._HasAssetScan

    @HasAssetScan.setter
    def HasAssetScan(self, HasAssetScan):
        self._HasAssetScan = HasAssetScan

    @property
    def ProtectType(self):
        r"""防护版本：BASIC_VERSION 基础版，PRO_VERSION 专业版，Flagship 旗舰版，GENERAL_DISCOUNT 轻量版
        :rtype: str
        """
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachineLicenseDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuids: 主机quuid
        :type Quuids: list of str
        """
        self._Quuids = None

    @property
    def Quuids(self):
        r"""主机quuid
        :rtype: list of str
        """
        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):
    r"""DescribeMachineLicenseDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineLicense: 授权信息
        :type MachineLicense: list of MachineLicenseDetail
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MachineLicense = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def MachineLicense(self):
        r"""授权信息
        :rtype: list of MachineLicenseDetail
        """
        return self._MachineLicense

    @MachineLicense.setter
    def MachineLicense(self, MachineLicense):
        self._MachineLicense = MachineLicense

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""云主机类型。
<li>CVM：表示虚拟主机</li>
<li>BM:  表示黑石物理机</li>
<li>ECM:  表示边缘计算服务器</li>
<li>LH:  表示轻量应用服务器</li>
<li>Other:  表示混合云机器</li>
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        r"""机器所属地域。如：ap-guangzhou，ap-shanghai
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 查询关键字 </li>
<li>Status - String - 是否必填：否 - 客户端在线状态（OFFLINE: 离线 | ONLINE: 在线 | UNINSTALLED：未安装）</li>
<li>Version - String  是否必填：否 - 当前防护版本（ PRO_VERSION：专业版 | BASIC_VERSION：基础版）</li>
每个过滤条件只支持一个值，暂不支持多个值“或”关系查询
        :rtype: list of AssetFilters
        """
        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):
    r"""DescribeMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Machines: 主机列表
        :type Machines: list of Machine
        :param _TotalCount: 主机数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Machines = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Machines(self):
        r"""主机列表
        :rtype: list of Machine
        """
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def TotalCount(self):
        r"""主机数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachineOsList请求参数结构体

    """


class DescribeMachineOsListResponse(AbstractModel):
    r"""DescribeMachineOsList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: <p>操作系统列表</p>
        :type List: list of OsName
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""<p>操作系统列表</p>
        :rtype: list of OsName
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachineRegionList请求参数结构体

    """


class DescribeMachineRegionListResponse(AbstractModel):
    r"""DescribeMachineRegionList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RegionList: 云服务器类型地域列表
        :type RegionList: list of RegionListDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RegionList = None
        self._RequestId = None

    @property
    def RegionList(self):
        r"""云服务器类型地域列表
        :rtype: list of RegionListDetail
        """
        return self._RegionList

    @RegionList.setter
    def RegionList(self, RegionList):
        self._RegionList = RegionList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachineRegions请求参数结构体

    """


class DescribeMachineRegionsResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""CVM 云服务器地域列表
        :rtype: list of RegionInfo
        """
        return self._CVM

    @CVM.setter
    def CVM(self, CVM):
        self._CVM = CVM

    @property
    def BM(self):
        r"""BM 黑石机器地域列表
        :rtype: list of RegionInfo
        """
        return self._BM

    @BM.setter
    def BM(self, BM):
        self._BM = BM

    @property
    def LH(self):
        r"""LH 轻量应用服务器地域列表
        :rtype: list of RegionInfo
        """
        return self._LH

    @LH.setter
    def LH(self, LH):
        self._LH = LH

    @property
    def ECM(self):
        r"""ECM 边缘计算服务器地域列表
        :rtype: list of RegionInfo
        """
        return self._ECM

    @ECM.setter
    def ECM(self, ECM):
        self._ECM = ECM

    @property
    def Other(self):
        r"""Other 混合云地域列表
        :rtype: list of RegionInfo
        """
        return self._Other

    @Other.setter
    def Other(self, Other):
        self._Other = Other

    @property
    def ALL(self):
        r"""所有地域列表(包含以上所有地域)
        :rtype: list of RegionInfo
        """
        return self._ALL

    @ALL.setter
    def ALL(self, ALL):
        self._ALL = ALL

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachineRiskCnt请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Uuids- String - 是否必填：否 - 主机uuid</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤条件。
<li>Uuids- String - 是否必填：否 - 主机uuid</li>
        :rtype: list of Filter
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""异地登录
        :rtype: int
        """
        return self._HostLogin

    @HostLogin.setter
    def HostLogin(self, HostLogin):
        self._HostLogin = HostLogin

    @property
    def BruteAttack(self):
        r"""密码破解
        :rtype: int
        """
        return self._BruteAttack

    @BruteAttack.setter
    def BruteAttack(self, BruteAttack):
        self._BruteAttack = BruteAttack

    @property
    def MaliciousRequest(self):
        r"""恶意请求
        :rtype: int
        """
        return self._MaliciousRequest

    @MaliciousRequest.setter
    def MaliciousRequest(self, MaliciousRequest):
        self._MaliciousRequest = MaliciousRequest

    @property
    def ReverseShell(self):
        r"""反弹shell
        :rtype: int
        """
        return self._ReverseShell

    @ReverseShell.setter
    def ReverseShell(self, ReverseShell):
        self._ReverseShell = ReverseShell

    @property
    def Bash(self):
        r"""高危命令
        :rtype: int
        """
        return self._Bash

    @Bash.setter
    def Bash(self, Bash):
        self._Bash = Bash

    @property
    def PrivilegeEscalation(self):
        r"""本地提权
        :rtype: int
        """
        return self._PrivilegeEscalation

    @PrivilegeEscalation.setter
    def PrivilegeEscalation(self, PrivilegeEscalation):
        self._PrivilegeEscalation = PrivilegeEscalation

    @property
    def Malware(self):
        r"""木马
        :rtype: int
        """
        return self._Malware

    @Malware.setter
    def Malware(self, Malware):
        self._Malware = Malware

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""cvm id 集合
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def Type(self):
        r"""查询快照类型0 最近一个 1所有
        :rtype: int
        """
        return self._Type

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

    @property
    def Limit(self):
        r"""分页个数
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页步长
        :rtype: int
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._SnapshotCheck = None
        self._RequestId = None

    @property
    def List(self):
        r"""主机快照列表
        :rtype: list of MachineSnapshotInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总个数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def SnapshotCheck(self):
        r"""是否都有24小时内创建的快照
        :rtype: bool
        """
        return self._SnapshotCheck

    @SnapshotCheck.setter
    def SnapshotCheck(self, SnapshotCheck):
        self._SnapshotCheck = SnapshotCheck

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineType: <p>机器所属专区类型<br>CVM 云服务器<br>BM 黑石<br>ECM 边缘计算<br>LH 轻量应用服务器<br>Other 混合云专区</p>
        :type MachineType: str
        :param _MachineRegion: <p>机器所属地域。如：ap-guangzhou，ap-shanghai，非腾讯云主机使用：ap-others</p>
        :type MachineRegion: str
        :param _Limit: <p>返回数量，默认为10，最大值为100。</p>
        :type Limit: int
        :param _Offset: <p>偏移量，默认为0。</p>
        :type Offset: int
        :param _Filters: <p>过滤条件。</p><li>Ips - String - 是否必填：否 - 通过ip查询 </li><li>Names - String - 是否必填：否 - 通过实例名查询 </li><li>InstanceIds - String - 是否必填：否 - 通过实例id查询 </li><li>Version - String  是否必填：否 - 当前防护版本（ PRO_VERSION：专业版 | BASIC_VERSION：基础版 | Flagship : 旗舰版 | ProtectedMachines: 专业版+旗舰版）</li><li>Risk - String 是否必填: 否 - 风险主机( yes ) </li><li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )每个过滤条件只支持一个值，暂不支持多个值“或”关系查询</li><li>Quuid - String - 是否必填: 否 - 云服务器uuid  最大100条.</li><li>AddedOnTheFifteen- String 是否必填: 否 - 是否只查询15天内新增的主机( 1：是) </li><li> TagId- String 是否必填: 否 - 查询指定标签关联的主机列表 </li><li> AgentStatus- String 是否必填: 否 - ALL 全部; ONLINE 防护中; OFFLINE 已离线;UNINSTALLED 未安装</li><li> MachineStatus- String 是否必填: 否 - ALL 全部; RUNNING 运行中; STOPPED 已关机; EXPIRED 待回收</li>
        :type Filters: list of Filter
        :param _ProjectIds: <p>机器所属业务ID列表</p>
        :type ProjectIds: list of int non-negative
        :param _MachineAppId: <p>机器对应的APPID</p>
        :type MachineAppId: int
        """
        self._MachineType = None
        self._MachineRegion = None
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._ProjectIds = None
        self._MachineAppId = None

    @property
    def MachineType(self):
        r"""<p>机器所属专区类型<br>CVM 云服务器<br>BM 黑石<br>ECM 边缘计算<br>LH 轻量应用服务器<br>Other 混合云专区</p>
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        r"""<p>机器所属地域。如：ap-guangzhou，ap-shanghai，非腾讯云主机使用：ap-others</p>
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Limit(self):
        r"""<p>返回数量，默认为10，最大值为100。</p>
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""<p>偏移量，默认为0。</p>
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""<p>过滤条件。</p><li>Ips - String - 是否必填：否 - 通过ip查询 </li><li>Names - String - 是否必填：否 - 通过实例名查询 </li><li>InstanceIds - String - 是否必填：否 - 通过实例id查询 </li><li>Version - String  是否必填：否 - 当前防护版本（ PRO_VERSION：专业版 | BASIC_VERSION：基础版 | Flagship : 旗舰版 | ProtectedMachines: 专业版+旗舰版）</li><li>Risk - String 是否必填: 否 - 风险主机( yes ) </li><li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )每个过滤条件只支持一个值，暂不支持多个值“或”关系查询</li><li>Quuid - String - 是否必填: 否 - 云服务器uuid  最大100条.</li><li>AddedOnTheFifteen- String 是否必填: 否 - 是否只查询15天内新增的主机( 1：是) </li><li> TagId- String 是否必填: 否 - 查询指定标签关联的主机列表 </li><li> AgentStatus- String 是否必填: 否 - ALL 全部; ONLINE 防护中; OFFLINE 已离线;UNINSTALLED 未安装</li><li> MachineStatus- String 是否必填: 否 - ALL 全部; RUNNING 运行中; STOPPED 已关机; EXPIRED 待回收</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ProjectIds(self):
        r"""<p>机器所属业务ID列表</p>
        :rtype: list of int non-negative
        """
        return self._ProjectIds

    @ProjectIds.setter
    def ProjectIds(self, ProjectIds):
        self._ProjectIds = ProjectIds

    @property
    def MachineAppId(self):
        r"""<p>机器对应的APPID</p>
        :rtype: int
        """
        return self._MachineAppId

    @MachineAppId.setter
    def MachineAppId(self, MachineAppId):
        self._MachineAppId = MachineAppId


    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")
        self._MachineAppId = params.get("MachineAppId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""DescribeMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Machines: <p>主机列表</p>
        :type Machines: list of Machine
        :param _TotalCount: <p>主机数量</p>
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Machines = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Machines(self):
        r"""<p>主机列表</p>
        :rtype: list of Machine
        """
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def TotalCount(self):
        r"""<p>主机数量</p>
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMachinesSimple请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineType: 机器所属专区类型 
CVM 云服务器
BM 黑石
ECM 边缘计算
LH 轻量应用服务器
Other 混合云专区
        :type MachineType: str
        :param _MachineRegion: 机器所属地域。如：ap-guangzhou，ap-shangha，非腾讯云主机使用：ap-others
        :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):
        r"""机器所属专区类型 
CVM 云服务器
BM 黑石
ECM 边缘计算
LH 轻量应用服务器
Other 混合云专区
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        r"""机器所属地域。如：ap-guangzhou，ap-shangha，非腾讯云主机使用：ap-others
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ProjectIds(self):
        r"""机器所属业务ID列表
        :rtype: list of int non-negative
        """
        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):
    r"""DescribeMachinesSimple返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Machines: 主机列表
        :type Machines: list of MachineSimple
        :param _TotalCount: 主机数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Machines = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Machines(self):
        r"""主机列表
        :rtype: list of MachineSimple
        """
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def TotalCount(self):
        r"""主机数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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恢复隔离中,14 已处理</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):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>FilePath - String - 是否必填：否 - 路径筛选</li>
<li>VirusName - String - 是否必填：否 - 描述筛选</li>
<li>CreateBeginTime - String - 是否必填：否 - 创建时间筛选-开始时间</li>
<li>CreateEndTime - String - 是否必填：否 - 创建时间筛选-结束时间</li>
<li>Status - String - 是否必填：否 - 状态筛选 4待处理,5信任,6已隔离,10隔离中,11恢复隔离中,14 已处理</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""检测排序 CreateTime
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序方式 ASC,DESC
        :rtype: str
        """
        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):
    r"""DescribeMalWareList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MalWareList: 木马列表
        :type MalWareList: list of MalWareList
        :param _TotalCount: 总数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MalWareList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def MalWareList(self):
        r"""木马列表
        :rtype: list of MalWareList
        """
        return self._MalWareList

    @MalWareList.setter
    def MalWareList(self, MalWareList):
        self._MalWareList = MalWareList

    @property
    def TotalCount(self):
        r"""总数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。

<li>Domain  - String - 基线名称</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式 [asc:升序|desc:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段
        :rtype: str
        """
        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):
    r"""DescribeMaliciousRequestWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 白名单信息列表
        :type List: list of MaliciousRequestWhiteListInfo
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""白名单信息列表
        :rtype: list of MaliciousRequestWhiteListInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMalwareFile请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 木马记录ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""木马记录ID
        :rtype: int
        """
        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):
    r"""DescribeMalwareFile返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileUrl: 木马文件下载地址
        :type FileUrl: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileUrl = None
        self._RequestId = None

    @property
    def FileUrl(self):
        r"""木马文件下载地址
        :rtype: str
        """
        return self._FileUrl

    @FileUrl.setter
    def FileUrl(self, FileUrl):
        self._FileUrl = FileUrl

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMalwareInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""唯一ID
        :rtype: int
        """
        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):
    r"""DescribeMalwareInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MalwareInfo: 恶意文件详情信息
        :type MalwareInfo: :class:`tencentcloud.cwp.v20180228.models.MalwareInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MalwareInfo = None
        self._RequestId = None

    @property
    def MalwareInfo(self):
        r"""恶意文件详情信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MalwareInfo`
        """
        return self._MalwareInfo

    @MalwareInfo.setter
    def MalwareInfo(self, MalwareInfo):
        self._MalwareInfo = MalwareInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMalwareRiskOverview请求参数结构体

    """


class DescribeMalwareRiskOverviewResponse(AbstractModel):
    r"""DescribeMalwareRiskOverview返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 无
        :type Data: :class:`tencentcloud.cwp.v20180228.models.MalwareRiskOverview`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""无
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MalwareRiskOverview`
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMalwareRiskWarning请求参数结构体

    """


class DescribeMalwareRiskWarningResponse(AbstractModel):
    r"""DescribeMalwareRiskWarning返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsCheckRisk: 是否开启自动扫描：true-开启，false-未开启
        :type IsCheckRisk: bool
        :param _List: 风险文件列表信息
        :type List: list of MalwareRisk
        :param _IsPop: 是否弹出提示 true 弹出, false不弹
        :type IsPop: bool
        :param _ProcessList: 异常进程列表信息
        :type ProcessList: list of MalwareRisk
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsCheckRisk = None
        self._List = None
        self._IsPop = None
        self._ProcessList = None
        self._RequestId = None

    @property
    def IsCheckRisk(self):
        r"""是否开启自动扫描：true-开启，false-未开启
        :rtype: bool
        """
        return self._IsCheckRisk

    @IsCheckRisk.setter
    def IsCheckRisk(self, IsCheckRisk):
        self._IsCheckRisk = IsCheckRisk

    @property
    def List(self):
        r"""风险文件列表信息
        :rtype: list of MalwareRisk
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def IsPop(self):
        r"""是否弹出提示 true 弹出, false不弹
        :rtype: bool
        """
        return self._IsPop

    @IsPop.setter
    def IsPop(self, IsPop):
        self._IsPop = IsPop

    @property
    def ProcessList(self):
        r"""异常进程列表信息
        :rtype: list of MalwareRisk
        """
        return self._ProcessList

    @ProcessList.setter
    def ProcessList(self, ProcessList):
        self._ProcessList = ProcessList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeMalwareTimingScanSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ProductType: <p>产品类型 0-主机安全(默认) 1-安全中心</p>
        :type ProductType: int
        """
        self._ProductType = None

    @property
    def ProductType(self):
        r"""<p>产品类型 0-主机安全(默认) 1-安全中心</p>
        :rtype: int
        """
        return self._ProductType

    @ProductType.setter
    def ProductType(self, ProductType):
        self._ProductType = ProductType


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


class DescribeMalwareTimingScanSettingResponse(AbstractModel):
    r"""DescribeMalwareTimingScanSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CheckPattern: <p>检测模式 0 全盘检测  1快速检测</p>
        :type CheckPattern: int
        :param _StartTime: <p>检测周期 开始时间</p>
        :type StartTime: str
        :param _EndTime: <p>检测周期 超时结束时间</p>
        :type EndTime: str
        :param _IsGlobal: <p>是否全部服务器 1 全部 2 自选</p>
        :type IsGlobal: int
        :param _QuuidList: <p>自选服务器时必须 主机quuid的string数组</p>
        :type QuuidList: list of str
        :param _MonitoringPattern: <p>监控模式 0 标准 1深度</p>
        :type MonitoringPattern: int
        :param _Cycle: <p>周期 1每天</p>
        :type Cycle: int
        :param _EnableScan: <p>定时检测开关 0 关闭1 开启</p>
        :type EnableScan: int
        :param _Id: <p>唯一ID</p>
        :type Id: int
        :param _RealTimeMonitoring: <p>实时监控0 关闭 1开启</p>
        :type RealTimeMonitoring: int
        :param _AutoIsolation: <p>是否自动隔离：1-是，0-否</p>
        :type AutoIsolation: int
        :param _ClickTimeout: <p>一键扫描超时时长，如：1800秒（s）</p>
        :type ClickTimeout: int
        :param _KillProcess: <p>是否杀掉进程 1杀掉 0不杀掉 只有开启自动隔离才生效</p>
        :type KillProcess: int
        :param _EngineType: <p>1标准模式（只报严重、高危）、2增强模式（报严重、高危、中危）、3严格模式（报严重、高、中、低、提示）</p>
        :type EngineType: int
        :param _EnableInspiredEngine: <p>启发引擎 0 关闭 1开启</p>
        :type EnableInspiredEngine: int
        :param _EnableMemShellScan: <p>是否开启恶意进程查杀[0:未开启,1:开启]</p>
        :type EnableMemShellScan: int
        :param _ProtectMode: <p>防护模式 0 标准 1 重保</p>
        :type ProtectMode: int
        :param _ProtectFileScope: <p>查杀范围 0 脚本类之外的恶意文件，1全部恶意文件</p>
        :type ProtectFileScope: int
        :param _DoClean: <p>执行清理开关 0未开启 1开启</p>
        :type DoClean: int
        :param _QuaraUuids: <p>自选的隔离主机集合</p>
        :type QuaraUuids: list of str
        :param _QuaraScope: <p>用户选择的隔离范围，0：默认全隔离 1：用户自选</p>
        :type QuaraScope: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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._ProtectMode = None
        self._ProtectFileScope = None
        self._DoClean = None
        self._QuaraUuids = None
        self._QuaraScope = None
        self._RequestId = None

    @property
    def CheckPattern(self):
        r"""<p>检测模式 0 全盘检测  1快速检测</p>
        :rtype: int
        """
        return self._CheckPattern

    @CheckPattern.setter
    def CheckPattern(self, CheckPattern):
        self._CheckPattern = CheckPattern

    @property
    def StartTime(self):
        r"""<p>检测周期 开始时间</p>
        :rtype: str
        """
        return self._StartTime

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

    @property
    def EndTime(self):
        r"""<p>检测周期 超时结束时间</p>
        :rtype: str
        """
        return self._EndTime

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

    @property
    def IsGlobal(self):
        r"""<p>是否全部服务器 1 全部 2 自选</p>
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def QuuidList(self):
        r"""<p>自选服务器时必须 主机quuid的string数组</p>
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def MonitoringPattern(self):
        r"""<p>监控模式 0 标准 1深度</p>
        :rtype: int
        """
        return self._MonitoringPattern

    @MonitoringPattern.setter
    def MonitoringPattern(self, MonitoringPattern):
        self._MonitoringPattern = MonitoringPattern

    @property
    def Cycle(self):
        r"""<p>周期 1每天</p>
        :rtype: int
        """
        return self._Cycle

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

    @property
    def EnableScan(self):
        r"""<p>定时检测开关 0 关闭1 开启</p>
        :rtype: int
        """
        return self._EnableScan

    @EnableScan.setter
    def EnableScan(self, EnableScan):
        self._EnableScan = EnableScan

    @property
    def Id(self):
        r"""<p>唯一ID</p>
        :rtype: int
        """
        return self._Id

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

    @property
    def RealTimeMonitoring(self):
        r"""<p>实时监控0 关闭 1开启</p>
        :rtype: int
        """
        return self._RealTimeMonitoring

    @RealTimeMonitoring.setter
    def RealTimeMonitoring(self, RealTimeMonitoring):
        self._RealTimeMonitoring = RealTimeMonitoring

    @property
    def AutoIsolation(self):
        r"""<p>是否自动隔离：1-是，0-否</p>
        :rtype: int
        """
        return self._AutoIsolation

    @AutoIsolation.setter
    def AutoIsolation(self, AutoIsolation):
        self._AutoIsolation = AutoIsolation

    @property
    def ClickTimeout(self):
        r"""<p>一键扫描超时时长，如：1800秒（s）</p>
        :rtype: int
        """
        return self._ClickTimeout

    @ClickTimeout.setter
    def ClickTimeout(self, ClickTimeout):
        self._ClickTimeout = ClickTimeout

    @property
    def KillProcess(self):
        r"""<p>是否杀掉进程 1杀掉 0不杀掉 只有开启自动隔离才生效</p>
        :rtype: int
        """
        return self._KillProcess

    @KillProcess.setter
    def KillProcess(self, KillProcess):
        self._KillProcess = KillProcess

    @property
    def EngineType(self):
        r"""<p>1标准模式（只报严重、高危）、2增强模式（报严重、高危、中危）、3严格模式（报严重、高、中、低、提示）</p>
        :rtype: int
        """
        return self._EngineType

    @EngineType.setter
    def EngineType(self, EngineType):
        self._EngineType = EngineType

    @property
    def EnableInspiredEngine(self):
        r"""<p>启发引擎 0 关闭 1开启</p>
        :rtype: int
        """
        return self._EnableInspiredEngine

    @EnableInspiredEngine.setter
    def EnableInspiredEngine(self, EnableInspiredEngine):
        self._EnableInspiredEngine = EnableInspiredEngine

    @property
    def EnableMemShellScan(self):
        r"""<p>是否开启恶意进程查杀[0:未开启,1:开启]</p>
        :rtype: int
        """
        return self._EnableMemShellScan

    @EnableMemShellScan.setter
    def EnableMemShellScan(self, EnableMemShellScan):
        self._EnableMemShellScan = EnableMemShellScan

    @property
    def ProtectMode(self):
        r"""<p>防护模式 0 标准 1 重保</p>
        :rtype: int
        """
        return self._ProtectMode

    @ProtectMode.setter
    def ProtectMode(self, ProtectMode):
        self._ProtectMode = ProtectMode

    @property
    def ProtectFileScope(self):
        r"""<p>查杀范围 0 脚本类之外的恶意文件，1全部恶意文件</p>
        :rtype: int
        """
        return self._ProtectFileScope

    @ProtectFileScope.setter
    def ProtectFileScope(self, ProtectFileScope):
        self._ProtectFileScope = ProtectFileScope

    @property
    def DoClean(self):
        r"""<p>执行清理开关 0未开启 1开启</p>
        :rtype: int
        """
        return self._DoClean

    @DoClean.setter
    def DoClean(self, DoClean):
        self._DoClean = DoClean

    @property
    def QuaraUuids(self):
        r"""<p>自选的隔离主机集合</p>
        :rtype: list of str
        """
        return self._QuaraUuids

    @QuaraUuids.setter
    def QuaraUuids(self, QuaraUuids):
        self._QuaraUuids = QuaraUuids

    @property
    def QuaraScope(self):
        r"""<p>用户选择的隔离范围，0：默认全隔离 1：用户自选</p>
        :rtype: int
        """
        return self._QuaraScope

    @QuaraScope.setter
    def QuaraScope(self, QuaraScope):
        self._QuaraScope = QuaraScope

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._ProtectMode = params.get("ProtectMode")
        self._ProtectFileScope = params.get("ProtectFileScope")
        self._DoClean = params.get("DoClean")
        self._QuaraUuids = params.get("QuaraUuids")
        self._QuaraScope = params.get("QuaraScope")
        self._RequestId = params.get("RequestId")


class DescribeMalwareWhiteListAffectListRequest(AbstractModel):
    r"""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):
        r"""白名单规则id
        :rtype: int
        """
        return self._WhiteListId

    @WhiteListId.setter
    def WhiteListId(self, WhiteListId):
        self._WhiteListId = WhiteListId

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [CreateTime]
        :rtype: str
        """
        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):
    r"""DescribeMalwareWhiteListAffectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总记录数
        :type TotalCount: int
        :param _AffectList: 白名单规则影响事件列表
        :type AffectList: list of MalwareWhiteListAffectEvent
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._AffectList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总记录数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def AffectList(self):
        r"""白名单规则影响事件列表
        :rtype: list of MalwareWhiteListAffectEvent
        """
        return self._AffectList

    @AffectList.setter
    def AffectList(self, AffectList):
        self._AffectList = AffectList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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|CreateTime|ModifyTime]
        :type By: str
        """
        self._Offset = None
        self._Limit = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [EventsCount|CreateTime|ModifyTime]
        :rtype: str
        """
        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):
    r"""DescribeMalwareWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总记录数
        :type TotalCount: int
        :param _WhiteList: 白名单列表
        :type WhiteList: list of MalwareWhiteListInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._WhiteList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总记录数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def WhiteList(self):
        r"""白名单列表
        :rtype: list of MalwareWhiteListInfo
        """
        return self._WhiteList

    @WhiteList.setter
    def WhiteList(self, WhiteList):
        self._WhiteList = WhiteList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeMemShellRulesRequest(AbstractModel):
    r"""DescribeMemShellRules请求参数结构体

    """

    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
        :param _By: 排序字段，目前有：CreateTime、ModifyTime，默认按照ModifyTime排序
        :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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(进程名称)</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""排序字段，目前有：CreateTime、ModifyTime，默认按照ModifyTime排序
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序升序还是倒序，DESC有ASC、
        :rtype: str
        """
        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 DescribeMemShellRulesResponse(AbstractModel):
    r"""DescribeMemShellRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of MemShellRule
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of MemShellRule
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = MemShellRule()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNetAttackSettingRequest(AbstractModel):
    r"""DescribeNetAttackSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ProductType: <p>产品类型 0-主机安全 1-安全中心</p>
        :type ProductType: int
        """
        self._ProductType = None

    @property
    def ProductType(self):
        r"""<p>产品类型 0-主机安全 1-安全中心</p>
        :rtype: int
        """
        return self._ProductType

    @ProductType.setter
    def ProductType(self, ProductType):
        self._ProductType = ProductType


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


class DescribeNetAttackSettingResponse(AbstractModel):
    r"""DescribeNetAttackSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackEnable: <p>0 关闭网络攻击检测，1开启网络攻击检测</p>
        :type NetAttackEnable: int
        :param _NetAttackAlarmStatus: <p>0 新增告警事件默认待处理，1新增告警事件默认已处理，3新增告警事件默认忽略</p>
        :type NetAttackAlarmStatus: int
        :param _Scope: <p>1 全部旗舰版主机，0 InstanceIds列表主机</p>
        :type Scope: int
        :param _InstanceIds: <p>自选主机</p>
        :type InstanceIds: list of str
        :param _ExcludeInstanceIds: <p>自选排除主机</p>
        :type ExcludeInstanceIds: list of str
        :param _AutoInclude: <p>新增资产自动包含 0 不包含 1包含</p>
        :type AutoInclude: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetAttackEnable = None
        self._NetAttackAlarmStatus = None
        self._Scope = None
        self._InstanceIds = None
        self._ExcludeInstanceIds = None
        self._AutoInclude = None
        self._RequestId = None

    @property
    def NetAttackEnable(self):
        r"""<p>0 关闭网络攻击检测，1开启网络攻击检测</p>
        :rtype: int
        """
        return self._NetAttackEnable

    @NetAttackEnable.setter
    def NetAttackEnable(self, NetAttackEnable):
        self._NetAttackEnable = NetAttackEnable

    @property
    def NetAttackAlarmStatus(self):
        r"""<p>0 新增告警事件默认待处理，1新增告警事件默认已处理，3新增告警事件默认忽略</p>
        :rtype: int
        """
        return self._NetAttackAlarmStatus

    @NetAttackAlarmStatus.setter
    def NetAttackAlarmStatus(self, NetAttackAlarmStatus):
        self._NetAttackAlarmStatus = NetAttackAlarmStatus

    @property
    def Scope(self):
        r"""<p>1 全部旗舰版主机，0 InstanceIds列表主机</p>
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def InstanceIds(self):
        r"""<p>自选主机</p>
        :rtype: list of str
        """
        return self._InstanceIds

    @InstanceIds.setter
    def InstanceIds(self, InstanceIds):
        self._InstanceIds = InstanceIds

    @property
    def ExcludeInstanceIds(self):
        r"""<p>自选排除主机</p>
        :rtype: list of str
        """
        return self._ExcludeInstanceIds

    @ExcludeInstanceIds.setter
    def ExcludeInstanceIds(self, ExcludeInstanceIds):
        self._ExcludeInstanceIds = ExcludeInstanceIds

    @property
    def AutoInclude(self):
        r"""<p>新增资产自动包含 0 不包含 1包含</p>
        :rtype: int
        """
        return self._AutoInclude

    @AutoInclude.setter
    def AutoInclude(self, AutoInclude):
        self._AutoInclude = AutoInclude

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._Scope = params.get("Scope")
        self._InstanceIds = params.get("InstanceIds")
        self._ExcludeInstanceIds = params.get("ExcludeInstanceIds")
        self._AutoInclude = params.get("AutoInclude")
        self._RequestId = params.get("RequestId")


class DescribeNetAttackWhiteListRequest(AbstractModel):
    r"""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):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        r"""过滤条件。
<li>IP - String - 是否必填：否 - 主机ip查询 </li>
<li>SrcIP- String - 是否必填：否 - 白名单ip查询 </li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [CreateTime]
        :rtype: str
        """
        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):
    r"""DescribeNetAttackWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总记录数
        :type TotalCount: int
        :param _WhiteList: 白名单列表
        :type WhiteList: list of NetAttackWhiteRule
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._WhiteList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总记录数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def WhiteList(self):
        r"""白名单列表
        :rtype: list of NetAttackWhiteRule
        """
        return self._WhiteList

    @WhiteList.setter
    def WhiteList(self, WhiteList):
        self._WhiteList = WhiteList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Port - Uint64 - 是否必填：否 - 端口号</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeOpenPortStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 端口统计列表总数
        :type TotalCount: int
        :param _OpenPortStatistics: 端口统计数据列表
        :type OpenPortStatistics: list of OpenPortStatistics
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._OpenPortStatistics = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""端口统计列表总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def OpenPortStatistics(self):
        r"""端口统计数据列表
        :rtype: list of OpenPortStatistics
        """
        return self._OpenPortStatistics

    @OpenPortStatistics.setter
    def OpenPortStatistics(self, OpenPortStatistics):
        self._OpenPortStatistics = OpenPortStatistics

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeOverviewStatistics请求参数结构体

    """


class DescribeOverviewStatisticsResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""服务器在线数。
        :rtype: int
        """
        return self._OnlineMachineNum

    @OnlineMachineNum.setter
    def OnlineMachineNum(self, OnlineMachineNum):
        self._OnlineMachineNum = OnlineMachineNum

    @property
    def ProVersionMachineNum(self):
        r"""专业服务器数。
        :rtype: int
        """
        return self._ProVersionMachineNum

    @ProVersionMachineNum.setter
    def ProVersionMachineNum(self, ProVersionMachineNum):
        self._ProVersionMachineNum = ProVersionMachineNum

    @property
    def MalwareNum(self):
        r"""木马文件数。
        :rtype: int
        """
        return self._MalwareNum

    @MalwareNum.setter
    def MalwareNum(self, MalwareNum):
        self._MalwareNum = MalwareNum

    @property
    def NonlocalLoginNum(self):
        r"""异地登录数。
        :rtype: int
        """
        return self._NonlocalLoginNum

    @NonlocalLoginNum.setter
    def NonlocalLoginNum(self, NonlocalLoginNum):
        self._NonlocalLoginNum = NonlocalLoginNum

    @property
    def BruteAttackSuccessNum(self):
        r"""暴力破解成功数。
        :rtype: int
        """
        return self._BruteAttackSuccessNum

    @BruteAttackSuccessNum.setter
    def BruteAttackSuccessNum(self, BruteAttackSuccessNum):
        self._BruteAttackSuccessNum = BruteAttackSuccessNum

    @property
    def VulNum(self):
        r"""漏洞数。
        :rtype: int
        """
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def BaseLineNum(self):
        r"""安全基线数。
        :rtype: int
        """
        return self._BaseLineNum

    @BaseLineNum.setter
    def BaseLineNum(self, BaseLineNum):
        self._BaseLineNum = BaseLineNum

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribePatchEffectHostListRequest(AbstractModel):
    r"""DescribePatchEffectHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _KbId: 补丁id
        :type KbId: int
        :param _Limit: 分页limit 最大100
        :type Limit: int
        :param _Offset: 分页偏移量
        :type Offset: int
        :param _Filters: 过滤条件：  
<li>HostVersion : uint64类型 非必填 版本信息 : 0-基础版 1-专业版 2-旗舰版 3-轻量版 </li>
<li>InstanceState : string类型 非必填 主机状态 : "PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-开机中 "STOPPING"-关机中 "REBOOTING"-重启中 "SHUTDOWN"-待销毁 "TERMINATING"-销毁中 "UNKNOWN"-未知（针对非腾讯云机器，且客户端离线的场景）</li>
<li>Status : uint64类型 非必填 处理状态 0表示待处理，1表示忽略，3表示已修复</li>
<li>HostName : string类型 非必填 主机名称</li>
<li>InstanceID : string类型 非必填 主机id</li>
<li>IpAddress : string类型 非必填 主机的ip地址</li>
<li>Uuid : string类型 非必填 主机uuid</li>
        :type Filters: list of Filter
        """
        self._KbId = None
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def KbId(self):
        r"""补丁id
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId

    @property
    def Limit(self):
        r"""分页limit 最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页偏移量
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件：  
<li>HostVersion : uint64类型 非必填 版本信息 : 0-基础版 1-专业版 2-旗舰版 3-轻量版 </li>
<li>InstanceState : string类型 非必填 主机状态 : "PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-开机中 "STOPPING"-关机中 "REBOOTING"-重启中 "SHUTDOWN"-待销毁 "TERMINATING"-销毁中 "UNKNOWN"-未知（针对非腾讯云机器，且客户端离线的场景）</li>
<li>Status : uint64类型 非必填 处理状态 0表示待处理，1表示忽略，3表示已修复</li>
<li>HostName : string类型 非必填 主机名称</li>
<li>InstanceID : string类型 非必填 主机id</li>
<li>IpAddress : string类型 非必填 主机的ip地址</li>
<li>Uuid : string类型 非必填 主机uuid</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._KbId = params.get("KbId")
        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 DescribePatchEffectHostListResponse(AbstractModel):
    r"""DescribePatchEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 影响主机总数
        :type TotalCount: int
        :param _PatchEffectHostList: 补丁影响主机列表
        :type PatchEffectHostList: list of PatchEffectHostList
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._PatchEffectHostList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""影响主机总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def PatchEffectHostList(self):
        r"""补丁影响主机列表
        :rtype: list of PatchEffectHostList
        """
        return self._PatchEffectHostList

    @PatchEffectHostList.setter
    def PatchEffectHostList(self, PatchEffectHostList):
        self._PatchEffectHostList = PatchEffectHostList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


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


class DescribePatchInfoRequest(AbstractModel):
    r"""DescribePatchInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _KbId: 补丁id
        :type KbId: int
        """
        self._KbId = None

    @property
    def KbId(self):
        r"""补丁id
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId


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


class DescribePatchInfoResponse(AbstractModel):
    r"""DescribePatchInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _KbNo: kb编号
        :type KbNo: str
        :param _PatchName: kb名称
        :type PatchName: str
        :param _PublishTime: kb 发布日期
        :type PublishTime: str
        :param _ReferUrl: 参考链接
        :type ReferUrl: str
        :param _VulCount: 包含漏洞数
        :type VulCount: int
        :param _RelateVulInfoList: 补丁关联的漏洞详情列表
        :type RelateVulInfoList: list of RelateVulInfo
        :param _KbId: 补丁id
        :type KbId: int
        :param _RelateVulCveId: 关联的漏洞CveId，多个id由","分隔
        :type RelateVulCveId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._KbNo = None
        self._PatchName = None
        self._PublishTime = None
        self._ReferUrl = None
        self._VulCount = None
        self._RelateVulInfoList = None
        self._KbId = None
        self._RelateVulCveId = None
        self._RequestId = None

    @property
    def KbNo(self):
        r"""kb编号
        :rtype: str
        """
        return self._KbNo

    @KbNo.setter
    def KbNo(self, KbNo):
        self._KbNo = KbNo

    @property
    def PatchName(self):
        r"""kb名称
        :rtype: str
        """
        return self._PatchName

    @PatchName.setter
    def PatchName(self, PatchName):
        self._PatchName = PatchName

    @property
    def PublishTime(self):
        r"""kb 发布日期
        :rtype: str
        """
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def ReferUrl(self):
        r"""参考链接
        :rtype: str
        """
        return self._ReferUrl

    @ReferUrl.setter
    def ReferUrl(self, ReferUrl):
        self._ReferUrl = ReferUrl

    @property
    def VulCount(self):
        r"""包含漏洞数
        :rtype: int
        """
        return self._VulCount

    @VulCount.setter
    def VulCount(self, VulCount):
        self._VulCount = VulCount

    @property
    def RelateVulInfoList(self):
        r"""补丁关联的漏洞详情列表
        :rtype: list of RelateVulInfo
        """
        return self._RelateVulInfoList

    @RelateVulInfoList.setter
    def RelateVulInfoList(self, RelateVulInfoList):
        self._RelateVulInfoList = RelateVulInfoList

    @property
    def KbId(self):
        r"""补丁id
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId

    @property
    def RelateVulCveId(self):
        r"""关联的漏洞CveId，多个id由","分隔
        :rtype: str
        """
        return self._RelateVulCveId

    @RelateVulCveId.setter
    def RelateVulCveId(self, RelateVulCveId):
        self._RelateVulCveId = RelateVulCveId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._KbNo = params.get("KbNo")
        self._PatchName = params.get("PatchName")
        self._PublishTime = params.get("PublishTime")
        self._ReferUrl = params.get("ReferUrl")
        self._VulCount = params.get("VulCount")
        if params.get("RelateVulInfoList") is not None:
            self._RelateVulInfoList = []
            for item in params.get("RelateVulInfoList"):
                obj = RelateVulInfo()
                obj._deserialize(item)
                self._RelateVulInfoList.append(obj)
        self._KbId = params.get("KbId")
        self._RelateVulCveId = params.get("RelateVulCveId")
        self._RequestId = params.get("RequestId")


class DescribePrivilegeEventInfoRequest(AbstractModel):
    r"""DescribePrivilegeEventInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        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):
    r"""DescribePrivilegeEventInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PrivilegeEventInfo: 本地提权详情
        :type PrivilegeEventInfo: :class:`tencentcloud.cwp.v20180228.models.PrivilegeEventInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._PrivilegeEventInfo = None
        self._RequestId = None

    @property
    def PrivilegeEventInfo(self):
        r"""本地提权详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.PrivilegeEventInfo`
        """
        return self._PrivilegeEventInfo

    @PrivilegeEventInfo.setter
    def PrivilegeEventInfo(self, PrivilegeEventInfo):
        self._PrivilegeEventInfo = PrivilegeEventInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 关键词(主机IP)</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式：根据请求次数排序：asc-升序/desc-降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：CreateTime-发现时间
        :rtype: str
        """
        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):
    r"""DescribePrivilegeEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 数据列表
        :type List: list of PrivilegeEscalationProcess
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""数据列表
        :rtype: list of PrivilegeEscalationProcess
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(进程名称)</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribePrivilegeRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of PrivilegeRule
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of PrivilegeRule
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeProVersionInfo请求参数结构体

    """


class DescribeProVersionInfoResponse(AbstractModel):
    r"""DescribeProVersionInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PostPayCost: 昨日【专业版-按量付费】扣费明细,(实际已账单为准)
        :type PostPayCost: int
        :param _IsAutoOpenProVersion: 新增主机是否自动开通专业版
        :type IsAutoOpenProVersion: bool
        :param _ProVersionNum: 专业版主机数
        :type ProVersionNum: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._PostPayCost = None
        self._IsAutoOpenProVersion = None
        self._ProVersionNum = None
        self._RequestId = None

    @property
    def PostPayCost(self):
        r"""昨日【专业版-按量付费】扣费明细,(实际已账单为准)
        :rtype: int
        """
        return self._PostPayCost

    @PostPayCost.setter
    def PostPayCost(self, PostPayCost):
        self._PostPayCost = PostPayCost

    @property
    def IsAutoOpenProVersion(self):
        r"""新增主机是否自动开通专业版
        :rtype: bool
        """
        return self._IsAutoOpenProVersion

    @IsAutoOpenProVersion.setter
    def IsAutoOpenProVersion(self, IsAutoOpenProVersion):
        self._IsAutoOpenProVersion = IsAutoOpenProVersion

    @property
    def ProVersionNum(self):
        r"""专业版主机数
        :rtype: int
        """
        return self._ProVersionNum

    @ProVersionNum.setter
    def ProVersionNum(self, ProVersionNum):
        self._ProVersionNum = ProVersionNum

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeProVersionStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机安全客户端UUID、填写"all"表示所有主机。
        :type Uuid: str
        """
        self._Uuid = None

    @property
    def Uuid(self):
        r"""主机安全客户端UUID、填写"all"表示所有主机。
        :rtype: str
        """
        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):
    r"""DescribeProVersionStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeProcessStatisticsRequest(AbstractModel):
    r"""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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>ProcessName - String - 是否必填：否 - 进程名</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeProcessStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 进程统计列表记录总数。
        :type TotalCount: int
        :param _ProcessStatistics: 进程统计列表数据数组。
        :type ProcessStatistics: list of ProcessStatistics
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._ProcessStatistics = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""进程统计列表记录总数。
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ProcessStatistics(self):
        r"""进程统计列表数据数组。
        :rtype: list of ProcessStatistics
        """
        return self._ProcessStatistics

    @ProcessStatistics.setter
    def ProcessStatistics(self, ProcessStatistics):
        self._ProcessStatistics = ProcessStatistics

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeProductStatus请求参数结构体

    """


class DescribeProductStatusResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ReturnCode = None
        self._ReturnMsg = None
        self._Data = None
        self._RequestId = None

    @property
    def ReturnCode(self):
        r"""接口调用返回状态码
        :rtype: int
        """
        return self._ReturnCode

    @ReturnCode.setter
    def ReturnCode(self, ReturnCode):
        self._ReturnCode = ReturnCode

    @property
    def ReturnMsg(self):
        r"""接口调用返回信息
        :rtype: str
        """
        return self._ReturnMsg

    @ReturnMsg.setter
    def ReturnMsg(self, ReturnMsg):
        self._ReturnMsg = ReturnMsg

    @property
    def Data(self):
        r"""防护状态及试用信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.ProductStatusInfo`
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页条数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""DirName 网站名称
DirPath 网站防护目录地址
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""asc：升序/desc：降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段
        :rtype: str
        """
        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):
    r"""DescribeProtectDirList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 防护目录列表信息
        :type List: list of ProtectDirInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""防护目录列表信息
        :rtype: list of ProtectDirInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""唯一ID
        :rtype: str
        """
        return self._Id

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

    @property
    def Limit(self):
        r"""分页条数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤参数 ProtectStatus
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序值
        :rtype: str
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._ProtectServerCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""网站关联服务器列表信息
        :rtype: list of ProtectDirRelatedServer
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ProtectServerCount(self):
        r"""已开启防护总数
        :rtype: int
        """
        return self._ProtectServerCount

    @ProtectServerCount.setter
    def ProtectServerCount(self, ProtectServerCount):
        self._ProtectServerCount = ProtectServerCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribePublicProxyInstallCommandRequest(AbstractModel):
    r"""DescribePublicProxyInstallCommand请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip: nginx主机IP列表，逗号分隔
        :type Ip: str
        """
        self._Ip = None

    @property
    def Ip(self):
        r"""nginx主机IP列表，逗号分隔
        :rtype: str
        """
        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):
    r"""DescribePublicProxyInstallCommand返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NginxCommand: Nginx安装命令
        :type NginxCommand: str
        :param _KeepAliveCommand: Keepalived安装命令
        :type KeepAliveCommand: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NginxCommand = None
        self._KeepAliveCommand = None
        self._RequestId = None

    @property
    def NginxCommand(self):
        r"""Nginx安装命令
        :rtype: str
        """
        return self._NginxCommand

    @NginxCommand.setter
    def NginxCommand(self, NginxCommand):
        self._NginxCommand = NginxCommand

    @property
    def KeepAliveCommand(self):
        r"""Keepalived安装命令
        :rtype: str
        """
        return self._KeepAliveCommand

    @KeepAliveCommand.setter
    def KeepAliveCommand(self, KeepAliveCommand):
        self._KeepAliveCommand = KeepAliveCommand

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>Status - Int - 是否必填：否 - 通过勒索状态查询：0未勒索，1已勒索 </li>
<li>CreateTimeBegin - string - 是否必填：否 - 创建时间开始 </li>
<li>CreateTimeEnd - string - 是否必填：否 - 创建时间结束 </li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime
        :rtype: str
        """
        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):
    r"""DescribeRansomDefenseBackupList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 备份列表
        :type List: list of RansomDefenseBackup
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""备份列表
        :rtype: list of RansomDefenseBackup
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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
        :param _CreateBeginTime: 事件创建起始时间
        :type CreateBeginTime: str
        :param _CreateEndTime: 事件创建结束时间
        :type CreateEndTime: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None
        self._CreateBeginTime = None
        self._CreateEndTime = None

    @property
    def Limit(self):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>HostName- string- 主机名称</li>
<li>Status - Uint64 - 0待处理，1已处理，2已信任</li>
<li>HostIp- String - 主机ip</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def CreateBeginTime(self):
        r"""事件创建起始时间
        :rtype: str
        """
        return self._CreateBeginTime

    @CreateBeginTime.setter
    def CreateBeginTime(self, CreateBeginTime):
        self._CreateBeginTime = CreateBeginTime

    @property
    def CreateEndTime(self):
        r"""事件创建结束时间
        :rtype: str
        """
        return self._CreateEndTime

    @CreateEndTime.setter
    def CreateEndTime(self, CreateEndTime):
        self._CreateEndTime = CreateEndTime


    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._CreateBeginTime = params.get("CreateBeginTime")
        self._CreateEndTime = params.get("CreateEndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""DescribeRansomDefenseEventsList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 事件列表
        :type List: list of RansomDefenseEvent
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""事件列表
        :rtype: list of RansomDefenseEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime、LastBackupTime、BackupCount
        :rtype: str
        """
        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):
    r"""DescribeRansomDefenseMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机列表
        :type List: list of RansomDefenseStrategyMachineBackupInfo
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""主机列表
        :rtype: list of RansomDefenseStrategyMachineBackupInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeRansomDefenseMachineStrategyInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuids: 主机Quuid列表
        :type Quuids: list of str
        """
        self._Quuids = None

    @property
    def Quuids(self):
        r"""主机Quuid列表
        :rtype: list of str
        """
        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):
    r"""DescribeRansomDefenseMachineStrategyInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyIds: 策略ID列表,0表示未绑定任何策略
        :type StrategyIds: list of int non-negative
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._StrategyIds = None
        self._RequestId = None

    @property
    def StrategyIds(self):
        r"""策略ID列表,0表示未绑定任何策略
        :rtype: list of int non-negative
        """
        return self._StrategyIds

    @StrategyIds.setter
    def StrategyIds(self, StrategyIds):
        self._StrategyIds = StrategyIds

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Ips- string- 主机名称</li>
<li>Status - Uint64 - 0进行中，1成功，2失败</li>
<li>Names- String - 主机名称</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime、ModifyTime
        :rtype: str
        """
        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):
    r"""DescribeRansomDefenseRollBackTaskList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 任务列表
        :type List: list of RansomDefenseRollbackTask
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""任务列表
        :rtype: list of RansomDefenseRollbackTask
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeRansomDefenseState请求参数结构体

    """


class DescribeRansomDefenseStateResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""已开启防御策略数量
        :rtype: int
        """
        return self._StrategyCount

    @StrategyCount.setter
    def StrategyCount(self, StrategyCount):
        self._StrategyCount = StrategyCount

    @property
    def MachineCount(self):
        r"""已开启防御机器数
        :rtype: int
        """
        return self._MachineCount

    @MachineCount.setter
    def MachineCount(self, MachineCount):
        self._MachineCount = MachineCount

    @property
    def SnapshotSize(self):
        r"""快照总容量
        :rtype: int
        """
        return self._SnapshotSize

    @SnapshotSize.setter
    def SnapshotSize(self, SnapshotSize):
        self._SnapshotSize = SnapshotSize

    @property
    def RollBackTaskCount(self):
        r"""恢复备份任务数量
        :rtype: int
        """
        return self._RollBackTaskCount

    @RollBackTaskCount.setter
    def RollBackTaskCount(self, RollBackTaskCount):
        self._RollBackTaskCount = RollBackTaskCount

    @property
    def ProgressingSnapshotTaskCount(self):
        r"""进行中的创建快照任务数
        :rtype: int
        """
        return self._ProgressingSnapshotTaskCount

    @ProgressingSnapshotTaskCount.setter
    def ProgressingSnapshotTaskCount(self, ProgressingSnapshotTaskCount):
        self._ProgressingSnapshotTaskCount = ProgressingSnapshotTaskCount

    @property
    def ProgressingRollBackTaskCount(self):
        r"""进行中的恢复备份任务数
        :rtype: int
        """
        return self._ProgressingRollBackTaskCount

    @ProgressingRollBackTaskCount.setter
    def ProgressingRollBackTaskCount(self, ProgressingRollBackTaskCount):
        self._ProgressingRollBackTaskCount = ProgressingRollBackTaskCount

    @property
    def MachineTotal(self):
        r"""机器总数
        :rtype: int
        """
        return self._MachineTotal

    @MachineTotal.setter
    def MachineTotal(self, MachineTotal):
        self._MachineTotal = MachineTotal

    @property
    def StrategyTotal(self):
        r"""策略总数
        :rtype: int
        """
        return self._StrategyTotal

    @StrategyTotal.setter
    def StrategyTotal(self, StrategyTotal):
        self._StrategyTotal = StrategyTotal

    @property
    def BalanceStatus(self):
        r"""账户状态：0未欠费，1已欠费
        :rtype: int
        """
        return self._BalanceStatus

    @BalanceStatus.setter
    def BalanceStatus(self, BalanceStatus):
        self._BalanceStatus = BalanceStatus

    @property
    def BackupMachineCount(self):
        r"""已备份主机数
        :rtype: int
        """
        return self._BackupMachineCount

    @BackupMachineCount.setter
    def BackupMachineCount(self, BackupMachineCount):
        self._BackupMachineCount = BackupMachineCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeRansomDefenseStrategyDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 策略ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""策略ID
        :rtype: int
        """
        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):
    r"""DescribeRansomDefenseStrategyDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Strategy: 策略详情
        :type Strategy: :class:`tencentcloud.cwp.v20180228.models.RansomDefenseStrategyDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Strategy = None
        self._RequestId = None

    @property
    def Strategy(self):
        r"""策略详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RansomDefenseStrategyDetail`
        """
        return self._Strategy

    @Strategy.setter
    def Strategy(self, Strategy):
        self._Strategy = Strategy

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime, MachineCount
        :rtype: str
        """
        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):
    r"""DescribeRansomDefenseStrategyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 策略列表
        :type List: list of RansomDefenseStrategy
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""策略列表
        :rtype: list of RansomDefenseStrategy
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页参数 最大100条
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页参数
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Ips- string- 主机名称</li>
<li>Status - Uint64 - 0未绑定，1已绑定</li>
<li>Names- String - 主机名称</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Id(self):
        r"""防勒索策略ID
        :rtype: int
        """
        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):
    r"""DescribeRansomDefenseStrategyMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机列表
        :type List: list of RansomDefenseStrategyMachineDetail
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""主机列表
        :rtype: list of RansomDefenseStrategyMachineDetail
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""分页查询记录总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeRansomDefenseTrend请求参数结构体

    """


class DescribeRansomDefenseTrendResponse(AbstractModel):
    r"""DescribeRansomDefenseTrend返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EventCount: 勒索事件数量
        :type EventCount: int
        :param _IndustryCount: 影响行业数量
        :type IndustryCount: int
        :param _CompanyCount: 开通勒索的公司数量
        :type CompanyCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EventCount = None
        self._IndustryCount = None
        self._CompanyCount = None
        self._RequestId = None

    @property
    def EventCount(self):
        r"""勒索事件数量
        :rtype: int
        """
        return self._EventCount

    @EventCount.setter
    def EventCount(self, EventCount):
        self._EventCount = EventCount

    @property
    def IndustryCount(self):
        r"""影响行业数量
        :rtype: int
        """
        return self._IndustryCount

    @IndustryCount.setter
    def IndustryCount(self, IndustryCount):
        self._IndustryCount = IndustryCount

    @property
    def CompanyCount(self):
        r"""开通勒索的公司数量
        :rtype: int
        """
        return self._CompanyCount

    @CompanyCount.setter
    def CompanyCount(self, CompanyCount):
        self._CompanyCount = CompanyCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeRaspEventCWPRequest(AbstractModel):
    r"""DescribeRaspEventCWP请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询;AttackTypeKeywords攻击类型名模糊查询;Quuid，VulId，EventType，Status精确匹配，CreateBeginTime，CreateEndTime时间段查询
Source区分内存马注入和漏洞防御，rasp：漏洞防御，memshell_inject：内存马注入
        :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):
        r"""过滤条件：Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询;AttackTypeKeywords攻击类型名模糊查询;Quuid，VulId，EventType，Status精确匹配，CreateBeginTime，CreateEndTime时间段查询
Source区分内存马注入和漏洞防御，rasp：漏洞防御，memshell_inject：内存马注入
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""数据偏移
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""数据限制
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序，大小写无关：asc 升序，desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序列，严格相等：CreateTime创建时间，MergeTime合并时间，Count事件数量
        :rtype: str
        """
        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 DescribeRaspEventCWPResponse(AbstractModel):
    r"""DescribeRaspEventCWP返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御事件列表
        :type List: list of RaspEvent
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""数据总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""漏洞防御事件列表
        :rtype: list of RaspEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeRaspEventDetailCWPRequest(AbstractModel):
    r"""DescribeRaspEventDetailCWP请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 漏洞事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""漏洞事件id
        :rtype: int
        """
        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 DescribeRaspEventDetailCWPResponse(AbstractModel):
    r"""DescribeRaspEventDetailCWP返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 应用防护事件详情
        :type Data: :class:`tencentcloud.cwp.v20180228.models.RaspEventDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""应用防护事件详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RaspEventDetail`
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspEventDetail()
            self._Data._deserialize(params.get("Data"))
        self._RequestId = params.get("RequestId")


class DescribeRaspEventDetailTCSSRequest(AbstractModel):
    r"""DescribeRaspEventDetailTCSS请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 漏洞事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""漏洞事件id
        :rtype: int
        """
        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 DescribeRaspEventDetailTCSSResponse(AbstractModel):
    r"""DescribeRaspEventDetailTCSS返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 应用防护事件详情
        :type Data: :class:`tencentcloud.cwp.v20180228.models.RaspEventDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""应用防护事件详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RaspEventDetail`
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspEventDetail()
            self._Data._deserialize(params.get("Data"))
        self._RequestId = params.get("RequestId")


class DescribeRaspEventTCSSRequest(AbstractModel):
    r"""DescribeRaspEventTCSS请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询;AttackTypeKeywords攻击类型名模糊查询;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):
        r"""过滤条件：Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询;AttackTypeKeywords攻击类型名模糊查询;Quuid，VulId，EventType，Status精确匹配，CreateBeginTime，CreateEndTime时间段查询
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""数据偏移
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""数据限制
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序，大小写无关：asc 升序，desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序列，严格相等：CreateTime创建时间，MergeTime合并时间，Count事件数量
        :rtype: str
        """
        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 DescribeRaspEventTCSSResponse(AbstractModel):
    r"""DescribeRaspEventTCSS返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御事件列表
        :type List: list of RaspEvent
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""数据总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""漏洞防御事件列表
        :rtype: list of RaspEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeRaspLicenseListRequest(AbstractModel):
    r"""DescribeRaspLicenseList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件
- AssetType 资产类型(CWP 主机安全资产, TCSS_HOST 容器主机节点,TCSS_EKS 容器超级节点)
- PluginStatus 插件状态(Normal 使用正常,Abnormal 存在异常,Unused 未使用)
- ProtectionSwitch 防护开关(Enable 开启,Disable 未开启)
- ProtectionVersion 防护版本(Rasp 重保授权包,Unauthorized 未授权)
- InstanceID 实例ID
- InstanceName 实例名称
- InstanceIP 实例IP(内网IP/外网IP)
- NodeID 容器节点ID
- NodeName 容器节点名称
- ClusterID 容器集群ID
- ClusterName 容器集群名称
        :type Filters: list of Filters
        :param _Limit: 限制条数,默认10
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式,ASC 正序,DESC 倒序
        :type Order: str
        :param _By: 排序值
- LatestUpdateTime 最近更新时间
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        r"""过滤条件
- AssetType 资产类型(CWP 主机安全资产, TCSS_HOST 容器主机节点,TCSS_EKS 容器超级节点)
- PluginStatus 插件状态(Normal 使用正常,Abnormal 存在异常,Unused 未使用)
- ProtectionSwitch 防护开关(Enable 开启,Disable 未开启)
- ProtectionVersion 防护版本(Rasp 重保授权包,Unauthorized 未授权)
- InstanceID 实例ID
- InstanceName 实例名称
- InstanceIP 实例IP(内网IP/外网IP)
- NodeID 容器节点ID
- NodeName 容器节点名称
- ClusterID 容器集群ID
- ClusterName 容器集群名称
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式,ASC 正序,DESC 倒序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序值
- LatestUpdateTime 最近更新时间
        :rtype: str
        """
        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 DescribeRaspLicenseListResponse(AbstractModel):
    r"""DescribeRaspLicenseList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 数组对象
        :type List: list of RaspLicenseList
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""数组对象
        :rtype: list of RaspLicenseList
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspLicenseList()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeRaspMaxCpuRequest(AbstractModel):
    r"""DescribeRaspMaxCpu请求参数结构体

    """


class DescribeRaspMaxCpuResponse(AbstractModel):
    r"""DescribeRaspMaxCpu返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RaspMaxCpu: rasp当前最大cpu限制，大于0，小于等于100，默认100表示不限制
        :type RaspMaxCpu: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RaspMaxCpu = None
        self._RequestId = None

    @property
    def RaspMaxCpu(self):
        r"""rasp当前最大cpu限制，大于0，小于等于100，默认100表示不限制
        :rtype: int
        """
        return self._RaspMaxCpu

    @RaspMaxCpu.setter
    def RaspMaxCpu(self, RaspMaxCpu):
        self._RaspMaxCpu = RaspMaxCpu

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RaspMaxCpu = params.get("RaspMaxCpu")
        self._RequestId = params.get("RequestId")


class DescribeRaspMemShellDetailTCSSRequest(AbstractModel):
    r"""DescribeRaspMemShellDetailTCSS请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 内存马事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""内存马事件id
        :rtype: int
        """
        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 DescribeRaspMemShellDetailTCSSResponse(AbstractModel):
    r"""DescribeRaspMemShellDetailTCSS返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 事件详情
        :type Data: :class:`tencentcloud.cwp.v20180228.models.RaspMemShellDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""事件详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RaspMemShellDetail`
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspMemShellDetail()
            self._Data._deserialize(params.get("Data"))
        self._RequestId = params.get("RequestId")


class DescribeRaspMemShellListTCSSRequest(AbstractModel):
    r"""DescribeRaspMemShellListTCSS请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：InstanceID、IP、MachineName主机名模糊查询, Type，Status精确匹配，CreateBeginTime，CreateEndTime时间段
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式
        :type Order: str
        :param _By: 排序字段
        :type By: str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        r"""过滤条件：InstanceID、IP、MachineName主机名模糊查询, Type，Status精确匹配，CreateBeginTime，CreateEndTime时间段
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段
        :rtype: str
        """
        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 DescribeRaspMemShellListTCSSResponse(AbstractModel):
    r"""DescribeRaspMemShellListTCSS返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 事件列表
        :type List: list of RaspMemShellEvent
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""事件列表
        :rtype: list of RaspMemShellEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspMemShellEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRaspPluginListRequest(AbstractModel):
    r"""DescribeRaspPluginList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AssetType: 资产类型
- CWP 主机安全资产
- TCSS_HOST 容器主机节点
- TCSS_EKS 容器超级节点
        :type AssetType: str
        :param _QUUID: 机器唯一ID
        :type QUUID: str
        :param _Filters: 过滤参数
PluginStatus 插件状态  (Injecting 注入中,Injected 注入成功,Timeout 插件超时,Exited 插件退出, Failed 注入失败)
PID  进程PID
MainClass 进程主类名 
        :type Filters: list of Filters
        :param _Offset: 偏移量默认0
        :type Offset: int
        :param _Limit: 限制条数,默认10
        :type Limit: int
        """
        self._AssetType = None
        self._QUUID = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def AssetType(self):
        r"""资产类型
- CWP 主机安全资产
- TCSS_HOST 容器主机节点
- TCSS_EKS 容器超级节点
        :rtype: str
        """
        return self._AssetType

    @AssetType.setter
    def AssetType(self, AssetType):
        self._AssetType = AssetType

    @property
    def QUUID(self):
        r"""机器唯一ID
        :rtype: str
        """
        return self._QUUID

    @QUUID.setter
    def QUUID(self, QUUID):
        self._QUUID = QUUID

    @property
    def Filters(self):
        r"""过滤参数
PluginStatus 插件状态  (Injecting 注入中,Injected 注入成功,Timeout 插件超时,Exited 插件退出, Failed 注入失败)
PID  进程PID
MainClass 进程主类名 
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""限制条数,默认10
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._AssetType = params.get("AssetType")
        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 DescribeRaspPluginListResponse(AbstractModel):
    r"""DescribeRaspPluginList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表详情
        :type List: list of RaspLicensePlugin
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表详情
        :rtype: list of RaspLicensePlugin
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspLicensePlugin()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRaspRuleVulsRequest(AbstractModel):
    r"""DescribeRaspRuleVuls请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。Name=WhiteType的必选，0：表示自定义范围的漏洞列表，1：表示全部请求范围的列表
        :type Filters: list of Filter
        :param _Limit: 返回数量，默认为10，最大值为1000。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None

    @property
    def Filters(self):
        r"""过滤条件。Name=WhiteType的必选，0：表示自定义范围的漏洞列表，1：表示全部请求范围的列表
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为1000。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        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 = Filter()
                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 DescribeRaspRuleVulsResponse(AbstractModel):
    r"""DescribeRaspRuleVuls返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of RaspRuleVul
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of RaspRuleVul
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspRuleVul()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRaspRulesRequest(AbstractModel):
    r"""DescribeRaspRules请求参数结构体

    """

    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
        :param _By: 排序字段，目前有：CreateTime、ModifyTime，默认按照ModifyTime排序
        :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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(进程名称)</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""排序字段，目前有：CreateTime、ModifyTime，默认按照ModifyTime排序
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序升序还是倒序，DESC有ASC、
        :rtype: str
        """
        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 DescribeRaspRulesResponse(AbstractModel):
    r"""DescribeRaspRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of RaspRule
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of RaspRule
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspRule()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRecommendedProtectCpuRequest(AbstractModel):
    r"""DescribeRecommendedProtectCpu请求参数结构体

    """


class DescribeRecommendedProtectCpuResponse(AbstractModel):
    r"""DescribeRecommendedProtectCpu返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeReverseShellEventInfoRequest(AbstractModel):
    r"""DescribeReverseShellEventInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        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):
    r"""DescribeReverseShellEventInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ReverseShellEventInfo: 反弹shell详情信息
        :type ReverseShellEventInfo: :class:`tencentcloud.cwp.v20180228.models.ReverseShellEventInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ReverseShellEventInfo = None
        self._RequestId = None

    @property
    def ReverseShellEventInfo(self):
        r"""反弹shell详情信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.ReverseShellEventInfo`
        """
        return self._ReverseShellEventInfo

    @ReverseShellEventInfo.setter
    def ReverseShellEventInfo(self, ReverseShellEventInfo):
        self._ReverseShellEventInfo = ReverseShellEventInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(主机内网IP|进程名)</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式：根据请求次数排序：asc-升序/desc-降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：CreateTime-发生时间
        :rtype: str
        """
        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):
    r"""DescribeReverseShellEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of ReverseShell
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of ReverseShell
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeReverseShellRulesAggregationRequest(AbstractModel):
    r"""DescribeReverseShellRulesAggregation请求参数结构体

    """

    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
        :param _By: 排序字段，目前有：CreateTime、ModifyTime，默认按照ModifyTime排序
        :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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(进程名称)</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""排序字段，目前有：CreateTime、ModifyTime，默认按照ModifyTime排序
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序升序还是倒序，DESC有ASC、
        :rtype: str
        """
        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 DescribeReverseShellRulesAggregationResponse(AbstractModel):
    r"""DescribeReverseShellRulesAggregation返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of ReverseShellRuleAggregation
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of ReverseShellRuleAggregation
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = ReverseShellRuleAggregation()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeReverseShellRulesRequest(AbstractModel):
    r"""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):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(进程名称)</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeReverseShellRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of ReverseShellRule
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of ReverseShellRule
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeReverseShellSystemPolicyConfigRequest(AbstractModel):
    r"""DescribeReverseShellSystemPolicyConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ProductType: <p>产品类型 0-主机安全(默认) 1-安全中心</p>
        :type ProductType: int
        """
        self._ProductType = None

    @property
    def ProductType(self):
        r"""<p>产品类型 0-主机安全(默认) 1-安全中心</p>
        :rtype: int
        """
        return self._ProductType

    @ProductType.setter
    def ProductType(self, ProductType):
        self._ProductType = ProductType


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


class DescribeReverseShellSystemPolicyConfigResponse(AbstractModel):
    r"""DescribeReverseShellSystemPolicyConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _InnerNetAlarmShow: <p>内网告警展示</p>
        :type InnerNetAlarmShow: bool
        :param _InnerIPShow: <p>内网ip展示</p>
        :type InnerIPShow: bool
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._InnerNetAlarmShow = None
        self._InnerIPShow = None
        self._RequestId = None

    @property
    def InnerNetAlarmShow(self):
        r"""<p>内网告警展示</p>
        :rtype: bool
        """
        return self._InnerNetAlarmShow

    @InnerNetAlarmShow.setter
    def InnerNetAlarmShow(self, InnerNetAlarmShow):
        self._InnerNetAlarmShow = InnerNetAlarmShow

    @property
    def InnerIPShow(self):
        r"""<p>内网ip展示</p>
        :rtype: bool
        """
        return self._InnerIPShow

    @InnerIPShow.setter
    def InnerIPShow(self, InnerIPShow):
        self._InnerIPShow = InnerIPShow

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._InnerNetAlarmShow = params.get("InnerNetAlarmShow")
        self._InnerIPShow = params.get("InnerIPShow")
        self._RequestId = params.get("RequestId")


class DescribeRiskBatchStatusRequest(AbstractModel):
    r"""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):
        r"""操作事件类型，文件查杀：MALWARE，异常登录：HOST_LOGIN，密码破解：BRUTE_ATTACK，恶意请求：MALICIOUS_REQUEST，高危命令：BASH_EVENT，本地提权：PRIVILEGE_EVENT，反弹shell：REVERSE_SHELL
        :rtype: str
        """
        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):
    r"""DescribeRiskBatchStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: Handling:正在执行删除操作，
Pending：没有任务执行
        :type Status: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._RequestId = None

    @property
    def Status(self):
        r"""Handling:正在执行删除操作，
Pending：没有任务执行
        :rtype: str
        """
        return self._Status

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeRiskDnsEventInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 恶意请求事件Id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""恶意请求事件Id
        :rtype: int
        """
        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):
    r"""DescribeRiskDnsEventInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Info: 恶意请求事件详情
        :type Info: :class:`tencentcloud.cwp.v20180228.models.RiskDnsEvent`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Info = None
        self._RequestId = None

    @property
    def Info(self):
        r"""恶意请求事件详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RiskDnsEvent`
        """
        return self._Info

    @Info.setter
    def Info(self, Info):
        self._Info = Info

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeRiskDnsEventList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>MachineName  主机名称



InstanceID  实例ID  

 

IP   内网IP或公网IP- 是否必填：否 - 主机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):
        r"""<li>MachineName  主机名称



InstanceID  实例ID  

 

IP   内网IP或公网IP- 是否必填：否 - 主机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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式：根据请求次数排序：[asc:升序|desc:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：[AccessCount:请求次数|LastTime:最近请求时间]
        :rtype: str
        """
        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):
    r"""DescribeRiskDnsEventList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 恶意请求事件列表
        :type List: list of RiskDnsEvent
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""恶意请求事件列表
        :rtype: list of RiskDnsEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeRiskDnsInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 恶意请求-事件Id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""恶意请求-事件Id
        :rtype: int
        """
        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):
    r"""DescribeRiskDnsInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RiskDnsInfo: 恶意请求事件详情
        :type RiskDnsInfo: :class:`tencentcloud.cwp.v20180228.models.RiskDnsList`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RiskDnsInfo = None
        self._RequestId = None

    @property
    def RiskDnsInfo(self):
        r"""恶意请求事件详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RiskDnsList`
        """
        return self._RiskDnsInfo

    @RiskDnsInfo.setter
    def RiskDnsInfo(self, RiskDnsInfo):
        self._RiskDnsInfo = RiskDnsInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式：根据请求次数排序：asc-升序/desc-降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：AccessCount-请求次数。MergeTime-最近请求时间
        :rtype: str
        """
        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):
    r"""DescribeRiskDnsList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RiskDnsList: 恶意请求列表数组
        :type RiskDnsList: list of RiskDnsList
        :param _TotalCount: 总数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RiskDnsList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def RiskDnsList(self):
        r"""恶意请求列表数组
        :rtype: list of RiskDnsList
        """
        return self._RiskDnsList

    @RiskDnsList.setter
    def RiskDnsList(self, RiskDnsList):
        self._RiskDnsList = RiskDnsList

    @property
    def TotalCount(self):
        r"""总数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>PolicyType - int - 是否必填：否 - 策略类型</li>
<li>PolicyName - string - 是否必填：否 - 策略名称</li>
<li>Domain - string - 是否必填：否 - 域名(先对域名做urlencode,再base64)</li>
<li>PolicyAction- int - 是否必填：否 - 策略动作</li>
<li>IsEnabled - int - 是否必填：否 - 是否生效</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [HostScope|UpdateTime]
        :rtype: str
        """
        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):
    r"""DescribeRiskDnsPolicyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 列表
        :type List: list of RiskDnsPolicy
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""列表
        :rtype: list of RiskDnsPolicy
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式 [ASC|DESC]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""[StartTime:进程启动时间|DetectTime:最后检测时间]
        :rtype: str
        """
        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):
    r"""DescribeRiskProcessEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数量
        :type TotalCount: int
        :param _List: 异常进程列表
        :type List: list of RiskProcessEvent
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""异常进程列表
        :rtype: list of RiskProcessEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeSafeInfo请求参数结构体

    """


class DescribeSafeInfoResponse(AbstractModel):
    r"""DescribeSafeInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeScanMalwareScheduleRequest(AbstractModel):
    r"""DescribeScanMalwareSchedule请求参数结构体

    """


class DescribeScanMalwareScheduleResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Schedule = None
        self._RiskFileNumber = None
        self._IsSchedule = None
        self._ScanStatus = None
        self._RequestId = None

    @property
    def Schedule(self):
        r"""扫描进度（单位：%）
        :rtype: int
        """
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def RiskFileNumber(self):
        r"""风险文件数,当进度满了以后才有该值
        :rtype: int
        """
        return self._RiskFileNumber

    @RiskFileNumber.setter
    def RiskFileNumber(self, RiskFileNumber):
        self._RiskFileNumber = RiskFileNumber

    @property
    def IsSchedule(self):
        r"""是否正在扫描中
        :rtype: bool
        """
        return self._IsSchedule

    @IsSchedule.setter
    def IsSchedule(self, IsSchedule):
        self._IsSchedule = IsSchedule

    @property
    def ScanStatus(self):
        r"""0 从未扫描过、 1 扫描中、 2扫描完成、 3停止中、 4停止完成
        :rtype: int
        """
        return self._ScanStatus

    @ScanStatus.setter
    def ScanStatus(self, ScanStatus):
        self._ScanStatus = ScanStatus

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScanSchedule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: int
        """
        self._TaskId = None

    @property
    def TaskId(self):
        r"""任务id
        :rtype: int
        """
        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):
    r"""DescribeScanSchedule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Schedule: 检测进度
        :type Schedule: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Schedule = None
        self._RequestId = None

    @property
    def Schedule(self):
        r"""检测进度
        :rtype: int
        """
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :rtype: str
        """
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def Filters(self):
        r"""过滤参数;
<li>StrategyId 基线策略ID ,仅ModuleType 为 Baseline 时需要</li>
        :rtype: list of Filters
        """
        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):
    r"""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: 开始扫描时间
        :type ScanBeginTime: str
        :param _RiskEventCount: 扫描漏洞数
        :type RiskEventCount: int
        :param _ScanEndTime: 扫描结束时间
        :type ScanEndTime: str
        :param _KBNumber: 任务扫描的KB编号
        :type KBNumber: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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._KBNumber = None
        self._RequestId = None

    @property
    def ScanState(self):
        r"""0 从未扫描过、 1 扫描中、 2扫描完成、 3停止中、 4停止完成
        :rtype: int
        """
        return self._ScanState

    @ScanState.setter
    def ScanState(self, ScanState):
        self._ScanState = ScanState

    @property
    def Schedule(self):
        r"""扫描进度
        :rtype: int
        """
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def TaskId(self):
        r"""任务Id
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def VulId(self):
        r"""任务扫描的漏洞id
        :rtype: list of int non-negative
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Type(self):
        r"""0一键检测 1定时检测
        :rtype: int
        """
        return self._Type

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

    @property
    def ScanBeginTime(self):
        r"""开始扫描时间
        :rtype: str
        """
        return self._ScanBeginTime

    @ScanBeginTime.setter
    def ScanBeginTime(self, ScanBeginTime):
        self._ScanBeginTime = ScanBeginTime

    @property
    def RiskEventCount(self):
        r"""扫描漏洞数
        :rtype: int
        """
        return self._RiskEventCount

    @RiskEventCount.setter
    def RiskEventCount(self, RiskEventCount):
        self._RiskEventCount = RiskEventCount

    @property
    def ScanEndTime(self):
        r"""扫描结束时间
        :rtype: str
        """
        return self._ScanEndTime

    @ScanEndTime.setter
    def ScanEndTime(self, ScanEndTime):
        self._ScanEndTime = ScanEndTime

    @property
    def KBNumber(self):
        r"""任务扫描的KB编号
        :rtype: list of str
        """
        return self._KBNumber

    @KBNumber.setter
    def KBNumber(self, KBNumber):
        self._KBNumber = KBNumber

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._KBNumber = params.get("KBNumber")
        self._RequestId = params.get("RequestId")


class DescribeScanTaskDetailsRequest(AbstractModel):
    r"""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):
        r"""模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :rtype: str
        """
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def TaskId(self):
        r"""任务ID
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        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):
    r"""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: 漏洞信息
        :type VulInfo: list of VulDetailInfo
        :param _RiskEventCount: 风险事件个数
        :type RiskEventCount: int
        :param _Type: 0一键检测 1定时检测
        :type Type: int
        :param _StoppingAll: 任务是否全部正在被停止 ture是
        :type StoppingAll: bool
        :param _VulCount: 扫描出漏洞个数
        :type VulCount: int
        :param _PatchInfo: 单独扫描kb时的信息
        :type PatchInfo: list of PatchInfoDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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._PatchInfo = None
        self._RequestId = None

    @property
    def ScanTaskDetailList(self):
        r"""扫描任务信息列表
        :rtype: list of ScanTaskDetails
        """
        return self._ScanTaskDetailList

    @ScanTaskDetailList.setter
    def ScanTaskDetailList(self, ScanTaskDetailList):
        self._ScanTaskDetailList = ScanTaskDetailList

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ScanMachineCount(self):
        r"""扫描机器总数
        :rtype: int
        """
        return self._ScanMachineCount

    @ScanMachineCount.setter
    def ScanMachineCount(self, ScanMachineCount):
        self._ScanMachineCount = ScanMachineCount

    @property
    def RiskMachineCount(self):
        r"""发现风险机器数
        :rtype: int
        """
        return self._RiskMachineCount

    @RiskMachineCount.setter
    def RiskMachineCount(self, RiskMachineCount):
        self._RiskMachineCount = RiskMachineCount

    @property
    def ScanBeginTime(self):
        r"""扫描开始时间
        :rtype: str
        """
        return self._ScanBeginTime

    @ScanBeginTime.setter
    def ScanBeginTime(self, ScanBeginTime):
        self._ScanBeginTime = ScanBeginTime

    @property
    def ScanEndTime(self):
        r"""扫描结束时间
        :rtype: str
        """
        return self._ScanEndTime

    @ScanEndTime.setter
    def ScanEndTime(self, ScanEndTime):
        self._ScanEndTime = ScanEndTime

    @property
    def ScanTime(self):
        r"""检测时间
        :rtype: int
        """
        return self._ScanTime

    @ScanTime.setter
    def ScanTime(self, ScanTime):
        self._ScanTime = ScanTime

    @property
    def ScanProgress(self):
        r"""扫描进度
        :rtype: int
        """
        return self._ScanProgress

    @ScanProgress.setter
    def ScanProgress(self, ScanProgress):
        self._ScanProgress = ScanProgress

    @property
    def ScanLeftTime(self):
        r"""扫描剩余时间
        :rtype: int
        """
        return self._ScanLeftTime

    @ScanLeftTime.setter
    def ScanLeftTime(self, ScanLeftTime):
        self._ScanLeftTime = ScanLeftTime

    @property
    def ScanContent(self):
        r"""扫描内容
        :rtype: list of str
        """
        return self._ScanContent

    @ScanContent.setter
    def ScanContent(self, ScanContent):
        self._ScanContent = ScanContent

    @property
    def VulInfo(self):
        r"""漏洞信息
        :rtype: list of VulDetailInfo
        """
        return self._VulInfo

    @VulInfo.setter
    def VulInfo(self, VulInfo):
        self._VulInfo = VulInfo

    @property
    def RiskEventCount(self):
        r"""风险事件个数
        :rtype: int
        """
        return self._RiskEventCount

    @RiskEventCount.setter
    def RiskEventCount(self, RiskEventCount):
        self._RiskEventCount = RiskEventCount

    @property
    def Type(self):
        r"""0一键检测 1定时检测
        :rtype: int
        """
        return self._Type

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

    @property
    def StoppingAll(self):
        r"""任务是否全部正在被停止 ture是
        :rtype: bool
        """
        return self._StoppingAll

    @StoppingAll.setter
    def StoppingAll(self, StoppingAll):
        self._StoppingAll = StoppingAll

    @property
    def VulCount(self):
        r"""扫描出漏洞个数
        :rtype: int
        """
        return self._VulCount

    @VulCount.setter
    def VulCount(self, VulCount):
        self._VulCount = VulCount

    @property
    def PatchInfo(self):
        r"""单独扫描kb时的信息
        :rtype: list of PatchInfoDetail
        """
        return self._PatchInfo

    @PatchInfo.setter
    def PatchInfo(self, PatchInfo):
        self._PatchInfo = PatchInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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")
        if params.get("PatchInfo") is not None:
            self._PatchInfo = []
            for item in params.get("PatchInfo"):
                obj = PatchInfoDetail()
                obj._deserialize(item)
                self._PatchInfo.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScanTaskStatusRequest(AbstractModel):
    r"""DescribeScanTaskStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :type ModuleType: str
        """
        self._ModuleType = None

    @property
    def ModuleType(self):
        r"""模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :rtype: str
        """
        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):
    r"""DescribeScanTaskStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _State: 任务扫描状态列表
        :type State: :class:`tencentcloud.cwp.v20180228.models.TaskStatus`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._State = None
        self._RequestId = None

    @property
    def State(self):
        r"""任务扫描状态列表
        :rtype: :class:`tencentcloud.cwp.v20180228.models.TaskStatus`
        """
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScanVulSetting请求参数结构体

    """


class DescribeScanVulSettingResponse(AbstractModel):
    r"""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 _ScanMethod: 0版本比对,2版本比对+poc
        :type ScanMethod: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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._ScanMethod = None
        self._RequestId = None

    @property
    def VulCategories(self):
        r"""漏洞类型：1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :rtype: str
        """
        return self._VulCategories

    @VulCategories.setter
    def VulCategories(self, VulCategories):
        self._VulCategories = VulCategories

    @property
    def VulLevels(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重 (多选英文逗号分隔)
        :rtype: str
        """
        return self._VulLevels

    @VulLevels.setter
    def VulLevels(self, VulLevels):
        self._VulLevels = VulLevels

    @property
    def TimerInterval(self):
        r"""定期检测间隔时间（天）
        :rtype: int
        """
        return self._TimerInterval

    @TimerInterval.setter
    def TimerInterval(self, TimerInterval):
        self._TimerInterval = TimerInterval

    @property
    def TimerTime(self):
        r"""定期检测时间，如：00:00
        :rtype: str
        """
        return self._TimerTime

    @TimerTime.setter
    def TimerTime(self, TimerTime):
        self._TimerTime = TimerTime

    @property
    def VulEmergency(self):
        r"""是否紧急漏洞：0-否 1-是
        :rtype: int
        """
        return self._VulEmergency

    @VulEmergency.setter
    def VulEmergency(self, VulEmergency):
        self._VulEmergency = VulEmergency

    @property
    def StartTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

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

    @property
    def EnableScan(self):
        r"""是否开启
        :rtype: int
        """
        return self._EnableScan

    @EnableScan.setter
    def EnableScan(self, EnableScan):
        self._EnableScan = EnableScan

    @property
    def EndTime(self):
        r"""结束时间
        :rtype: str
        """
        return self._EndTime

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

    @property
    def ClickTimeout(self):
        r"""一键扫描超时时长，如：1800秒（s）
        :rtype: int
        """
        return self._ClickTimeout

    @ClickTimeout.setter
    def ClickTimeout(self, ClickTimeout):
        self._ClickTimeout = ClickTimeout

    @property
    def Uuids(self):
        r"""为空默认扫描全部专业版、旗舰版、轻量版主机，不为空只扫描选中主机
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def ScanMethod(self):
        r"""0版本比对,2版本比对+poc
        :rtype: int
        """
        return self._ScanMethod

    @ScanMethod.setter
    def ScanMethod(self, ScanMethod):
        self._ScanMethod = ScanMethod

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._ScanMethod = params.get("ScanMethod")
        self._RequestId = params.get("RequestId")


class DescribeScreenAttackHotspotRequest(AbstractModel):
    r"""DescribeScreenAttackHotspot请求参数结构体

    """


class DescribeScreenAttackHotspotResponse(AbstractModel):
    r"""DescribeScreenAttackHotspot返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 攻击热点列表
        :type List: list of ScreenAttackHotspot
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""攻击热点列表
        :rtype: list of ScreenAttackHotspot
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenBroadcasts请求参数结构体

    """


class DescribeScreenBroadcastsResponse(AbstractModel):
    r"""DescribeScreenBroadcasts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 播报文章列表
        :type List: list of ScreenBroadcasts
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""播报文章列表
        :rtype: list of ScreenBroadcasts
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

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

    @property
    def EndTime(self):
        r"""结束时间
        :rtype: str
        """
        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):
    r"""DescribeScreenDefenseTrends返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TrendsChart: 统计详情图标数据
        :type TrendsChart: list of ScreenTrendsChart
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TrendsChart = None
        self._RequestId = None

    @property
    def TrendsChart(self):
        r"""统计详情图标数据
        :rtype: list of ScreenTrendsChart
        """
        return self._TrendsChart

    @TrendsChart.setter
    def TrendsChart(self, TrendsChart):
        self._TrendsChart = TrendsChart

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenEmergentMsg请求参数结构体

    """


class DescribeScreenEmergentMsgResponse(AbstractModel):
    r"""DescribeScreenEmergentMsg返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MessageInfo: 通知内容
        :type MessageInfo: list of ScreenEmergentMsg
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MessageInfo = None
        self._RequestId = None

    @property
    def MessageInfo(self):
        r"""通知内容
        :rtype: list of ScreenEmergentMsg
        """
        return self._MessageInfo

    @MessageInfo.setter
    def MessageInfo(self, MessageInfo):
        self._MessageInfo = MessageInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenEventsCnt请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BusinessType: 数据类型：0:待处理风险总数 1:影响资产总数，默认为0
        :type BusinessType: int
        """
        self._BusinessType = None

    @property
    def BusinessType(self):
        r"""数据类型：0:待处理风险总数 1:影响资产总数，默认为0
        :rtype: int
        """
        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):
    r"""DescribeScreenEventsCnt返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Info: 事件统计详情
        :type Info: list of ScreenEventsCnt
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Info = None
        self._RequestId = None

    @property
    def Info(self):
        r"""事件统计详情
        :rtype: list of ScreenEventsCnt
        """
        return self._Info

    @Info.setter
    def Info(self, Info):
        self._Info = Info

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenGeneralStat请求参数结构体

    """


class DescribeScreenGeneralStatResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Machines = None
        self._Protection = None
        self._RequestId = None

    @property
    def Machines(self):
        r"""name 的值: 在线，关机/离线,未安装，
value : 表示对应的数量
        :rtype: list of ScreenNameValue
        """
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def Protection(self):
        r"""name 的值: 旗舰版，专业版，基础版
value : 表示对应的数量
        :rtype: list of ScreenNameValue
        """
        return self._Protection

    @Protection.setter
    def Protection(self, Protection):
        self._Protection = Protection

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenHostInvasion请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机quuid
        :type Quuid: str
        """
        self._Quuid = None

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        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):
    r"""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: 基线事件列表
        :type Baseline: list of ScreenBaselineInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DefendAttackLog = None
        self._InvasionEvents = None
        self._Vul = None
        self._Baseline = None
        self._RequestId = None

    @property
    def DefendAttackLog(self):
        r"""网络攻击事件列表
        :rtype: list of ScreenDefendAttackLog
        """
        return self._DefendAttackLog

    @DefendAttackLog.setter
    def DefendAttackLog(self, DefendAttackLog):
        self._DefendAttackLog = DefendAttackLog

    @property
    def InvasionEvents(self):
        r"""入侵检测事件列表
        :rtype: list of ScreenInvasion
        """
        return self._InvasionEvents

    @InvasionEvents.setter
    def InvasionEvents(self, InvasionEvents):
        self._InvasionEvents = InvasionEvents

    @property
    def Vul(self):
        r"""漏洞事件列表
        :rtype: list of ScreenVulInfo
        """
        return self._Vul

    @Vul.setter
    def Vul(self, Vul):
        self._Vul = Vul

    @property
    def Baseline(self):
        r"""基线事件列表
        :rtype: list of ScreenBaselineInfo
        """
        return self._Baseline

    @Baseline.setter
    def Baseline(self, Baseline):
        self._Baseline = Baseline

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenMachineRegions请求参数结构体

    """


class DescribeScreenMachineRegionsResponse(AbstractModel):
    r"""DescribeScreenMachineRegions返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表详情
        :type List: list of ScreenRegionInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表详情
        :rtype: list of ScreenRegionInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机区域
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def MachineIpOrAlias(self):
        r"""IP 支持内网IP,主机别名
        :rtype: str
        """
        return self._MachineIpOrAlias

    @MachineIpOrAlias.setter
    def MachineIpOrAlias(self, MachineIpOrAlias):
        self._MachineIpOrAlias = MachineIpOrAlias

    @property
    def SecurityStatus(self):
        r"""风险状态类型：0：全部类型，1：风险主机，2：潜在风险主机 ， 3：已关机/离线主机，4：无风险主机
        :rtype: int
        """
        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):
    r"""DescribeScreenMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表详情
        :type List: list of ScreenRegionMachines
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表详情
        :rtype: list of ScreenRegionMachines
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenProtectionCnt请求参数结构体

    """


class DescribeScreenProtectionCntResponse(AbstractModel):
    r"""DescribeScreenProtectionCnt返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机安全防护引擎介绍 内容
        :type List: list of ScreenProtectionCnt
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""主机安全防护引擎介绍 内容
        :rtype: list of ScreenProtectionCnt
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenProtectionStat请求参数结构体

    """


class DescribeScreenProtectionStatResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Info = None
        self._RequestId = None

    @property
    def Info(self):
        r"""文件查杀 status:  0:从未检测过，或0资产付费情况, 1:已检测，存在恶意文件, 2:已检测，未开启隔离防护, 3:已检测且已开启防护且无风险
暴力破解status: 0:未开启防护或0付费资产情况 1:已开启防护 2:存在带处理事件
漏洞扫描status: 0:从未检测过，或0资产付费情况, 1:存在漏洞风险, 2:无风险
基线检测status: 0:从未检测过，或0资产付费情况, 1:存在基线风险,2:无风险
        :rtype: list of ScreenProtection
        """
        return self._Info

    @Info.setter
    def Info(self, Info):
        self._Info = Info

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeScreenRiskAssetsTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BusinessType: 统计类型：0:潜在威胁 1:失陷 2:漏洞 3:基线
        :type BusinessType: int
        """
        self._BusinessType = None

    @property
    def BusinessType(self):
        r"""统计类型：0:潜在威胁 1:失陷 2:漏洞 3:基线
        :rtype: int
        """
        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):
    r"""DescribeScreenRiskAssetsTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Chart: 统计详情图标数据 Name：展示主机ip 和地域， value：事件数量
        :type Chart: list of ScreenNameValue
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Chart = None
        self._RequestId = None

    @property
    def Chart(self):
        r"""统计详情图标数据 Name：展示主机ip 和地域， value：事件数量
        :rtype: list of ScreenNameValue
        """
        return self._Chart

    @Chart.setter
    def Chart(self, Chart):
        self._Chart = Chart

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeSearchLogs请求参数结构体

    """


class DescribeSearchLogsResponse(AbstractModel):
    r"""DescribeSearchLogs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 历史搜索记录 保留最新的10条
        :type Data: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""历史搜索记录 保留最新的10条
        :rtype: list of str
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        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):
    r"""DescribeSearchTemplates返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 模板列表
        :type List: list of SearchTemplate
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""模板列表
        :rtype: list of SearchTemplate
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeSecurityBroadcastInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 文章id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""文章id
        :rtype: int
        """
        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):
    r"""DescribeSecurityBroadcastInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BroadcastInfo: 安全播报文章详情
        :type BroadcastInfo: :class:`tencentcloud.cwp.v20180228.models.BroadcastInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BroadcastInfo = None
        self._RequestId = None

    @property
    def BroadcastInfo(self):
        r"""安全播报文章详情
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BroadcastInfo`
        """
        return self._BroadcastInfo

    @BroadcastInfo.setter
    def BroadcastInfo(self, BroadcastInfo):
        self._BroadcastInfo = BroadcastInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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-版本发布，4-实践教程
        :type BroadcastType: str
        """
        self._Offset = None
        self._Limit = None
        self._BeginDate = None
        self._EndDate = None
        self._BroadcastType = None

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10 ，0=全部
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def BeginDate(self):
        r"""筛选发布日期：开始时间
        :rtype: str
        """
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        r"""筛选发布日期：结束时间
        :rtype: str
        """
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def BroadcastType(self):
        r"""过滤安全播报类型：0-紧急通知，1-功能更新，2-行业荣誉，3-版本发布，4-实践教程
        :rtype: str
        """
        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):
    r"""DescribeSecurityBroadcasts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表
        :type List: list of Broadcasts
        :param _TotalCount: 总共多少条
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表
        :rtype: list of Broadcasts
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总共多少条
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        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):
    r"""DescribeSecurityDynamics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityDynamics: 安全事件消息数组。
        :type SecurityDynamics: list of SecurityDynamic
        :param _TotalCount: 记录总数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityDynamics = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def SecurityDynamics(self):
        r"""安全事件消息数组。
        :rtype: list of SecurityDynamic
        """
        return self._SecurityDynamics

    @SecurityDynamics.setter
    def SecurityDynamics(self, SecurityDynamics):
        self._SecurityDynamics = SecurityDynamics

    @property
    def TotalCount(self):
        r"""记录总数。
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeSecurityEventStat请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 该接口无过滤条件
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""该接口无过滤条件
        :rtype: list of Filter
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""木马事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._MalwareStat

    @MalwareStat.setter
    def MalwareStat(self, MalwareStat):
        self._MalwareStat = MalwareStat

    @property
    def HostLoginStat(self):
        r"""异地事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._HostLoginStat

    @HostLoginStat.setter
    def HostLoginStat(self, HostLoginStat):
        self._HostLoginStat = HostLoginStat

    @property
    def BruteAttackStat(self):
        r"""爆破事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._BruteAttackStat

    @BruteAttackStat.setter
    def BruteAttackStat(self, BruteAttackStat):
        self._BruteAttackStat = BruteAttackStat

    @property
    def MaliciousRequestStat(self):
        r"""恶意请求事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._MaliciousRequestStat

    @MaliciousRequestStat.setter
    def MaliciousRequestStat(self, MaliciousRequestStat):
        self._MaliciousRequestStat = MaliciousRequestStat

    @property
    def PrivilegeStat(self):
        r"""本地提权事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._PrivilegeStat

    @PrivilegeStat.setter
    def PrivilegeStat(self, PrivilegeStat):
        self._PrivilegeStat = PrivilegeStat

    @property
    def ReverseShellStat(self):
        r"""反弹Shell事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._ReverseShellStat

    @ReverseShellStat.setter
    def ReverseShellStat(self, ReverseShellStat):
        self._ReverseShellStat = ReverseShellStat

    @property
    def HighRiskBashStat(self):
        r"""高危命令事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._HighRiskBashStat

    @HighRiskBashStat.setter
    def HighRiskBashStat(self, HighRiskBashStat):
        self._HighRiskBashStat = HighRiskBashStat

    @property
    def AttackLogsStat(self):
        r"""网络攻击事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._AttackLogsStat

    @AttackLogsStat.setter
    def AttackLogsStat(self, AttackLogsStat):
        self._AttackLogsStat = AttackLogsStat

    @property
    def VulHighStat(self):
        r"""高危漏洞事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._VulHighStat

    @VulHighStat.setter
    def VulHighStat(self, VulHighStat):
        self._VulHighStat = VulHighStat

    @property
    def VulNormalStat(self):
        r"""中危漏洞事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._VulNormalStat

    @VulNormalStat.setter
    def VulNormalStat(self, VulNormalStat):
        self._VulNormalStat = VulNormalStat

    @property
    def VulLowStat(self):
        r"""低危漏洞事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._VulLowStat

    @VulLowStat.setter
    def VulLowStat(self, VulLowStat):
        self._VulLowStat = VulLowStat

    @property
    def BaselineHighStat(self):
        r"""高危基线漏洞事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._BaselineHighStat

    @BaselineHighStat.setter
    def BaselineHighStat(self, BaselineHighStat):
        self._BaselineHighStat = BaselineHighStat

    @property
    def BaselineNormalStat(self):
        r"""中危基线漏事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._BaselineNormalStat

    @BaselineNormalStat.setter
    def BaselineNormalStat(self, BaselineNormalStat):
        self._BaselineNormalStat = BaselineNormalStat

    @property
    def BaselineLowStat(self):
        r"""低危基线漏事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._BaselineLowStat

    @BaselineLowStat.setter
    def BaselineLowStat(self, BaselineLowStat):
        self._BaselineLowStat = BaselineLowStat

    @property
    def MachineTotalAffectNum(self):
        r"""有未处理安全事件的机器总数
        :rtype: int
        """
        return self._MachineTotalAffectNum

    @MachineTotalAffectNum.setter
    def MachineTotalAffectNum(self, MachineTotalAffectNum):
        self._MachineTotalAffectNum = MachineTotalAffectNum

    @property
    def InvasionTotalAffectNum(self):
        r"""有未处理入侵安全事件的机器总数
        :rtype: int
        """
        return self._InvasionTotalAffectNum

    @InvasionTotalAffectNum.setter
    def InvasionTotalAffectNum(self, InvasionTotalAffectNum):
        self._InvasionTotalAffectNum = InvasionTotalAffectNum

    @property
    def VulTotalAffectNum(self):
        r"""有未处理漏洞安全事件的机器总数
        :rtype: int
        """
        return self._VulTotalAffectNum

    @VulTotalAffectNum.setter
    def VulTotalAffectNum(self, VulTotalAffectNum):
        self._VulTotalAffectNum = VulTotalAffectNum

    @property
    def BaseLineTotalAffectNum(self):
        r"""有未处理基线安全事件的机器总数
        :rtype: int
        """
        return self._BaseLineTotalAffectNum

    @BaseLineTotalAffectNum.setter
    def BaseLineTotalAffectNum(self, BaseLineTotalAffectNum):
        self._BaseLineTotalAffectNum = BaseLineTotalAffectNum

    @property
    def CyberAttackTotalAffectNum(self):
        r"""有未处理网络攻击安全事件的机器总数
        :rtype: int
        """
        return self._CyberAttackTotalAffectNum

    @CyberAttackTotalAffectNum.setter
    def CyberAttackTotalAffectNum(self, CyberAttackTotalAffectNum):
        self._CyberAttackTotalAffectNum = CyberAttackTotalAffectNum

    @property
    def VulRiskStat(self):
        r"""严重漏洞事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._VulRiskStat

    @VulRiskStat.setter
    def VulRiskStat(self, VulRiskStat):
        self._VulRiskStat = VulRiskStat

    @property
    def BaselineRiskStat(self):
        r"""严重基线漏洞事件统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._BaselineRiskStat

    @BaselineRiskStat.setter
    def BaselineRiskStat(self, BaselineRiskStat):
        self._BaselineRiskStat = BaselineRiskStat

    @property
    def VulStat(self):
        r"""漏洞数统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.EventStat`
        """
        return self._VulStat

    @VulStat.setter
    def VulStat(self, VulStat):
        self._VulStat = VulStat

    @property
    def Score(self):
        r"""安全得分
        :rtype: int
        """
        return self._Score

    @Score.setter
    def Score(self, Score):
        self._Score = Score

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeSecurityEventsCnt请求参数结构体

    """


class DescribeSecurityEventsCntResponse(AbstractModel):
    r"""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 系统漏洞事件总数
        :type WindowVul: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        :param _LinuxVul: linux系统漏洞事件总数
        :type LinuxVul: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""木马文件相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._Malware

    @Malware.setter
    def Malware(self, Malware):
        self._Malware = Malware

    @property
    def HostLogin(self):
        r"""登录审计相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._HostLogin

    @HostLogin.setter
    def HostLogin(self, HostLogin):
        self._HostLogin = HostLogin

    @property
    def BruteAttack(self):
        r"""密码破解相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._BruteAttack

    @BruteAttack.setter
    def BruteAttack(self, BruteAttack):
        self._BruteAttack = BruteAttack

    @property
    def RiskDns(self):
        r"""恶意请求相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._RiskDns

    @RiskDns.setter
    def RiskDns(self, RiskDns):
        self._RiskDns = RiskDns

    @property
    def Bash(self):
        r"""高危命令相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._Bash

    @Bash.setter
    def Bash(self, Bash):
        self._Bash = Bash

    @property
    def PrivilegeRules(self):
        r"""本地提权相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._PrivilegeRules

    @PrivilegeRules.setter
    def PrivilegeRules(self, PrivilegeRules):
        self._PrivilegeRules = PrivilegeRules

    @property
    def ReverseShell(self):
        r"""反弹Shell相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._ReverseShell

    @ReverseShell.setter
    def ReverseShell(self, ReverseShell):
        self._ReverseShell = ReverseShell

    @property
    def SysVul(self):
        r"""应用漏洞风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._SysVul

    @SysVul.setter
    def SysVul(self, SysVul):
        self._SysVul = SysVul

    @property
    def WebVul(self):
        r"""Web应用漏洞相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._WebVul

    @WebVul.setter
    def WebVul(self, WebVul):
        self._WebVul = WebVul

    @property
    def EmergencyVul(self):
        r"""应急漏洞相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._EmergencyVul

    @EmergencyVul.setter
    def EmergencyVul(self, EmergencyVul):
        self._EmergencyVul = EmergencyVul

    @property
    def BaseLine(self):
        r"""安全基线相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._BaseLine

    @BaseLine.setter
    def BaseLine(self, BaseLine):
        self._BaseLine = BaseLine

    @property
    def AttackLogs(self):
        r"""攻击检测相关风险事件
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._AttackLogs

    @AttackLogs.setter
    def AttackLogs(self, AttackLogs):
        self._AttackLogs = AttackLogs

    @property
    def EffectMachineCount(self):
        r"""受影响机器数
        :rtype: int
        """
        return self._EffectMachineCount

    @EffectMachineCount.setter
    def EffectMachineCount(self, EffectMachineCount):
        self._EffectMachineCount = EffectMachineCount

    @property
    def EventsCount(self):
        r"""所有事件总数
        :rtype: int
        """
        return self._EventsCount

    @EventsCount.setter
    def EventsCount(self, EventsCount):
        self._EventsCount = EventsCount

    @property
    def WindowVul(self):
        r"""window 系统漏洞事件总数
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._WindowVul

    @WindowVul.setter
    def WindowVul(self, WindowVul):
        self._WindowVul = WindowVul

    @property
    def LinuxVul(self):
        r"""linux系统漏洞事件总数
        :rtype: :class:`tencentcloud.cwp.v20180228.models.SecurityEventInfo`
        """
        return self._LinuxVul

    @LinuxVul.setter
    def LinuxVul(self, LinuxVul):
        self._LinuxVul = LinuxVul

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeSecurityTrendsRequest(AbstractModel):
    r"""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):
        r"""开始时间，如：2021-07-10
        :rtype: str
        """
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        r"""结束时间，如：2021-07-10
        :rtype: str
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""木马事件统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._Malwares

    @Malwares.setter
    def Malwares(self, Malwares):
        self._Malwares = Malwares

    @property
    def NonLocalLoginPlaces(self):
        r"""异地登录事件统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._NonLocalLoginPlaces

    @NonLocalLoginPlaces.setter
    def NonLocalLoginPlaces(self, NonLocalLoginPlaces):
        self._NonLocalLoginPlaces = NonLocalLoginPlaces

    @property
    def BruteAttacks(self):
        r"""密码破解事件统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._BruteAttacks

    @BruteAttacks.setter
    def BruteAttacks(self, BruteAttacks):
        self._BruteAttacks = BruteAttacks

    @property
    def Vuls(self):
        r"""漏洞统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._Vuls

    @Vuls.setter
    def Vuls(self, Vuls):
        self._Vuls = Vuls

    @property
    def BaseLines(self):
        r"""基线统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._BaseLines

    @BaseLines.setter
    def BaseLines(self, BaseLines):
        self._BaseLines = BaseLines

    @property
    def MaliciousRequests(self):
        r"""恶意请求统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._MaliciousRequests

    @MaliciousRequests.setter
    def MaliciousRequests(self, MaliciousRequests):
        self._MaliciousRequests = MaliciousRequests

    @property
    def HighRiskBashs(self):
        r"""高危命令统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._HighRiskBashs

    @HighRiskBashs.setter
    def HighRiskBashs(self, HighRiskBashs):
        self._HighRiskBashs = HighRiskBashs

    @property
    def ReverseShells(self):
        r"""反弹shell统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._ReverseShells

    @ReverseShells.setter
    def ReverseShells(self, ReverseShells):
        self._ReverseShells = ReverseShells

    @property
    def PrivilegeEscalations(self):
        r"""本地提权统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._PrivilegeEscalations

    @PrivilegeEscalations.setter
    def PrivilegeEscalations(self, PrivilegeEscalations):
        self._PrivilegeEscalations = PrivilegeEscalations

    @property
    def CyberAttacks(self):
        r"""网络攻击统计数据数组。
        :rtype: list of SecurityTrend
        """
        return self._CyberAttacks

    @CyberAttacks.setter
    def CyberAttacks(self, CyberAttacks):
        self._CyberAttacks = CyberAttacks

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeServerRelatedDirInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""唯一ID
        :rtype: int
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""服务器名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def ProtectDirNum(self):
        r"""防护目录数量
        :rtype: int
        """
        return self._ProtectDirNum

    @ProtectDirNum.setter
    def ProtectDirNum(self, ProtectDirNum):
        self._ProtectDirNum = ProtectDirNum

    @property
    def ProtectFileNum(self):
        r"""防护文件数量
        :rtype: int
        """
        return self._ProtectFileNum

    @ProtectFileNum.setter
    def ProtectFileNum(self, ProtectFileNum):
        self._ProtectFileNum = ProtectFileNum

    @property
    def ProtectTamperNum(self):
        r"""防篡改数量
        :rtype: int
        """
        return self._ProtectTamperNum

    @ProtectTamperNum.setter
    def ProtectTamperNum(self, ProtectTamperNum):
        self._ProtectTamperNum = ProtectTamperNum

    @property
    def ProtectLinkNum(self):
        r"""防护软链数量
        :rtype: int
        """
        return self._ProtectLinkNum

    @ProtectLinkNum.setter
    def ProtectLinkNum(self, ProtectLinkNum):
        self._ProtectLinkNum = ProtectLinkNum

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeServersAndRiskAndFirstInfo请求参数结构体

    """


class DescribeServersAndRiskAndFirstInfoResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""风险文件数
        :rtype: int
        """
        return self._RiskFileCount

    @RiskFileCount.setter
    def RiskFileCount(self, RiskFileCount):
        self._RiskFileCount = RiskFileCount

    @property
    def AddRiskFileCount(self):
        r"""今日新增风险文件数
        :rtype: int
        """
        return self._AddRiskFileCount

    @AddRiskFileCount.setter
    def AddRiskFileCount(self, AddRiskFileCount):
        self._AddRiskFileCount = AddRiskFileCount

    @property
    def ServersCount(self):
        r"""受影响服务器台数
        :rtype: int
        """
        return self._ServersCount

    @ServersCount.setter
    def ServersCount(self, ServersCount):
        self._ServersCount = ServersCount

    @property
    def IsFirstCheck(self):
        r"""是否试用：true-是，false-否
        :rtype: bool
        """
        return self._IsFirstCheck

    @IsFirstCheck.setter
    def IsFirstCheck(self, IsFirstCheck):
        self._IsFirstCheck = IsFirstCheck

    @property
    def ScanTime(self):
        r"""木马最近检测时间
        :rtype: str
        """
        return self._ScanTime

    @ScanTime.setter
    def ScanTime(self, ScanTime):
        self._ScanTime = ScanTime

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeShellPolicyListRequest(AbstractModel):
    r"""DescribeShellPolicyList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 限制条数,默认10
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列:[UpdateTime]
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        r"""限制条数,默认10
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列:[UpdateTime]
        :rtype: str
        """
        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 DescribeShellPolicyListResponse(AbstractModel):
    r"""DescribeShellPolicyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表数据
        :type List: list of ShellPolicyList
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表数据
        :rtype: list of ShellPolicyList
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = ShellPolicyList()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeSkillInfoRequest(AbstractModel):
    r"""DescribeSkillInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 事件id
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""事件id
        :rtype: list of int non-negative
        """
        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 DescribeSkillInfoResponse(AbstractModel):
    r"""DescribeSkillInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SkillInfoList: skill信息列表
        :type SkillInfoList: list of SkillInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SkillInfoList = None
        self._RequestId = None

    @property
    def SkillInfoList(self):
        r"""skill信息列表
        :rtype: list of SkillInfo
        """
        return self._SkillInfoList

    @SkillInfoList.setter
    def SkillInfoList(self, SkillInfoList):
        self._SkillInfoList = SkillInfoList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


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


class DescribeStrategyExistRequest(AbstractModel):
    r"""DescribeStrategyExist请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyName: 策略名
        :type StrategyName: str
        """
        self._StrategyName = None

    @property
    def StrategyName(self):
        r"""策略名
        :rtype: str
        """
        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):
    r"""DescribeStrategyExist返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IfExist: 策略是否存在, 1是 0否
        :type IfExist: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IfExist = None
        self._RequestId = None

    @property
    def IfExist(self):
        r"""策略是否存在, 1是 0否
        :rtype: int
        """
        return self._IfExist

    @IfExist.setter
    def IfExist(self, IfExist):
        self._IfExist = IfExist

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeTagMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 标签ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""标签ID
        :rtype: int
        """
        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):
    r"""DescribeTagMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表数据
        :type List: list of TagMachine
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表数据
        :rtype: list of TagMachine
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""云主机类型。
<li>CVM：表示云服务器</li>
<li>BM:  表示黑石物理机</li>
<li>ECM:  表示边缘计算服务器</li>
<li>LH:  表示轻量应用服务器</li>
<li>Other:  表示混合云服务器</li>
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        r"""机器所属地域。如：ap-guangzhou
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filters
        """
        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):
    r"""DescribeTags返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表信息
        :type List: list of Tag
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表信息
        :rtype: list of Tag
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeTrialReport请求参数结构体

    """


class DescribeTrialReportResponse(AbstractModel):
    r"""DescribeTrialReport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeUndoVulCountsRequest(AbstractModel):
    r"""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):
        r"""漏洞分类，1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IfEmergency(self):
        r"""是否应急漏洞筛选, 是 : yes
        :rtype: str
        """
        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):
    r"""DescribeUndoVulCounts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _UndoVulCount: 未处理的漏洞数
        :type UndoVulCount: int
        :param _UndoHostCount: 未处理的主机数
        :type UndoHostCount: int
        :param _NotProfessionCount: 普通版主机数
        :type NotProfessionCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._UndoVulCount = None
        self._UndoHostCount = None
        self._NotProfessionCount = None
        self._RequestId = None

    @property
    def UndoVulCount(self):
        r"""未处理的漏洞数
        :rtype: int
        """
        return self._UndoVulCount

    @UndoVulCount.setter
    def UndoVulCount(self, UndoVulCount):
        self._UndoVulCount = UndoVulCount

    @property
    def UndoHostCount(self):
        r"""未处理的主机数
        :rtype: int
        """
        return self._UndoHostCount

    @UndoHostCount.setter
    def UndoHostCount(self, UndoHostCount):
        self._UndoHostCount = UndoHostCount

    @property
    def NotProfessionCount(self):
        r"""普通版主机数
        :rtype: int
        """
        return self._NotProfessionCount

    @NotProfessionCount.setter
    def NotProfessionCount(self, NotProfessionCount):
        self._NotProfessionCount = NotProfessionCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeUsersConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ConfigName: 配置名称
<li>license_monitor 授权监控配置 0 关闭, 1开启</li>
        :type ConfigName: str
        """
        self._ConfigName = None

    @property
    def ConfigName(self):
        r"""配置名称
<li>license_monitor 授权监控配置 0 关闭, 1开启</li>
        :rtype: str
        """
        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):
    r"""DescribeUsersConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Value: 配置值
        :type Value: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Value = None
        self._RequestId = None

    @property
    def Value(self):
        r"""配置值
        :rtype: str
        """
        return self._Value

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeUsualLoginPlaces请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机安全客户端UUID
        :type Uuid: str
        """
        self._Uuid = None

    @property
    def Uuid(self):
        r"""主机安全客户端UUID
        :rtype: str
        """
        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):
    r"""DescribeUsualLoginPlaces返回参数结构体

    """

    def __init__(self):
        r"""
        :param _UsualLoginPlaces: 常用登录地数组
        :type UsualLoginPlaces: list of UsualPlace
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._UsualLoginPlaces = None
        self._RequestId = None

    @property
    def UsualLoginPlaces(self):
        r"""常用登录地数组
        :rtype: list of UsualPlace
        """
        return self._UsualLoginPlaces

    @UsualLoginPlaces.setter
    def UsualLoginPlaces(self, UsualLoginPlaces):
        self._UsualLoginPlaces = UsualLoginPlaces

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVdbAndPocInfo请求参数结构体

    """


class DescribeVdbAndPocInfoResponse(AbstractModel):
    r"""DescribeVdbAndPocInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VdbUpdateTime: 病毒库更新时间。
        :type VdbUpdateTime: str
        :param _PocUpdateTime: 漏洞库更新时间。
        :type PocUpdateTime: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VdbUpdateTime = None
        self._PocUpdateTime = None
        self._RequestId = None

    @property
    def VdbUpdateTime(self):
        r"""病毒库更新时间。
        :rtype: str
        """
        return self._VdbUpdateTime

    @VdbUpdateTime.setter
    def VdbUpdateTime(self, VdbUpdateTime):
        self._VdbUpdateTime = VdbUpdateTime

    @property
    def PocUpdateTime(self):
        r"""漏洞库更新时间。
        :rtype: str
        """
        return self._PocUpdateTime

    @PocUpdateTime.setter
    def PocUpdateTime(self, PocUpdateTime):
        self._PocUpdateTime = PocUpdateTime

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVersionCompareChart请求参数结构体

    """


class DescribeVersionCompareChartResponse(AbstractModel):
    r"""DescribeVersionCompareChart返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: json 字符串
        :type Data: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""json 字符串
        :rtype: str
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVersionStatistics请求参数结构体

    """


class DescribeVersionStatisticsResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BasicVersionNum = None
        self._ProVersionNum = None
        self._UltimateVersionNum = None
        self._GeneralVersionNum = None
        self._RequestId = None

    @property
    def BasicVersionNum(self):
        r"""基础版数量
        :rtype: int
        """
        return self._BasicVersionNum

    @BasicVersionNum.setter
    def BasicVersionNum(self, BasicVersionNum):
        self._BasicVersionNum = BasicVersionNum

    @property
    def ProVersionNum(self):
        r"""专业版数量
        :rtype: int
        """
        return self._ProVersionNum

    @ProVersionNum.setter
    def ProVersionNum(self, ProVersionNum):
        self._ProVersionNum = ProVersionNum

    @property
    def UltimateVersionNum(self):
        r"""旗舰版数量
        :rtype: int
        """
        return self._UltimateVersionNum

    @UltimateVersionNum.setter
    def UltimateVersionNum(self, UltimateVersionNum):
        self._UltimateVersionNum = UltimateVersionNum

    @property
    def GeneralVersionNum(self):
        r"""轻量版数量
        :rtype: int
        """
        return self._GeneralVersionNum

    @GeneralVersionNum.setter
    def GeneralVersionNum(self, GeneralVersionNum):
        self._GeneralVersionNum = GeneralVersionNum

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""点id列表
        :rtype: list of str
        """
        return self._VertexIds

    @VertexIds.setter
    def VertexIds(self, VertexIds):
        self._VertexIds = VertexIds

    @property
    def IncidentId(self):
        r"""事件id
        :rtype: str
        """
        return self._IncidentId

    @IncidentId.setter
    def IncidentId(self, IncidentId):
        self._IncidentId = IncidentId

    @property
    def TableName(self):
        r"""事件所在表名
        :rtype: str
        """
        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):
    r"""DescribeVertexDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VertexDetails: 指定点列表的属性信息
        :type VertexDetails: list of VertexDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VertexDetails = None
        self._RequestId = None

    @property
    def VertexDetails(self):
        r"""指定点列表的属性信息
        :rtype: list of VertexDetail
        """
        return self._VertexDetails

    @VertexDetails.setter
    def VertexDetails(self, VertexDetails):
        self._VertexDetails = VertexDetails

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""需要查询最近几天的数据，需要都 -1后传入
        :rtype: list of int non-negative
        """
        return self._LastDays

    @LastDays.setter
    def LastDays(self, LastDays):
        self._LastDays = LastDays

    @property
    def VulCategory(self):
        r"""漏洞的分类: 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IfEmergency(self):
        r"""是否为应急漏洞筛选  是: yes
        :rtype: str
        """
        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):
    r"""DescribeVulCountByDates返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulCount: 批量获得对应天数的漏洞数量
        :type VulCount: list of int non-negative
        :param _HostCount: 批量获得对应天数的主机数量
        :type HostCount: list of int non-negative
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulCount = None
        self._HostCount = None
        self._RequestId = None

    @property
    def VulCount(self):
        r"""批量获得对应天数的漏洞数量
        :rtype: list of int non-negative
        """
        return self._VulCount

    @VulCount.setter
    def VulCount(self, VulCount):
        self._VulCount = VulCount

    @property
    def HostCount(self):
        r"""批量获得对应天数的主机数量
        :rtype: list of int non-negative
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVulCveIdInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CveIds: 漏洞cve_id 列表
        :type CveIds: list of str
        """
        self._CveIds = None

    @property
    def CveIds(self):
        r"""漏洞cve_id 列表
        :rtype: list of str
        """
        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):
    r"""DescribeVulCveIdInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 详情列表
        :type List: list of VulInfoByCveId
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""详情列表
        :rtype: list of VulInfoByCveId
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件：Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询; Quuid，VulId，EventType，Status精确匹配，CreateBeginTime，CreateEndTime时间段查询
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""数据偏移
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""数据限制
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序，大小写无关：asc 升序，desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序列，严格相等：CreateTime创建时间，MergeTime合并时间，Count事件数量
        :rtype: str
        """
        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):
    r"""DescribeVulDefenceEvent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御事件列表
        :type List: list of VulDefenceEvent
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""数据总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""漏洞防御事件列表
        :rtype: list of VulDefenceEvent
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件：Level、Keywords
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""数据偏移
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""数据限制
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序，大小写无关：asc 升序，desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序列，严格相等：PublishTime发布时间
        :rtype: str
        """
        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):
    r"""DescribeVulDefenceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御列表
        :type List: list of VulDefenceRangeDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""数据总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""漏洞防御列表
        :rtype: list of VulDefenceRangeDetail
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeVulDefenceOverviewCountRequest(AbstractModel):
    r"""DescribeVulDefenceOverviewCount请求参数结构体

    """


class DescribeVulDefenceOverviewCountResponse(AbstractModel):
    r"""DescribeVulDefenceOverviewCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyCount: 策略数
        :type StrategyCount: int
        :param _StrategyOpenCount: 开启的策略数
        :type StrategyOpenCount: int
        :param _SupportDefenceVulCount: 支持的防御漏洞个数
        :type SupportDefenceVulCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._StrategyCount = None
        self._StrategyOpenCount = None
        self._SupportDefenceVulCount = None
        self._RequestId = None

    @property
    def StrategyCount(self):
        r"""策略数
        :rtype: int
        """
        return self._StrategyCount

    @StrategyCount.setter
    def StrategyCount(self, StrategyCount):
        self._StrategyCount = StrategyCount

    @property
    def StrategyOpenCount(self):
        r"""开启的策略数
        :rtype: int
        """
        return self._StrategyOpenCount

    @StrategyOpenCount.setter
    def StrategyOpenCount(self, StrategyOpenCount):
        self._StrategyOpenCount = StrategyOpenCount

    @property
    def SupportDefenceVulCount(self):
        r"""支持的防御漏洞个数
        :rtype: int
        """
        return self._SupportDefenceVulCount

    @SupportDefenceVulCount.setter
    def SupportDefenceVulCount(self, SupportDefenceVulCount):
        self._SupportDefenceVulCount = SupportDefenceVulCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._StrategyCount = params.get("StrategyCount")
        self._StrategyOpenCount = params.get("StrategyOpenCount")
        self._SupportDefenceVulCount = params.get("SupportDefenceVulCount")
        self._RequestId = params.get("RequestId")


class DescribeVulDefenceOverviewRequest(AbstractModel):
    r"""DescribeVulDefenceOverview请求参数结构体

    """


class DescribeVulDefenceOverviewResponse(AbstractModel):
    r"""DescribeVulDefenceOverview返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Overview: 漏洞防御概览信息
        :type Overview: :class:`tencentcloud.cwp.v20180228.models.VulDefenceOverview`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Overview = None
        self._RequestId = None

    @property
    def Overview(self):
        r"""漏洞防御概览信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VulDefenceOverview`
        """
        return self._Overview

    @Overview.setter
    def Overview(self, Overview):
        self._Overview = Overview

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件：Keywords: ip或者主机名,Exception，Status精确匹配
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""数据偏移
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""数据限制
        :rtype: int
        """
        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):
    r"""DescribeVulDefencePluginDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御插件信息详情列表
        :type List: list of VulDefencePluginDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""数据总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""漏洞防御插件信息详情列表
        :rtype: list of VulDefencePluginDetail
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVulDefencePluginExceptionCount请求参数结构体

    """


class DescribeVulDefencePluginExceptionCountResponse(AbstractModel):
    r"""DescribeVulDefencePluginExceptionCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Count: 当前异常插件数
        :type Count: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Count = None
        self._RequestId = None

    @property
    def Count(self):
        r"""当前异常插件数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<li>Keywords - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>Exception - String - 是否必填：否 - 插件状态 0:正常,1:异常,2:无java进程注入</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""数据偏移
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""数据限制
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序，大小写无关：asc 升序，desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序列，严格相等：CreateTime创建时间，ModifyTime更新时间
        :rtype: str
        """
        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):
    r"""DescribeVulDefencePluginStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 各主机漏洞防御插件信息列表
        :type List: list of VulDefencePluginStatus
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""数据总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""各主机漏洞防御插件信息列表
        :rtype: list of VulDefencePluginStatus
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeVulDefenceSettingListRequest(AbstractModel):
    r"""DescribeVulDefenceSettingList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Switch、Keywords
        :type Filters: list of Filter
        :param _Offset: 数据偏移
        :type Offset: int
        :param _Limit: 数据限制
        :type Limit: int
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        r"""过滤条件：Switch、Keywords
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""数据偏移
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""数据限制
        :rtype: int
        """
        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 = 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 DescribeVulDefenceSettingListResponse(AbstractModel):
    r"""DescribeVulDefenceSettingList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御设置列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of VulDefenceSetting
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""数据总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""漏洞防御设置列表
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: list of VulDefenceSetting
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = VulDefenceSetting()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulDefenceSettingRequest(AbstractModel):
    r"""DescribeVulDefenceSetting请求参数结构体

    """


class DescribeVulDefenceSettingResponse(AbstractModel):
    r"""DescribeVulDefenceSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Enable: 防御开关，0 关闭 1 开启
        :type Enable: int
        :param _Scope: 影响范围：1 全网旗舰版主机，0 quuid列表主机
        :type Scope: int
        :param _Quuids: 影响主机quuid列表
        :type Quuids: list of str
        :param _FlagshipCount: 当前旗舰版主机数量
        :type FlagshipCount: int
        :param _InstanceIds: 影响主机id列表
        :type InstanceIds: list of str
        :param _AutoInclude: 新增旗舰版主机自动加入;1是，0否 
        :type AutoInclude: int
        :param _ExcludeInstanceIds: 排除的主机id列表
        :type ExcludeInstanceIds: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Enable = None
        self._Scope = None
        self._Quuids = None
        self._FlagshipCount = None
        self._InstanceIds = None
        self._AutoInclude = None
        self._ExcludeInstanceIds = None
        self._RequestId = None

    @property
    def Enable(self):
        r"""防御开关，0 关闭 1 开启
        :rtype: int
        """
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def Scope(self):
        r"""影响范围：1 全网旗舰版主机，0 quuid列表主机
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def Quuids(self):
        r"""影响主机quuid列表
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def FlagshipCount(self):
        r"""当前旗舰版主机数量
        :rtype: int
        """
        return self._FlagshipCount

    @FlagshipCount.setter
    def FlagshipCount(self, FlagshipCount):
        self._FlagshipCount = FlagshipCount

    @property
    def InstanceIds(self):
        r"""影响主机id列表
        :rtype: list of str
        """
        return self._InstanceIds

    @InstanceIds.setter
    def InstanceIds(self, InstanceIds):
        self._InstanceIds = InstanceIds

    @property
    def AutoInclude(self):
        r"""新增旗舰版主机自动加入;1是，0否 
        :rtype: int
        """
        return self._AutoInclude

    @AutoInclude.setter
    def AutoInclude(self, AutoInclude):
        self._AutoInclude = AutoInclude

    @property
    def ExcludeInstanceIds(self):
        r"""排除的主机id列表
        :rtype: list of str
        """
        return self._ExcludeInstanceIds

    @ExcludeInstanceIds.setter
    def ExcludeInstanceIds(self, ExcludeInstanceIds):
        self._ExcludeInstanceIds = ExcludeInstanceIds

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._InstanceIds = params.get("InstanceIds")
        self._AutoInclude = params.get("AutoInclude")
        self._ExcludeInstanceIds = params.get("ExcludeInstanceIds")
        self._RequestId = params.get("RequestId")


class DescribeVulEffectHostListRequest(AbstractModel):
    r"""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):
        r"""分页limit 最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页Offset
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Filters(self):
        r"""过滤条件：
<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>
        :rtype: list of Filter
        """
        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):
    r"""DescribeVulEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 列表总数量
        :type TotalCount: int
        :param _VulEffectHostList: 影响主机列表
        :type VulEffectHostList: list of VulEffectHostList
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._VulEffectHostList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""列表总数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def VulEffectHostList(self):
        r"""影响主机列表
        :rtype: list of VulEffectHostList
        """
        return self._VulEffectHostList

    @VulEffectHostList.setter
    def VulEffectHostList(self, VulEffectHostList):
        self._VulEffectHostList = VulEffectHostList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""分页limit 最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页Offset
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Filters(self):
        r"""过滤条件：
<li>Uuid - String数组 - Uuid串数组</li>
        :rtype: list of Filter
        """
        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):
    r"""DescribeVulEffectModules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 列表总数量
        :type TotalCount: int
        :param _VulEffectModuleInfo: 影响主机列表
        :type VulEffectModuleInfo: list of VulEffectModuleInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._VulEffectModuleInfo = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""列表总数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def VulEffectModuleInfo(self):
        r"""影响主机列表
        :rtype: list of VulEffectModuleInfo
        """
        return self._VulEffectModuleInfo

    @VulEffectModuleInfo.setter
    def VulEffectModuleInfo(self, VulEffectModuleInfo):
        self._VulEffectModuleInfo = VulEffectModuleInfo

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVulEmergentMsg请求参数结构体

    """


class DescribeVulEmergentMsgResponse(AbstractModel):
    r"""DescribeVulEmergentMsg返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EmergentMsgList: 漏洞紧急通知数据
        :type EmergentMsgList: list of VulEmergentMsgInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EmergentMsgList = None
        self._RequestId = None

    @property
    def EmergentMsgList(self):
        r"""漏洞紧急通知数据
        :rtype: list of VulEmergentMsgInfo
        """
        return self._EmergentMsgList

    @EmergentMsgList.setter
    def EmergentMsgList(self, EmergentMsgList):
        self._EmergentMsgList = EmergentMsgList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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
        :param _KbId: 补丁 id
        :type KbId: int
        """
        self._FixId = None
        self._VulId = None
        self._Quuid = None
        self._KbId = None

    @property
    def FixId(self):
        r"""任务id 传VulId可以不用传FixId
        :rtype: int
        """
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def VulId(self):
        r"""漏洞id 传FixId可以不用传VulId
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Quuid(self):
        r"""主机quuid 和VulId 组合可查 某主机最近一次修复任务详情
        :rtype: str
        """
        return self._Quuid

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

    @property
    def KbId(self):
        r"""补丁 id
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId


    def _deserialize(self, params):
        self._FixId = params.get("FixId")
        self._VulId = params.get("VulId")
        self._Quuid = params.get("Quuid")
        self._KbId = params.get("KbId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""DescribeVulFixStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FixStartTime: 开始修复时间
        :type FixStartTime: str
        :param _FixEndTime: 修复结束时间，为空表示还没结束
        :type FixEndTime: str
        :param _FixSuccessCnt: 修复成功的主机数
        :type FixSuccessCnt: int
        :param _FixFailCnt: 修复失败的主机数
        :type FixFailCnt: int
        :param _HostCnt: 主机总数
        :type HostCnt: int
        :param _FixId: 修复的任务id
        :type FixId: int
        :param _SnapshotList: 修复快照状态列表
        :type SnapshotList: list of VulFixStatusSnapshotInfo
        :param _VulFixList: 修复漏洞详情列表
        :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: 快照创建失败数
        :type SnapshotFailCnt: int
        :param _IsAllowRetry: 是否允许重试 0:不允许 1：允许
        :type IsAllowRetry: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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):
        r"""开始修复时间
        :rtype: str
        """
        return self._FixStartTime

    @FixStartTime.setter
    def FixStartTime(self, FixStartTime):
        self._FixStartTime = FixStartTime

    @property
    def FixEndTime(self):
        r"""修复结束时间，为空表示还没结束
        :rtype: str
        """
        return self._FixEndTime

    @FixEndTime.setter
    def FixEndTime(self, FixEndTime):
        self._FixEndTime = FixEndTime

    @property
    def FixSuccessCnt(self):
        r"""修复成功的主机数
        :rtype: int
        """
        return self._FixSuccessCnt

    @FixSuccessCnt.setter
    def FixSuccessCnt(self, FixSuccessCnt):
        self._FixSuccessCnt = FixSuccessCnt

    @property
    def FixFailCnt(self):
        r"""修复失败的主机数
        :rtype: int
        """
        return self._FixFailCnt

    @FixFailCnt.setter
    def FixFailCnt(self, FixFailCnt):
        self._FixFailCnt = FixFailCnt

    @property
    def HostCnt(self):
        r"""主机总数
        :rtype: int
        """
        return self._HostCnt

    @HostCnt.setter
    def HostCnt(self, HostCnt):
        self._HostCnt = HostCnt

    @property
    def FixId(self):
        r"""修复的任务id
        :rtype: int
        """
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def SnapshotList(self):
        r"""修复快照状态列表
        :rtype: list of VulFixStatusSnapshotInfo
        """
        return self._SnapshotList

    @SnapshotList.setter
    def SnapshotList(self, SnapshotList):
        self._SnapshotList = SnapshotList

    @property
    def VulFixList(self):
        r"""修复漏洞详情列表
        :rtype: list of VulFixStatusInfo
        """
        return self._VulFixList

    @VulFixList.setter
    def VulFixList(self, VulFixList):
        self._VulFixList = VulFixList

    @property
    def SnapshotProgress(self):
        r"""快照创建进度0-100
        :rtype: int
        """
        return self._SnapshotProgress

    @SnapshotProgress.setter
    def SnapshotProgress(self, SnapshotProgress):
        self._SnapshotProgress = SnapshotProgress

    @property
    def FixProgress(self):
        r"""修复进度 0-100
        :rtype: int
        """
        return self._FixProgress

    @FixProgress.setter
    def FixProgress(self, FixProgress):
        self._FixProgress = FixProgress

    @property
    def RemainingTime(self):
        r"""预计剩余时间（单位秒）
        :rtype: int
        """
        return self._RemainingTime

    @RemainingTime.setter
    def RemainingTime(self, RemainingTime):
        self._RemainingTime = RemainingTime

    @property
    def IsRetrySnapshot(self):
        r"""快照是否是重试状态 0=非重试  1=重试
        :rtype: int
        """
        return self._IsRetrySnapshot

    @IsRetrySnapshot.setter
    def IsRetrySnapshot(self, IsRetrySnapshot):
        self._IsRetrySnapshot = IsRetrySnapshot

    @property
    def SnapshotFailCnt(self):
        r"""快照创建失败数
        :rtype: int
        """
        return self._SnapshotFailCnt

    @SnapshotFailCnt.setter
    def SnapshotFailCnt(self, SnapshotFailCnt):
        self._SnapshotFailCnt = SnapshotFailCnt

    @property
    def IsAllowRetry(self):
        r"""是否允许重试 0:不允许 1：允许
        :rtype: int
        """
        return self._IsAllowRetry

    @IsAllowRetry.setter
    def IsAllowRetry(self, IsAllowRetry):
        self._IsAllowRetry = IsAllowRetry

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVulHostCountScanTime请求参数结构体

    """


class DescribeVulHostCountScanTimeResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""总漏洞数
        :rtype: int
        """
        return self._TotalVulCount

    @TotalVulCount.setter
    def TotalVulCount(self, TotalVulCount):
        self._TotalVulCount = TotalVulCount

    @property
    def VulHostCount(self):
        r"""漏洞影响主机数
        :rtype: int
        """
        return self._VulHostCount

    @VulHostCount.setter
    def VulHostCount(self, VulHostCount):
        self._VulHostCount = VulHostCount

    @property
    def ScanTime(self):
        r"""扫描时间
        :rtype: str
        """
        return self._ScanTime

    @ScanTime.setter
    def ScanTime(self, ScanTime):
        self._ScanTime = ScanTime

    @property
    def IfFirstScan(self):
        r"""是否第一次检测
        :rtype: bool
        """
        return self._IfFirstScan

    @IfFirstScan.setter
    def IfFirstScan(self, IfFirstScan):
        self._IfFirstScan = IfFirstScan

    @property
    def TaskId(self):
        r"""运行中的任务号, 没有任务则为0
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def LastFixTime(self):
        r"""最后一次修复漏洞的时间
        :rtype: str
        """
        return self._LastFixTime

    @LastFixTime.setter
    def LastFixTime(self, LastFixTime):
        self._LastFixTime = LastFixTime

    @property
    def hadAutoFixVul(self):
        r"""是否有支持自动修复的漏洞事件
        :rtype: bool
        """
        return self._hadAutoFixVul

    @hadAutoFixVul.setter
    def hadAutoFixVul(self, hadAutoFixVul):
        self._hadAutoFixVul = hadAutoFixVul

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""获取top值，1-100
        :rtype: int
        """
        return self._Top

    @Top.setter
    def Top(self, Top):
        self._Top = Top

    @property
    def VulCategory(self):
        r"""1:web-cms 漏洞，2.应用漏洞   4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞，不填或者填0时返回 1，2，4，5 的总统计数据
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IsFollowVul(self):
        r"""是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        :rtype: int
        """
        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):
    r"""DescribeVulHostTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulHostTopList: 服务器风险top列表
        :type VulHostTopList: list of VulHostTopInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulHostTopList = None
        self._RequestId = None

    @property
    def VulHostTopList(self):
        r"""服务器风险top列表
        :rtype: list of VulHostTopInfo
        """
        return self._VulHostTopList

    @VulHostTopList.setter
    def VulHostTopList(self, VulHostTopList):
        self._VulHostTopList = VulHostTopList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVulInfoCvss请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _Source: 兼容应用防护漏洞防御容器视角告警里漏洞详情，默认是主机视角，可选字段，Source=tcss则为容器视角漏洞详情，后端会把VulId转为主机vul_vuls里的VulId
        :type Source: str
        """
        self._VulId = None
        self._Source = None

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Source(self):
        r"""兼容应用防护漏洞防御容器视角告警里漏洞详情，默认是主机视角，可选字段，Source=tcss则为容器视角漏洞详情，后端会把VulId转为主机vul_vuls里的VulId
        :rtype: str
        """
        return self._Source

    @Source.setter
    def Source(self, Source):
        self._Source = Source


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._Source = params.get("Source")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""DescribeVulInfoCvss返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _VulLevel: 危害等级：1-低危；2-中危；3-高危；4-严重
        :type VulLevel: int
        :param _VulType: 漏洞分类 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :type VulType: int
        :param _Description: 漏洞描述信息
        :type Description: str
        :param _RepairPlan: 修复方案
        :type RepairPlan: str
        :param _CveId: 漏洞CVEID
        :type CveId: str
        :param _Reference: 参考链接
        :type Reference: str
        :param _CVSS: CVSS信息
        :type CVSS: str
        :param _PublicDate: 发布时间
        :type PublicDate: str
        :param _CvssScore: Cvss分数
        :type CvssScore: int
        :param _CveInfo: cvss详情
        :type CveInfo: str
        :param _CvssScoreFloat: cvss 分数 浮点型
        :type CvssScoreFloat: float
        :param _Labels: 漏洞标签 多个逗号分割
        :type Labels: str
        :param _DefenseAttackCount: 已防御的攻击次数
        :type DefenseAttackCount: int
        :param _SuccessFixCount: 全网修复成功次数, 不支持自动修复的漏洞默认返回0
        :type SuccessFixCount: int
        :param _FixSwitch: 修复是否支持：0-windows/linux均不支持修复 ;1-windows/linux 均支持修复 ;2-仅linux支持修复;3-仅windows支持修复
        :type FixSwitch: int
        :param _SupportDefence: 是否支持防御： 0-不支持 1-支持
        :type SupportDefence: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 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._SupportDefence = None
        self._RequestId = None

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def VulLevel(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重
        :rtype: int
        """
        return self._VulLevel

    @VulLevel.setter
    def VulLevel(self, VulLevel):
        self._VulLevel = VulLevel

    @property
    def VulType(self):
        r"""漏洞分类 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :rtype: int
        """
        return self._VulType

    @VulType.setter
    def VulType(self, VulType):
        self._VulType = VulType

    @property
    def Description(self):
        r"""漏洞描述信息
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def RepairPlan(self):
        r"""修复方案
        :rtype: str
        """
        return self._RepairPlan

    @RepairPlan.setter
    def RepairPlan(self, RepairPlan):
        self._RepairPlan = RepairPlan

    @property
    def CveId(self):
        r"""漏洞CVEID
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def Reference(self):
        r"""参考链接
        :rtype: str
        """
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def CVSS(self):
        r"""CVSS信息
        :rtype: str
        """
        return self._CVSS

    @CVSS.setter
    def CVSS(self, CVSS):
        self._CVSS = CVSS

    @property
    def PublicDate(self):
        r"""发布时间
        :rtype: str
        """
        return self._PublicDate

    @PublicDate.setter
    def PublicDate(self, PublicDate):
        self._PublicDate = PublicDate

    @property
    def CvssScore(self):
        r"""Cvss分数
        :rtype: int
        """
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def CveInfo(self):
        r"""cvss详情
        :rtype: str
        """
        return self._CveInfo

    @CveInfo.setter
    def CveInfo(self, CveInfo):
        self._CveInfo = CveInfo

    @property
    def CvssScoreFloat(self):
        r"""cvss 分数 浮点型
        :rtype: float
        """
        return self._CvssScoreFloat

    @CvssScoreFloat.setter
    def CvssScoreFloat(self, CvssScoreFloat):
        self._CvssScoreFloat = CvssScoreFloat

    @property
    def Labels(self):
        r"""漏洞标签 多个逗号分割
        :rtype: str
        """
        return self._Labels

    @Labels.setter
    def Labels(self, Labels):
        self._Labels = Labels

    @property
    def DefenseAttackCount(self):
        r"""已防御的攻击次数
        :rtype: int
        """
        return self._DefenseAttackCount

    @DefenseAttackCount.setter
    def DefenseAttackCount(self, DefenseAttackCount):
        self._DefenseAttackCount = DefenseAttackCount

    @property
    def SuccessFixCount(self):
        r"""全网修复成功次数, 不支持自动修复的漏洞默认返回0
        :rtype: int
        """
        return self._SuccessFixCount

    @SuccessFixCount.setter
    def SuccessFixCount(self, SuccessFixCount):
        self._SuccessFixCount = SuccessFixCount

    @property
    def FixSwitch(self):
        r"""修复是否支持：0-windows/linux均不支持修复 ;1-windows/linux 均支持修复 ;2-仅linux支持修复;3-仅windows支持修复
        :rtype: int
        """
        return self._FixSwitch

    @FixSwitch.setter
    def FixSwitch(self, FixSwitch):
        self._FixSwitch = FixSwitch

    @property
    def SupportDefence(self):
        r"""是否支持防御： 0-不支持 1-支持
        :rtype: int
        """
        return self._SupportDefence

    @SupportDefence.setter
    def SupportDefence(self, SupportDefence):
        self._SupportDefence = SupportDefence

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._SupportDefence = params.get("SupportDefence")
        self._RequestId = params.get("RequestId")


class DescribeVulLabelsRequest(AbstractModel):
    r"""DescribeVulLabels请求参数结构体

    """


class DescribeVulLabelsResponse(AbstractModel):
    r"""DescribeVulLabels返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 标签列表
        :type List: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        r"""标签列表
        :rtype: list of str
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""1:web-cms 漏洞，2.应用漏洞 3:安全基线 4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞，不填或者填0时返回 1，2，4，5 的总统计数据
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IsFollowVul(self):
        r"""是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        :rtype: int
        """
        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):
    r"""DescribeVulLevelCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulLevelList: 统计结果
        :type VulLevelList: list of VulLevelInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulLevelList = None
        self._RequestId = None

    @property
    def VulLevelList(self):
        r"""统计结果
        :rtype: list of VulLevelInfo
        """
        return self._VulLevelList

    @VulLevelList.setter
    def VulLevelList(self, VulLevelList):
        self._VulLevelList = VulLevelList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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-已修复 5-检测中 6-修复中 8-修复失败</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):
        r"""返回数量，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。<li>Status - String - 是否必填：否 - 处理状态  0-待处理 1-已加白 2-已删除 3-已修复 5-检测中 6-修复中 8-修复失败</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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""可选排序字段 Level，LastTime，HostCount
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序顺序：desc  默认asc
        :rtype: str
        """
        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):
    r"""DescribeVulList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulInfoList: 漏洞列表
        :type VulInfoList: list of VulInfoList
        :param _TotalCount: 漏洞总条数
        :type TotalCount: int
        :param _FollowVulCount: 重点关注漏洞总数
        :type FollowVulCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulInfoList = None
        self._TotalCount = None
        self._FollowVulCount = None
        self._RequestId = None

    @property
    def VulInfoList(self):
        r"""漏洞列表
        :rtype: list of VulInfoList
        """
        return self._VulInfoList

    @VulInfoList.setter
    def VulInfoList(self, VulInfoList):
        self._VulInfoList = VulInfoList

    @property
    def TotalCount(self):
        r"""漏洞总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def FollowVulCount(self):
        r"""重点关注漏洞总数
        :rtype: int
        """
        return self._FollowVulCount

    @FollowVulCount.setter
    def FollowVulCount(self, FollowVulCount):
        self._FollowVulCount = FollowVulCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVulOverview请求参数结构体

    """


class DescribeVulOverviewResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""重点关注漏洞统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VulOverview`
        """
        return self._FollowVul

    @FollowVul.setter
    def FollowVul(self, FollowVul):
        self._FollowVul = FollowVul

    @property
    def AllVul(self):
        r"""全部漏洞统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VulOverview`
        """
        return self._AllVul

    @AllVul.setter
    def AllVul(self, AllVul):
        self._AllVul = AllVul

    @property
    def EffectHost(self):
        r"""影响主机统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VulOverview`
        """
        return self._EffectHost

    @EffectHost.setter
    def EffectHost(self, EffectHost):
        self._EffectHost = EffectHost

    @property
    def VulAttackEvent(self):
        r"""漏洞攻击事件（近1月）统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VulOverview`
        """
        return self._VulAttackEvent

    @VulAttackEvent.setter
    def VulAttackEvent(self, VulAttackEvent):
        self._VulAttackEvent = VulAttackEvent

    @property
    def VulDefenceEvent(self):
        r"""已防御攻击（近1月）统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VulOverview`
        """
        return self._VulDefenceEvent

    @VulDefenceEvent.setter
    def VulDefenceEvent(self, VulDefenceEvent):
        self._VulDefenceEvent = VulDefenceEvent

    @property
    def VulStore(self):
        r"""漏洞库统计
        :rtype: :class:`tencentcloud.cwp.v20180228.models.VulOverview`
        """
        return self._VulStore

    @VulStore.setter
    def VulStore(self, VulStore):
        self._VulStore = VulStore

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""
<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>

        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""限制条数,默认10,最大100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量,默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [PublishDate]
        :rtype: str
        """
        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):
    r"""DescribeVulStoreList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 漏洞信息
        :type List: list of VulStoreListInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _Remaining: 今日剩余搜索此时
        :type Remaining: int
        :param _FreeSearchTimes: 免费搜索次数
        :type FreeSearchTimes: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._Remaining = None
        self._FreeSearchTimes = None
        self._RequestId = None

    @property
    def List(self):
        r"""漏洞信息
        :rtype: list of VulStoreListInfo
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Remaining(self):
        r"""今日剩余搜索此时
        :rtype: int
        """
        return self._Remaining

    @Remaining.setter
    def Remaining(self, Remaining):
        self._Remaining = Remaining

    @property
    def FreeSearchTimes(self):
        r"""免费搜索次数
        :rtype: int
        """
        return self._FreeSearchTimes

    @FreeSearchTimes.setter
    def FreeSearchTimes(self, FreeSearchTimes):
        self._FreeSearchTimes = FreeSearchTimes

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""漏洞风险服务器top，1-100
        :rtype: int
        """
        return self._Top

    @Top.setter
    def Top(self, Top):
        self._Top = Top

    @property
    def VulCategory(self):
        r"""1:web-cms 漏洞，2.应用漏洞 4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞，不填或者填0时返回 1，2，4，5 的总统计数据
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IsFollowVul(self):
        r"""是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        :rtype: int
        """
        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):
    r"""DescribeVulTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulTopList: 漏洞top列表
        :type VulTopList: list of VulTopInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulTopList = None
        self._RequestId = None

    @property
    def VulTopList(self):
        r"""漏洞top列表
        :rtype: list of VulTopInfo
        """
        return self._VulTopList

    @VulTopList.setter
    def VulTopList(self, VulTopList):
        self._VulTopList = VulTopList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeVulTrend请求参数结构体

    """


class DescribeVulTrendResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulEventCount = None
        self._IncreaseVulEventCount = None
        self._HotVulCount = None
        self._IncreaseHotVulCount = None
        self._RequestId = None

    @property
    def VulEventCount(self):
        r"""近半年漏洞利用攻击事件数量
        :rtype: int
        """
        return self._VulEventCount

    @VulEventCount.setter
    def VulEventCount(self, VulEventCount):
        self._VulEventCount = VulEventCount

    @property
    def IncreaseVulEventCount(self):
        r"""近半年新增漏洞利用攻击事件数量
        :rtype: int
        """
        return self._IncreaseVulEventCount

    @IncreaseVulEventCount.setter
    def IncreaseVulEventCount(self, IncreaseVulEventCount):
        self._IncreaseVulEventCount = IncreaseVulEventCount

    @property
    def HotVulCount(self):
        r"""近半年热点攻击漏洞
        :rtype: int
        """
        return self._HotVulCount

    @HotVulCount.setter
    def HotVulCount(self, HotVulCount):
        self._HotVulCount = HotVulCount

    @property
    def IncreaseHotVulCount(self):
        r"""近半年新增热点攻击漏洞
        :rtype: int
        """
        return self._IncreaseHotVulCount

    @IncreaseHotVulCount.setter
    def IncreaseHotVulCount(self, IncreaseHotVulCount):
        self._IncreaseHotVulCount = IncreaseHotVulCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""告警类型
        :rtype: int
        """
        return self._Type

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

    @property
    def Limit(self):
        r"""分页单页限制数目, 0表示不分页
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""分页的偏移量，默认值为0
        :rtype: int
        """
        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):
    r"""DescribeWarningHostConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :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 _TotalCount: 机器列表总数量
        :type TotalCount: int
        :param _ItemLabelIds: 项目或标签的id列表，自选主机时为空
        :type ItemLabelIds: list of str
        :param _ExcludedQuuids: 需排除的机器列表
        :type ExcludedQuuids: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostRange = None
        self._ItemLabels = None
        self._Quuids = None
        self._TotalCount = None
        self._ItemLabelIds = None
        self._ExcludedQuuids = None
        self._RequestId = None

    @property
    def HostRange(self):
        r"""告警主机范围类型，0:全部主机，1:按所属项目选，2:按腾讯云标签选，3:按主机安全标签选，4:自选主机
        :rtype: int
        """
        return self._HostRange

    @HostRange.setter
    def HostRange(self, HostRange):
        self._HostRange = HostRange

    @property
    def ItemLabels(self):
        r"""项目或标签的名称列表，自选主机时为空
        :rtype: list of str
        """
        return self._ItemLabels

    @ItemLabels.setter
    def ItemLabels(self, ItemLabels):
        self._ItemLabels = ItemLabels

    @property
    def Quuids(self):
        r"""机器列表
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def TotalCount(self):
        r"""机器列表总数量
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ItemLabelIds(self):
        r"""项目或标签的id列表，自选主机时为空
        :rtype: list of str
        """
        return self._ItemLabelIds

    @ItemLabelIds.setter
    def ItemLabelIds(self, ItemLabelIds):
        self._ItemLabelIds = ItemLabelIds

    @property
    def ExcludedQuuids(self):
        r"""需排除的机器列表
        :rtype: list of str
        """
        return self._ExcludedQuuids

    @ExcludedQuuids.setter
    def ExcludedQuuids(self, ExcludedQuuids):
        self._ExcludedQuuids = ExcludedQuuids

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._ExcludedQuuids = params.get("ExcludedQuuids")
        self._RequestId = params.get("RequestId")


class DescribeWarningListRequest(AbstractModel):
    r"""DescribeWarningList请求参数结构体

    """


class DescribeWarningListResponse(AbstractModel):
    r"""DescribeWarningList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WarningInfoList: 获取告警列表
        :type WarningInfoList: list of WarningInfoObj
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WarningInfoList = None
        self._RequestId = None

    @property
    def WarningInfoList(self):
        r"""获取告警列表
        :rtype: list of WarningInfoObj
        """
        return self._WarningInfoList

    @WarningInfoList.setter
    def WarningInfoList(self, WarningInfoList):
        self._WarningInfoList = WarningInfoList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件
        :rtype: list of Filter
        """
        return self._Filter

    @Filter.setter
    def Filter(self, Filter):
        self._Filter = Filter

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式 [asc:升序|desc:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段
        :rtype: str
        """
        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):
    r"""DescribeWebHookPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 策略列表
        :type List: list of WebHookPolicy
        :param _TotalCount: 策略列表总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""策略列表
        :rtype: list of WebHookPolicy
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""策略列表总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件
        :rtype: list of Filter
        """
        return self._Filter

    @Filter.setter
    def Filter(self, Filter):
        self._Filter = Filter

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式 [asc:升序|desc:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段
        :rtype: str
        """
        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):
    r"""DescribeWebHookReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 告警接收人列表
        :type List: list of WebHookReceiver
        :param _TotalCount: 个数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""告警接收人列表
        :rtype: list of WebHookReceiver
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""个数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeWebHookReceiverUsage请求参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 告警接收人列表
        :type List: list of WebHookReceiver
        """
        self._List = None

    @property
    def List(self):
        r"""告警接收人列表
        :rtype: list of WebHookReceiver
        """
        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):
    r"""DescribeWebHookReceiverUsage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 告警接收人的关联策略使用信息
        :type List: list of WebHookReceiverUsage
        :param _TotalCount: 个数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""告警接收人的关联策略使用信息
        :rtype: list of WebHookReceiverUsage
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""个数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeWebHookRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则Id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        r"""规则Id
        :rtype: int
        """
        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):
    r"""DescribeWebHookRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 规则内容
        :type Data: :class:`tencentcloud.cwp.v20180228.models.WebHookRuleDetail`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        r"""规则内容
        :rtype: :class:`tencentcloud.cwp.v20180228.models.WebHookRuleDetail`
        """
        return self._Data

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

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件
        :rtype: list of Filter
        """
        return self._Filter

    @Filter.setter
    def Filter(self, Filter):
        self._Filter = Filter

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序方式 [asc:升序|desc:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段
        :rtype: str
        """
        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):
    r"""DescribeWebHookRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 规则内容
        :type List: list of WebHookRuleSummary
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        r"""规则内容
        :rtype: list of WebHookRuleSummary
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>EventType - String - 是否必填：否 - 事件类型</li>
<li>EventStatus - String - 是否必填：否 - 事件状态</li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def By(self):
        r"""排序方式：CreateTime 或 RestoreTime，默认为CreateTime
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序方式，0降序，1升序，默认为0
        :rtype: int
        """
        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):
    r"""DescribeWebPageEventList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 防护事件列表信息
        :type List: list of ProtectEventLists
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""防护事件列表信息
        :rtype: list of ProtectEventLists
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeWebPageGeneralize请求参数结构体

    """


class DescribeWebPageGeneralizeResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""防护监测 0 未开启 1 已开启 2 异常
        :rtype: int
        """
        return self._ProtectMonitor

    @ProtectMonitor.setter
    def ProtectMonitor(self, ProtectMonitor):
        self._ProtectMonitor = ProtectMonitor

    @property
    def ProtectDirNum(self):
        r"""防护目录数
        :rtype: int
        """
        return self._ProtectDirNum

    @ProtectDirNum.setter
    def ProtectDirNum(self, ProtectDirNum):
        self._ProtectDirNum = ProtectDirNum

    @property
    def ProtectFileNum(self):
        r"""防护文件数
        :rtype: int
        """
        return self._ProtectFileNum

    @ProtectFileNum.setter
    def ProtectFileNum(self, ProtectFileNum):
        self._ProtectFileNum = ProtectFileNum

    @property
    def TamperFileNum(self):
        r"""篡改文件数
        :rtype: int
        """
        return self._TamperFileNum

    @TamperFileNum.setter
    def TamperFileNum(self, TamperFileNum):
        self._TamperFileNum = TamperFileNum

    @property
    def TamperNum(self):
        r"""篡改数
        :rtype: int
        """
        return self._TamperNum

    @TamperNum.setter
    def TamperNum(self, TamperNum):
        self._TamperNum = TamperNum

    @property
    def ProtectToday(self):
        r"""今日防护数
        :rtype: int
        """
        return self._ProtectToday

    @ProtectToday.setter
    def ProtectToday(self, ProtectToday):
        self._ProtectToday = ProtectToday

    @property
    def ProtectHostNum(self):
        r"""防护主机数
        :rtype: int
        """
        return self._ProtectHostNum

    @ProtectHostNum.setter
    def ProtectHostNum(self, ProtectHostNum):
        self._ProtectHostNum = ProtectHostNum

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeWebPageProtectStat请求参数结构体

    """


class DescribeWebPageProtectStatResponse(AbstractModel):
    r"""DescribeWebPageProtectStat返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileTamperNum: 文件篡改信息
        :type FileTamperNum: list of ProtectStat
        :param _ProtectFileType: 防护文件分类信息
        :type ProtectFileType: list of ProtectStat
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileTamperNum = None
        self._ProtectFileType = None
        self._RequestId = None

    @property
    def FileTamperNum(self):
        r"""文件篡改信息
        :rtype: list of ProtectStat
        """
        return self._FileTamperNum

    @FileTamperNum.setter
    def FileTamperNum(self, FileTamperNum):
        self._FileTamperNum = FileTamperNum

    @property
    def ProtectFileType(self):
        r"""防护文件分类信息
        :rtype: list of ProtectStat
        """
        return self._ProtectFileType

    @ProtectFileType.setter
    def ProtectFileType(self, ProtectFileType):
        self._ProtectFileType = ProtectFileType

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""DescribeWebPageServiceInfo请求参数结构体

    """


class DescribeWebPageServiceInfoResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""是否已购服务：true-是，false-否
        :rtype: bool
        """
        return self._Status

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

    @property
    def UsedNum(self):
        r"""已使用授权数
        :rtype: int
        """
        return self._UsedNum

    @UsedNum.setter
    def UsedNum(self, UsedNum):
        self._UsedNum = UsedNum

    @property
    def ResidueNum(self):
        r"""剩余授权数
        :rtype: int
        """
        return self._ResidueNum

    @ResidueNum.setter
    def ResidueNum(self, ResidueNum):
        self._ResidueNum = ResidueNum

    @property
    def BuyNum(self):
        r"""已购授权数
        :rtype: int
        """
        return self._BuyNum

    @BuyNum.setter
    def BuyNum(self, BuyNum):
        self._BuyNum = BuyNum

    @property
    def ExpireNum(self):
        r"""临近到期数量
        :rtype: int
        """
        return self._ExpireNum

    @ExpireNum.setter
    def ExpireNum(self, ExpireNum):
        self._ExpireNum = ExpireNum

    @property
    def AllAuthorizedMachines(self):
        r"""所有授权机器信息
        :rtype: list of ProtectMachineInfo
        """
        return self._AllAuthorizedMachines

    @AllAuthorizedMachines.setter
    def AllAuthorizedMachines(self, AllAuthorizedMachines):
        self._AllAuthorizedMachines = AllAuthorizedMachines

    @property
    def ExpireAuthorizedMachines(self):
        r"""临近到期授权机器信息
        :rtype: list of ProtectMachine
        """
        return self._ExpireAuthorizedMachines

    @ExpireAuthorizedMachines.setter
    def ExpireAuthorizedMachines(self, ExpireAuthorizedMachines):
        self._ExpireAuthorizedMachines = ExpireAuthorizedMachines

    @property
    def ExpiredNum(self):
        r"""已过期授权数
        :rtype: int
        """
        return self._ExpiredNum

    @ExpiredNum.setter
    def ExpiredNum(self, ExpiredNum):
        self._ExpiredNum = ExpiredNum

    @property
    def ProtectDirNum(self):
        r"""防护目录数
        :rtype: int
        """
        return self._ProtectDirNum

    @ProtectDirNum.setter
    def ProtectDirNum(self, ProtectDirNum):
        self._ProtectDirNum = ProtectDirNum

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 DescribeWindowsPatchListRequest(AbstractModel):
    r"""DescribeWindowsPatchList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数
        :type Limit: int
        :param _Order: 排序顺序：desc 默认asc
        :type Order: str
        :param _By: 可选排序字段
<li>PublishTime</li>
<li>LastScanTime</li>
<li>HostCount</li>
        :type By: str
        :param _Offset: 偏移量，默认为0
        :type Offset: int
        :param _Filters: 过滤条件。  <li>Status : string类型 非必填 处理状态 0待处理,1忽略,3修复</li><li>ShowNew : int类型 非必填 展示最新版本 1-开启 0-关闭</li><li>Name : string类型 非必填 补丁名称</li><li>KbNo : string类型 非必填 补丁编号</li><li>VulName : string类型 非必填 漏洞名称</li><li>CVEId : string类型 非必填 漏洞CVE编号</li><li>Uuid : string类型 非必填 主机uuid</li>
        :type Filters: list of Filters
        """
        self._Limit = None
        self._Order = None
        self._By = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        r"""分页参数
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        r"""排序顺序：desc 默认asc
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序字段
<li>PublishTime</li>
<li>LastScanTime</li>
<li>HostCount</li>
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Offset(self):
        r"""偏移量，默认为0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤条件。  <li>Status : string类型 非必填 处理状态 0待处理,1忽略,3修复</li><li>ShowNew : int类型 非必填 展示最新版本 1-开启 0-关闭</li><li>Name : string类型 非必填 补丁名称</li><li>KbNo : string类型 非必填 补丁编号</li><li>VulName : string类型 非必填 漏洞名称</li><li>CVEId : string类型 非必填 漏洞CVE编号</li><li>Uuid : string类型 非必填 主机uuid</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        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 DescribeWindowsPatchListResponse(AbstractModel):
    r"""DescribeWindowsPatchList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 补丁和漏洞的总数
        :type TotalCount: int
        :param _PatchInfoList: Windows补丁信息列表
        :type PatchInfoList: list of EventPatchInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._PatchInfoList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        r"""补丁和漏洞的总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def PatchInfoList(self):
        r"""Windows补丁信息列表
        :rtype: list of EventPatchInfo
        """
        return self._PatchInfoList

    @PatchInfoList.setter
    def PatchInfoList(self, PatchInfoList):
        self._PatchInfoList = PatchInfoList

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("PatchInfoList") is not None:
            self._PatchInfoList = []
            for item in params.get("PatchInfoList"):
                obj = EventPatchInfo()
                obj._deserialize(item)
                self._PatchInfoList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeYDRaspBlackWhiteRequest(AbstractModel):
    r"""DescribeYDRaspBlackWhite请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>WhiteContent - String - 是否必填：否 - 加白内容搜索</li>
<li>GroupName - String - 是否必填：否 - 规则名称搜索</li>
<li>Source - String - 是否必填：否 - 加白的模块</li>
<li>Status - String - 是否必填：否 - 策略开关</li>
        :type Filters: list of Filter
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _By: 排序字段，目前有：CreateTime、ModifyTime，默认按照ModifyTime排序
        :type By: str
        :param _Order: 排序升序还是倒序，DESC有ASC、
        :type Order: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._By = None
        self._Order = None

    @property
    def Filters(self):
        r"""过滤条件。
<li>WhiteContent - String - 是否必填：否 - 加白内容搜索</li>
<li>GroupName - String - 是否必填：否 - 规则名称搜索</li>
<li>Source - String - 是否必填：否 - 加白的模块</li>
<li>Status - String - 是否必填：否 - 策略开关</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""返回数量，默认为10，最大值为100。
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def By(self):
        r"""排序字段，目前有：CreateTime、ModifyTime，默认按照ModifyTime排序
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序升序还是倒序，DESC有ASC、
        :rtype: str
        """
        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 = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        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 DescribeYDRaspBlackWhiteResponse(AbstractModel):
    r"""DescribeYDRaspBlackWhite返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of YDRaspBlackWhiteListItem
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        r"""列表内容
        :rtype: list of YDRaspBlackWhiteListItem
        """
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        r"""总条数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = YDRaspBlackWhiteListItem()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DestroyOrderRequest(AbstractModel):
    r"""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):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def LicenseType(self):
        r"""授权类型 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        :rtype: int
        """
        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):
    r"""DestroyOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DuplicateHosts(AbstractModel):
    r"""批量添加白名单：重复情况重复列表实体

    """

    def __init__(self):
        r"""
        :param _Quuid: Quuid
        :type Quuid: str
        :param _Uuid: Uuid
        :type Uuid: str
        :param _Id: Id
        :type Id: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None

    @property
    def Quuid(self):
        r"""Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Id(self):
        r"""Id
        :rtype: int
        """
        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):
    r"""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
        :param _Descript: 策略描述
        :type Descript: str
        :param _Status: 生效与否  0:不生效 1:生效
        :type Status: int
        :param _BashAction: 0:告警  1:白名单  2:拦截
        :type BashAction: int
        :param _Scope: 生效范围（0:一组quuid 1:所有专业版 2:所有专业版+旗舰版 3:所有主机）
        :type Scope: int
        :param _Quuids: 生效主机的QUUID集合
        :type Quuids: list of str
        """
        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
        self._Descript = None
        self._Status = None
        self._BashAction = None
        self._Scope = None
        self._Quuids = None

    @property
    def Id(self):
        r"""规则ID（新增时不填）
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuids(self):
        r"""客户端ID数组
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def HostIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Name(self):
        r"""规则名称，编辑时不可修改规则名称
        :rtype: str
        """
        return self._Name

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

    @property
    def Level(self):
        r"""危险等级(0:无，1: 高危 2:中危 3: 低危)
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Rule(self):
        r"""正则表达式 ，编辑时不可修改正则表达式，需要对内容QueryEscape后再base64
        :rtype: str
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def IsGlobal(self):
        r"""是否全局规则(默认否)：1-全局，0-非全局
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def White(self):
        r"""0=黑名单， 1=白名单
        :rtype: int
        """
        return self._White

    @White.setter
    def White(self, White):
        self._White = White

    @property
    def EventId(self):
        r"""事件列表点击“加入白名单”时,需要传EventId 事件的id
        :rtype: int
        """
        return self._EventId

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

    @property
    def DealOldEvents(self):
        r"""是否处理旧事件为白名单 0=不处理 1=处理
        :rtype: int
        """
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Descript(self):
        r"""策略描述
        :rtype: str
        """
        return self._Descript

    @Descript.setter
    def Descript(self, Descript):
        self._Descript = Descript

    @property
    def Status(self):
        r"""生效与否  0:不生效 1:生效
        :rtype: int
        """
        return self._Status

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

    @property
    def BashAction(self):
        r"""0:告警  1:白名单  2:拦截
        :rtype: int
        """
        return self._BashAction

    @BashAction.setter
    def BashAction(self, BashAction):
        self._BashAction = BashAction

    @property
    def Scope(self):
        r"""生效范围（0:一组quuid 1:所有专业版 2:所有专业版+旗舰版 3:所有主机）
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def Quuids(self):
        r"""生效主机的QUUID集合
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    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")
        self._Descript = params.get("Descript")
        self._Status = params.get("Status")
        self._BashAction = params.get("BashAction")
        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 EditBashRulesResponse(AbstractModel):
    r"""EditBashRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EditPrivilegeRulesRequest(AbstractModel):
    r"""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):
        r"""规则ID(新增时请留空)
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuids(self):
        r"""客户端ID数组
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def HostIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

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

    @property
    def SMode(self):
        r"""是否S权限进程
        :rtype: int
        """
        return self._SMode

    @SMode.setter
    def SMode(self, SMode):
        self._SMode = SMode

    @property
    def IsGlobal(self):
        r"""是否全局规则(默认否)
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def EventId(self):
        r"""事件列表和详情点击加白时关联的事件id (新增规则时请留空)
        :rtype: int
        """
        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):
    r"""EditPrivilegeRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EditReverseShellRulesRequest(AbstractModel):
    r"""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):
        r"""规则ID(新增时请留空)
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuids(self):
        r"""客户端ID数组
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def HostIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def DestIp(self):
        r"""目标IP
        :rtype: str
        """
        return self._DestIp

    @DestIp.setter
    def DestIp(self, DestIp):
        self._DestIp = DestIp

    @property
    def DestPort(self):
        r"""目标端口
        :rtype: str
        """
        return self._DestPort

    @DestPort.setter
    def DestPort(self, DestPort):
        self._DestPort = DestPort

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

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

    @property
    def IsGlobal(self):
        r"""是否全局规则(默认否)
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def EventId(self):
        r"""事件列表和详情点击加白时关联的事件id (新增规则时请留空)
        :rtype: int
        """
        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):
    r"""EditReverseShellRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EditTagsRequest(AbstractModel):
    r"""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):
        r"""标签名
        :rtype: str
        """
        return self._Name

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

    @property
    def Id(self):
        r"""标签ID
        :rtype: int
        """
        return self._Id

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

    @property
    def Quuids(self):
        r"""Quuid
        :rtype: list of str
        """
        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):
    r"""EditTags返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EffectiveMachineInfo(AbstractModel):
    r"""批量导入机器信息.

    """

    def __init__(self):
        r"""
        :param _MachineName: 机器名称
        :type MachineName: str
        :param _MachinePublicIp: 机器公网ip
        :type MachinePublicIp: str
        :param _MachinePrivateIp: 机器内网ip
        :type MachinePrivateIp: str
        :param _MachineTag: 机器标签
        :type MachineTag: list of MachineTag
        :param _Quuid: 机器Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _KernelVersion: 内核版本号
        :type KernelVersion: str
        :param _MachineStatus: 在线状态 OFFLINE，ONLINE
        :type MachineStatus: str
        :param _LicenseOrder: 授权订单对象
        :type LicenseOrder: :class:`tencentcloud.cwp.v20180228.models.LicenseOrder`
        :param _VulNum: 漏洞数量
        :type VulNum: int
        :param _CloudTags: 云标签信息
        :type CloudTags: list of Tags
        :param _InstanceID: 机器instance ID
        :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):
        r"""机器名称
        :rtype: str
        """
        return self._MachineName

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

    @property
    def MachinePublicIp(self):
        r"""机器公网ip
        :rtype: str
        """
        return self._MachinePublicIp

    @MachinePublicIp.setter
    def MachinePublicIp(self, MachinePublicIp):
        self._MachinePublicIp = MachinePublicIp

    @property
    def MachinePrivateIp(self):
        r"""机器内网ip
        :rtype: str
        """
        return self._MachinePrivateIp

    @MachinePrivateIp.setter
    def MachinePrivateIp(self, MachinePrivateIp):
        self._MachinePrivateIp = MachinePrivateIp

    @property
    def MachineTag(self):
        r"""机器标签
        :rtype: list of MachineTag
        """
        return self._MachineTag

    @MachineTag.setter
    def MachineTag(self, MachineTag):
        self._MachineTag = MachineTag

    @property
    def Quuid(self):
        r"""机器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def KernelVersion(self):
        r"""内核版本号
        :rtype: str
        """
        return self._KernelVersion

    @KernelVersion.setter
    def KernelVersion(self, KernelVersion):
        self._KernelVersion = KernelVersion

    @property
    def MachineStatus(self):
        r"""在线状态 OFFLINE，ONLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def LicenseOrder(self):
        r"""授权订单对象
        :rtype: :class:`tencentcloud.cwp.v20180228.models.LicenseOrder`
        """
        return self._LicenseOrder

    @LicenseOrder.setter
    def LicenseOrder(self, LicenseOrder):
        self._LicenseOrder = LicenseOrder

    @property
    def VulNum(self):
        r"""漏洞数量
        :rtype: int
        """
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def CloudTags(self):
        r"""云标签信息
        :rtype: list of Tags
        """
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def InstanceID(self):
        r"""机器instance ID
        :rtype: str
        """
        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 EmergencyVul(AbstractModel):
    r"""应急漏洞信息

    """

    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编号
        :type CveId: str
        :param _CvssScore: CVSS评分
        :type CvssScore: float
        :param _Labels: 漏洞标签 多个逗号分割
        :type Labels: str
        :param _HostCount: 影响机器数
        :type HostCount: int
        :param _IsSupportDefense: 是否支持防御， 0:不支持 1:支持
        :type IsSupportDefense: int
        :param _DefenseAttackCount: 已防御的攻击次数
        :type DefenseAttackCount: int
        :param _Method: 检测规则 0 - 版本比对, 1 - POC验证
        :type Method: int
        :param _AttackLevel: 攻击热度级别
        :type AttackLevel: int
        :param _DefenseState: 是否有漏洞主机开启漏洞防御
        :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):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Level(self):
        r"""漏洞级别
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def PublishDate(self):
        r"""发布日期
        :rtype: str
        """
        return self._PublishDate

    @PublishDate.setter
    def PublishDate(self, PublishDate):
        self._PublishDate = PublishDate

    @property
    def Category(self):
        r"""漏洞分类
        :rtype: int
        """
        return self._Category

    @Category.setter
    def Category(self, Category):
        self._Category = Category

    @property
    def Status(self):
        r"""漏洞状态 0未检测 1有风险 ，2无风险 ，3 检查中展示progress
        :rtype: int
        """
        return self._Status

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

    @property
    def LastScanTime(self):
        r"""最后扫描时间
        :rtype: str
        """
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def Progress(self):
        r"""扫描进度
        :rtype: int
        """
        return self._Progress

    @Progress.setter
    def Progress(self, Progress):
        self._Progress = Progress

    @property
    def CveId(self):
        r"""cve编号
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def CvssScore(self):
        r"""CVSS评分
        :rtype: float
        """
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def Labels(self):
        r"""漏洞标签 多个逗号分割
        :rtype: str
        """
        return self._Labels

    @Labels.setter
    def Labels(self, Labels):
        self._Labels = Labels

    @property
    def HostCount(self):
        r"""影响机器数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def IsSupportDefense(self):
        r"""是否支持防御， 0:不支持 1:支持
        :rtype: int
        """
        return self._IsSupportDefense

    @IsSupportDefense.setter
    def IsSupportDefense(self, IsSupportDefense):
        self._IsSupportDefense = IsSupportDefense

    @property
    def DefenseAttackCount(self):
        r"""已防御的攻击次数
        :rtype: int
        """
        return self._DefenseAttackCount

    @DefenseAttackCount.setter
    def DefenseAttackCount(self, DefenseAttackCount):
        self._DefenseAttackCount = DefenseAttackCount

    @property
    def Method(self):
        r"""检测规则 0 - 版本比对, 1 - POC验证
        :rtype: int
        """
        return self._Method

    @Method.setter
    def Method(self, Method):
        self._Method = Method

    @property
    def AttackLevel(self):
        r"""攻击热度级别
        :rtype: int
        """
        return self._AttackLevel

    @AttackLevel.setter
    def AttackLevel(self, AttackLevel):
        self._AttackLevel = AttackLevel

    @property
    def DefenseState(self):
        r"""是否有漏洞主机开启漏洞防御
        :rtype: bool
        """
        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 EventPatchInfo(AbstractModel):
    r"""补丁详细信息

    """

    def __init__(self):
        r"""
        :param _Name: 补丁名
        :type Name: str
        :param _KbNo: 补丁编号
        :type KbNo: str
        :param _PublishTime: 披露时间
        :type PublishTime: str
        :param _EffectHostCount: 影响主机数量
        :type EffectHostCount: int
        :param _RelateVulCount: 关联的漏洞数
        :type RelateVulCount: int
        :param _RelateVulList: 关联的漏洞编号数组
        :type RelateVulList: list of str
        :param _IsNew: 是否为最新披露，0否，1是，默认为否
        :type IsNew: int
        :param _LastScanTime: 最后扫描时间
        :type LastScanTime: str
        :param _Status: 0待处理,1忽略,3修复
        :type Status: int
        :param _KbPreCondition: 安装该kb的前置条件，一般为其他kb，且可能有多个，kb之间用", "分隔
        :type KbPreCondition: str
        :param _RelatedProduct: 该kb关联的windows product名称
        :type RelatedProduct: str
        :param _KbId: 补丁id
        :type KbId: int
        :param _Ids: 相关kb事件的id集合
        :type Ids: str
        """
        self._Name = None
        self._KbNo = None
        self._PublishTime = None
        self._EffectHostCount = None
        self._RelateVulCount = None
        self._RelateVulList = None
        self._IsNew = None
        self._LastScanTime = None
        self._Status = None
        self._KbPreCondition = None
        self._RelatedProduct = None
        self._KbId = None
        self._Ids = None

    @property
    def Name(self):
        r"""补丁名
        :rtype: str
        """
        return self._Name

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

    @property
    def KbNo(self):
        r"""补丁编号
        :rtype: str
        """
        return self._KbNo

    @KbNo.setter
    def KbNo(self, KbNo):
        self._KbNo = KbNo

    @property
    def PublishTime(self):
        r"""披露时间
        :rtype: str
        """
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def EffectHostCount(self):
        r"""影响主机数量
        :rtype: int
        """
        return self._EffectHostCount

    @EffectHostCount.setter
    def EffectHostCount(self, EffectHostCount):
        self._EffectHostCount = EffectHostCount

    @property
    def RelateVulCount(self):
        r"""关联的漏洞数
        :rtype: int
        """
        return self._RelateVulCount

    @RelateVulCount.setter
    def RelateVulCount(self, RelateVulCount):
        self._RelateVulCount = RelateVulCount

    @property
    def RelateVulList(self):
        r"""关联的漏洞编号数组
        :rtype: list of str
        """
        return self._RelateVulList

    @RelateVulList.setter
    def RelateVulList(self, RelateVulList):
        self._RelateVulList = RelateVulList

    @property
    def IsNew(self):
        r"""是否为最新披露，0否，1是，默认为否
        :rtype: int
        """
        return self._IsNew

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

    @property
    def LastScanTime(self):
        r"""最后扫描时间
        :rtype: str
        """
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def Status(self):
        r"""0待处理,1忽略,3修复
        :rtype: int
        """
        return self._Status

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

    @property
    def KbPreCondition(self):
        r"""安装该kb的前置条件，一般为其他kb，且可能有多个，kb之间用", "分隔
        :rtype: str
        """
        return self._KbPreCondition

    @KbPreCondition.setter
    def KbPreCondition(self, KbPreCondition):
        self._KbPreCondition = KbPreCondition

    @property
    def RelatedProduct(self):
        r"""该kb关联的windows product名称
        :rtype: str
        """
        return self._RelatedProduct

    @RelatedProduct.setter
    def RelatedProduct(self, RelatedProduct):
        self._RelatedProduct = RelatedProduct

    @property
    def KbId(self):
        r"""补丁id
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId

    @property
    def Ids(self):
        r"""相关kb事件的id集合
        :rtype: str
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._KbNo = params.get("KbNo")
        self._PublishTime = params.get("PublishTime")
        self._EffectHostCount = params.get("EffectHostCount")
        self._RelateVulCount = params.get("RelateVulCount")
        self._RelateVulList = params.get("RelateVulList")
        self._IsNew = params.get("IsNew")
        self._LastScanTime = params.get("LastScanTime")
        self._Status = params.get("Status")
        self._KbPreCondition = params.get("KbPreCondition")
        self._RelatedProduct = params.get("RelatedProduct")
        self._KbId = params.get("KbId")
        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 EventStat(AbstractModel):
    r"""未处理的安全事件统计信息

    """

    def __init__(self):
        r"""
        :param _EventsNum: 事件数
        :type EventsNum: int
        :param _MachineAffectNum: 受影响的主机数
        :type MachineAffectNum: int
        """
        self._EventsNum = None
        self._MachineAffectNum = None

    @property
    def EventsNum(self):
        r"""事件数
        :rtype: int
        """
        return self._EventsNum

    @EventsNum.setter
    def EventsNum(self, EventsNum):
        self._EventsNum = EventsNum

    @property
    def MachineAffectNum(self):
        r"""受影响的主机数
        :rtype: int
        """
        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 ExportAssetAppListRequest(AbstractModel):
    r"""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 - 是否必填：否 - 类型	: 仅linux0: 全部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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。<li>AppName- string - 是否必填：否 - 应用名搜索</li><li>IP - String - 是否必填：否 - 主机ip</li><li>MachineName - String - 是否必填：否 - 主机名称</li><li>InstanceID - string - 是否必填：否 - 实例ID</li><li>Type - int - 是否必填：否 - 类型	: 仅linux0: 全部1: 运维2 : 数据库3 : 安全4 : 可疑应用5 : 系统架构6 : 系统应用7 : WEB服务99:其他</li><li>OsType - uint64 - 是否必填：否 - Windows/Linux</li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime|ProcessCount]
        :rtype: str
        """
        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):
    r"""ExportAssetAppList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>Name- string - 是否必填：否 - 包名</li>
<li>User- string - 是否必填：否 - 用户名</li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序依据[FirstTime|Size|ProcessCount|ModuleCount]
        :rtype: str
        """
        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):
    r"""ExportAssetCoreModuleList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Quuid(self):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""ExportAssetDatabaseList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>Name- string - 是否必填：否 - 环境变量名</li>
<li>Type- int - 是否必填：否 - 类型：0用户变量，1系统变量</li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""ExportAssetEnvList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""ExportAssetInitServiceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<li>Name- string - 是否必填：否 - 包名</li>
<li>Type- uint - 是否必填：否 - 类型	
1: 应用程序
2 : 系统类库
3 : Web服务自带库
4 : 其他依赖包</li>
<li>Status- string - 是否必填：否 - 是否可执行：0否，1是</li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""ExportAssetJarList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        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):
    r"""ExportAssetMachineDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 下载地址
        :type DownloadUrl: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""下载地址
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序[FirstTime|PartitionCount]
        :rtype: str
        """
        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):
    r"""ExportAssetMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""服务器Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>User- string - 是否必填：否 - 用户</li>
<li>Status- int - 是否必填：否 - 默认启用状态：0未启用， 1启用 </li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime]
        :rtype: str
        """
        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):
    r"""ExportAssetPlanTaskList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime|StartTime]
        :rtype: str
        """
        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):
    r"""ExportAssetPortInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式：[FirstTime|StartTime]
        :rtype: str
        """
        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):
    r"""ExportAssetProcessInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""开始时间。
        :rtype: str
        """
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        r"""结束时间。
        :rtype: str
        """
        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):
    r"""ExportAssetRecentMachineInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 下载地址
        :type DownloadUrl: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""下载地址
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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:rpm
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):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>Name - String - 是否必填：否 - 包 名</li>
<li>StartTime - String - 是否必填：否 - 安装开始时间</li>
<li>EndTime - String - 是否必填：否 - 安装开始时间</li>
<li>Type - int - 是否必填：否 - 安装包类型：
1:rpm
2:dpkg
3:java
4:system</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序方式可选：[FistTime|InstallTime:安装时间]
        :rtype: str
        """
        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):
    r"""ExportAssetSystemPackageList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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> <li>IsRoot - uint64 - 是否必填：否 - 是否Root权限：0 不是，1是 仅linux</li> <li>IsSudo - uint64 - 是否必填：否 - 是否Sudo权限：0 不是，1是 仅linux</li> <li>IsSshLogin - uint64 - 是否必填：否 - 是否ssh登录：0 不是，1是 仅linux</li> <li>ShellLoginStatus - uint64 - 是否必填：否 - 是否shell登录性，0不是；1是 仅linux</li> <li>PasswordStatus - uint64 - 是否必填：否 - 密码状态：1正常 2即将过期 3已过期 4已锁定 仅linux</li>
        :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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""  过滤条件。<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> <li>IsRoot - uint64 - 是否必填：否 - 是否Root权限：0 不是，1是 仅linux</li> <li>IsSudo - uint64 - 是否必填：否 - 是否Sudo权限：0 不是，1是 仅linux</li> <li>IsSshLogin - uint64 - 是否必填：否 - 是否ssh登录：0 不是，1是 仅linux</li> <li>ShellLoginStatus - uint64 - 是否必填：否 - 是否shell登录性，0不是；1是 仅linux</li> <li>PasswordStatus - uint64 - 是否必填：否 - 密码状态：1正常 2即将过期 3已过期 4已锁定 仅linux</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|LoginTime|ChangePasswordTime|PasswordDuaTime]
PasswordLockDays
        :rtype: str
        """
        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):
    r"""ExportAssetUserList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|PluginCount]
        :rtype: str
        """
        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):
    r"""ExportAssetWebAppList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|JarCount]
        :rtype: str
        """
        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):
    r"""ExportAssetWebFrameList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|PathCount]
        :rtype: str
        """
        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):
    r"""ExportAssetWebLocationList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""查询指定Quuid主机的信息
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<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>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式，asc升序 或 desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序：[FirstTime|ProcessCount]
        :rtype: str
        """
        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):
    r"""ExportAssetWebServiceInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤参数。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""排序值 CreateTime
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序 方式 ，ASC，DESC
        :rtype: str
        """
        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):
    r"""ExportAttackEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 ExportBaselineEffectHostListRequest(AbstractModel):
    r"""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):
        r"""基线id
        :rtype: int
        """
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId

    @property
    def Filters(self):
        r"""筛选条件
<li>AliasName- String- 主机别名</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def StrategyId(self):
        r"""策略id
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def UuidList(self):
        r"""主机uuid数组
        :rtype: list of str
        """
        return self._UuidList

    @UuidList.setter
    def UuidList(self, UuidList):
        self._UuidList = UuidList

    @property
    def BaselineName(self):
        r"""基线名称
        :rtype: str
        """
        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):
    r"""ExportBaselineEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>ItemName - String - 是否必填：否 - 项名称</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        r"""0:过滤的结果导出；1:全部导出
        :rtype: int
        """
        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):
    r"""ExportBaselineFixList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineHostDetectListRequest(AbstractModel):
    r"""ExportBaselineHostDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>HostTag - string - 是否必填：否 - 主机标签</li><li>ItemId - int64 - 是否必填：否 - 项Id</li><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
        :param _IsExportDetail: 0:导出界面展示；1:导出全部结果事件
        :type IsExportDetail: int
        """
        self._Filters = None
        self._ExportAll = None
        self._IsExportDetail = None

    @property
    def Filters(self):
        r"""<li>HostTag - string - 是否必填：否 - 主机标签</li><li>ItemId - int64 - 是否必填：否 - 项Id</li><li>RuleId - int64 - 是否必填：否 - 规则Id</li><li>IsPassed - int - 是否必填：否 - 是否通过</li><li>RiskTier - int - 是否必填：否 - 风险等级</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        r"""0:过滤的结果导出；1:全部导出
        :rtype: int
        """
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll

    @property
    def IsExportDetail(self):
        r"""0:导出界面展示；1:导出全部结果事件
        :rtype: int
        """
        return self._IsExportDetail

    @IsExportDetail.setter
    def IsExportDetail(self, IsExportDetail):
        self._IsExportDetail = IsExportDetail


    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")
        self._IsExportDetail = params.get("IsExportDetail")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ExportBaselineHostDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineItemDetectListRequest(AbstractModel):
    r"""ExportBaselineItemDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>HostId - string - 是否必填：否 - 主机Id</li><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
        :param _IsExportDetail: 0:导出界面展示；1:导出全部结果事件
        :type IsExportDetail: int
        """
        self._Filters = None
        self._ExportAll = None
        self._IsExportDetail = None

    @property
    def Filters(self):
        r"""<li>HostId - string - 是否必填：否 - 主机Id</li><li>RuleId - int64 - 是否必填：否 - 规则Id</li><li>IsPassed - int - 是否必填：否 - 是否通过</li><li>RiskTier - int - 是否必填：否 - 风险等级</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        r"""0:过滤的结果导出；1:全部导出
        :rtype: int
        """
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll

    @property
    def IsExportDetail(self):
        r"""0:导出界面展示；1:导出全部结果事件
        :rtype: int
        """
        return self._IsExportDetail

    @IsExportDetail.setter
    def IsExportDetail(self, IsExportDetail):
        self._IsExportDetail = IsExportDetail


    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")
        self._IsExportDetail = params.get("IsExportDetail")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ExportBaselineItemDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineItemListRequest(AbstractModel):
    r"""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):
        r"""<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        r"""0:过滤的结果导出；1:全部导出
        :rtype: int
        """
        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):
    r"""ExportBaselineItemList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineListRequest(AbstractModel):
    r"""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):
        r"""过滤条件：
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def IfDetail(self):
        r"""已废弃
        :rtype: int
        """
        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):
    r"""ExportBaselineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出文件下载地址（已弃用）
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""导出文件下载地址（已弃用）
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportBaselineRuleDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>RuleName - string - 是否必填：否 - 规则名称</li><li>IsPassed - int - 是否必填：否 - 是否通过</li><li>RiskTier - int - 是否必填：否 - 风险等级</li>
        :type Filters: list of Filter
        :param _ExportAll: 0:过滤的结果导出；1:全部导出
        :type ExportAll: int
        :param _IsExportDetail: 0:导出界面展示；1:导出全部结果事件
        :type IsExportDetail: int
        """
        self._Filters = None
        self._ExportAll = None
        self._IsExportDetail = None

    @property
    def Filters(self):
        r"""<li>RuleName - string - 是否必填：否 - 规则名称</li><li>IsPassed - int - 是否必填：否 - 是否通过</li><li>RiskTier - int - 是否必填：否 - 风险等级</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        r"""0:过滤的结果导出；1:全部导出
        :rtype: int
        """
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll

    @property
    def IsExportDetail(self):
        r"""0:导出界面展示；1:导出全部结果事件
        :rtype: int
        """
        return self._IsExportDetail

    @IsExportDetail.setter
    def IsExportDetail(self, IsExportDetail):
        self._IsExportDetail = IsExportDetail


    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")
        self._IsExportDetail = params.get("IsExportDetail")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ExportBaselineRuleDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineWeakPasswordListRequest(AbstractModel):
    r"""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):
        r"""<li>WeakPassword - string - 是否必填：否 - 弱口令</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        r"""0:过滤的结果导出；1:全部导出
        :rtype: int
        """
        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):
    r"""ExportBaselineWeakPasswordList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

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


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBashEventsNewRequest(AbstractModel):
    r"""ExportBashEventsNew请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        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):
    r"""ExportBashEventsNew返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportBashEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        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):
    r"""ExportBashEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出文件下载链接地址。
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""导出文件下载链接地址。
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportBashPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        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):
    r"""ExportBashPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportBruteAttacks请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        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):
    r"""ExportBruteAttacks返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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
        :param _Where: 需要导出的字段
        :type Where: list of str
        """
        self._Filters = None
        self._Fileds = None
        self._Fields = None
        self._Where = None

    @property
    def Filters(self):
        r"""过滤条件。
<li>Status - String - 是否必填：否 - 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略</li>
<li>ModifyTime - String - 是否必填：否 - 最近发生时间</li>
<li>Uuid- String - 是否必填：否 - 主机uuid查询</li>
<li>RuleCategory- string - 是否必填：否 - 规则类别 0 系统规则 1 自定义规则</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Fileds(self):
        warnings.warn("parameter `Fileds` is deprecated", DeprecationWarning) 

        r"""需要导出的字段
        :rtype: list of str
        """
        return self._Fileds

    @Fileds.setter
    def Fileds(self, Fileds):
        warnings.warn("parameter `Fileds` is deprecated", DeprecationWarning) 

        self._Fileds = Fileds

    @property
    def Fields(self):
        warnings.warn("parameter `Fields` is deprecated", DeprecationWarning) 

        r"""需要导出的字段
        :rtype: str
        """
        return self._Fields

    @Fields.setter
    def Fields(self, Fields):
        warnings.warn("parameter `Fields` is deprecated", DeprecationWarning) 

        self._Fields = Fields

    @property
    def Where(self):
        r"""需要导出的字段
        :rtype: list of str
        """
        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 = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Fileds = params.get("Fileds")
        self._Fields = params.get("Fields")
        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 ExportFileTamperEventsResponse(AbstractModel):
    r"""ExportFileTamperEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出任务ID 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""导出任务ID 可通过ExportTasks接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<li>RuleCategory- string- 规则类别  0=系统规则，1=用户规则</li>
<li>Name- String - 规则名称</li>
        :rtype: list of Filters
        """
        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):
    r"""ExportFileTamperRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出任务ID 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""导出任务ID 可通过ExportTasks接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportIgnoreBaselineRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleName: 检测项名称
        :type RuleName: str
        """
        self._RuleName = None

    @property
    def RuleName(self):
        r"""检测项名称
        :rtype: str
        """
        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):
    r"""ExportIgnoreBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""检测项id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def Filters(self):
        r"""过滤条件。
<li>AliasName- String- 主机别名</li>
        :rtype: list of Filters
        """
        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):
    r"""ExportIgnoreRuleEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""日志下载任务列表

    """

    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):
        r"""日志导出任务ID
        :rtype: str
        """
        return self._ExportId

    @ExportId.setter
    def ExportId(self, ExportId):
        self._ExportId = ExportId

    @property
    def Query(self):
        r"""日志导出查询语句
        :rtype: str
        """
        return self._Query

    @Query.setter
    def Query(self, Query):
        self._Query = Query

    @property
    def FileName(self):
        r"""日志导出文件名
        :rtype: str
        """
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileSize(self):
        r"""日志文件大小
        :rtype: int
        """
        return self._FileSize

    @FileSize.setter
    def FileSize(self, FileSize):
        self._FileSize = FileSize

    @property
    def Order(self):
        r"""日志导出时间排序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def Format(self):
        r"""日志导出格式
        :rtype: str
        """
        return self._Format

    @Format.setter
    def Format(self, Format):
        self._Format = Format

    @property
    def Count(self):
        r"""日志导出数量
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Status(self):
        r"""日志下载状态。Processing:导出正在进行中，Complete:导出完成，Failed:导出失败，Expired:日志导出已过期（三天有效期）。
        :rtype: str
        """
        return self._Status

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

    @property
    def StartTime(self):
        r"""日志导出起始时间，uinx毫秒时间戳
        :rtype: int
        """
        return self._StartTime

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

    @property
    def EndTime(self):
        r"""日志导出结束时间，uinx毫秒时间戳
        :rtype: int
        """
        return self._EndTime

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

    @property
    def CosPath(self):
        r"""日志导出路径
        :rtype: str
        """
        return self._CosPath

    @CosPath.setter
    def CosPath(self, CosPath):
        self._CosPath = CosPath

    @property
    def CreateTime(self):
        r"""日志导出创建时间
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件：Keywords: ip或者主机名模糊查询, Pid精确匹配，MainClass模糊匹配
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        r"""导出字段
        :rtype: list of str
        """
        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):
    r"""ExportJavaMemShellPlugins返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportJavaMemShells请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：InstanceID、IP、

MachineName主机名模糊查询, Type，Status精确匹配，CreateBeginTime，CreateEndTime时间段
        :type Filters: list of Filter
        :param _Where: 导出字段
        :type Where: list of str
        :param _Order: 排序，大小写无关：asc 升序，desc降序
        :type Order: str
        :param _By: 排序列，严格相等：最近检测时间RecentFoundTime
        :type By: str
        """
        self._Filters = None
        self._Where = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        r"""过滤条件：InstanceID、IP、

MachineName主机名模糊查询, Type，Status精确匹配，CreateBeginTime，CreateEndTime时间段
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        r"""导出字段
        :rtype: list of str
        """
        return self._Where

    @Where.setter
    def Where(self, Where):
        self._Where = Where

    @property
    def Order(self):
        r"""排序，大小写无关：asc 升序，desc降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序列，严格相等：最近检测时间RecentFoundTime
        :rtype: str
        """
        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._Where = params.get("Where")
        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 ExportJavaMemShellsResponse(AbstractModel):
    r"""ExportJavaMemShells返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口 <a href="https://cloud.tencent.com/document/product/296/52508" target="_blank" >异步导出任务</a>获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口 <a href="https://cloud.tencent.com/document/product/296/52508" target="_blank" >异步导出任务</a>获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""多个条件筛选时 LicenseStatus,DeadlineStatus,ResourceId,Keywords 取交集
<li> LicenseType  授权类型, 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月</li>
<li>ResourceId 资源ID</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def IsHistory(self):
        r"""是否导出全部授权详情
        :rtype: bool
        """
        return self._IsHistory

    @IsHistory.setter
    def IsHistory(self, IsHistory):
        self._IsHistory = IsHistory

    @property
    def Tags(self):
        r"""标签筛选,平台标签能力,这里传入 标签键,标签值作为一个对象
        :rtype: list of Tags
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def ExportMonth(self):
        r"""导出月份, 该参数仅在IsHistory 时可选.
        :rtype: str
        """
        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):
    r"""ExportLicenseDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 下载地址,该字段废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""下载地址,该字段废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportMaliciousRequests请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        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):
    r"""ExportMaliciousRequests返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""限制条数,默认10
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量 默认0
        :rtype: int
        """
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        r"""过滤参数。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""排序值 CreateTime
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序 方式 ，ASC，DESC
        :rtype: str
        """
        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):
    r"""ExportMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>Status - int - 是否必填：否 - 状态筛选1:正常登录；2：异地登录</li>
        :rtype: list of Filter
        """
        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):
    r"""ExportNonlocalLoginPlaces返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 ExportPatchEffectHostListRequest(AbstractModel):
    r"""ExportPatchEffectHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _KbId: 补丁id
        :type KbId: int
        :param _Filters: 过滤条件：  
<li>ProtectType : uint64类型 非必填 防护版本类型  0表示BASIC_VERSION，1表示Flagship </li>
<li>InstanceState : string类型 非必填 主机状态 : "PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-开机中 "STOPPING"-关机中 "REBOOTING"-重启中 "SHUTDOWN"-待销毁 "TERMINATING"-销毁中 "UNKNOWN"-未知（针对非腾讯云机器，且客户端离线的场景） </li>
<li>Status : uint64类型 非必填 处理状态 0表示待处理，1表示忽略，3表示已修复</li>
<li>HostName : string类型 非必填 主机名称 </li>
<li>InstanceID : string类型 非必填 主机id </li>
<li>IpAddress : string类型 非必填 主机的ip地址 </li>
<li>Uuid : string类型 非必填 主机uuid</li>
        :type Filters: list of Filter
        """
        self._KbId = None
        self._Filters = None

    @property
    def KbId(self):
        r"""补丁id
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId

    @property
    def Filters(self):
        r"""过滤条件：  
<li>ProtectType : uint64类型 非必填 防护版本类型  0表示BASIC_VERSION，1表示Flagship </li>
<li>InstanceState : string类型 非必填 主机状态 : "PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-开机中 "STOPPING"-关机中 "REBOOTING"-重启中 "SHUTDOWN"-待销毁 "TERMINATING"-销毁中 "UNKNOWN"-未知（针对非腾讯云机器，且客户端离线的场景） </li>
<li>Status : uint64类型 非必填 处理状态 0表示待处理，1表示忽略，3表示已修复</li>
<li>HostName : string类型 非必填 主机名称 </li>
<li>InstanceID : string类型 非必填 主机id </li>
<li>IpAddress : string类型 非必填 主机的ip地址 </li>
<li>Uuid : string类型 非必填 主机uuid</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._KbId = params.get("KbId")
        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 ExportPatchEffectHostListResponse(AbstractModel):
    r"""ExportPatchEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出任务Id , 可通过ExportTasks 接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""导出任务Id , 可通过ExportTasks 接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 ExportPrivilegeEventsRequest(AbstractModel):
    r"""ExportPrivilegeEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        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):
    r"""ExportPrivilegeEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""DirName 网站名称
DirPath 网站防护目录地址
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""asc：升序/desc：降序
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段
        :rtype: str
        """
        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):
    r"""ExportProtectDirList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Filters(self):
        r"""过滤条件。
<li>Status - Int - 是否必填：否 - 通过勒索状态查询：0未勒索，1已勒索 </li>
<li>CreateTimeBegin - string - 是否必填：否 - 创建时间开始 </li>
<li>CreateTimeEnd - string - 是否必填：否 - 创建时间结束 </li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime
        :rtype: str
        """
        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):
    r"""ExportRansomDefenseBackupList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<li>HostName- string- 主机名称</li>
<li>Status - Uint64 - 0待处理，1已处理，2已信任</li>
<li>HostIp- String - 主机ip</li>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime
        :rtype: str
        """
        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):
    r"""ExportRansomDefenseEventsList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime、MachineCount
        :rtype: str
        """
        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):
    r"""ExportRansomDefenseMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime、MachineCount
        :rtype: str
        """
        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):
    r"""ExportRansomDefenseStrategyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方法 ASC DESC
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段支持CreateTime、MachineCount
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Id(self):
        r"""策略id
        :rtype: int
        """
        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):
    r"""ExportRansomDefenseStrategyMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportReverseShellEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        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):
    r"""ExportReverseShellEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportRiskDnsEventList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>MachineName  主机名称



InstanceID  实例ID  

 

IP   内网IP或公网IP - 是否必填：否 - 主机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):
        r"""<li>MachineName  主机名称



InstanceID  实例ID  

 

IP   内网IP或公网IP - 是否必填：否 - 主机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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式：[ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""排序字段：[AccessCount:请求次数|LastTime:最近请求时间]
        :rtype: str
        """
        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):
    r"""ExportRiskDnsEventList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""<li>PolicyType - int - 是否必填：否 - 策略类型</li>
<li>PolicyName - string - 是否必填：否 - 策略名称</li>
<li>Domain - string - 是否必填：否 - 域名(先对域名做urlencode,再base64)</li>
<li>PolicyAction- int - 是否必填：否 - 策略动作</li>
<li>IsEnabled - int - 是否必填：否 - 是否生效</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式: [ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""可选排序列: [PolicyName|HostType]
        :rtype: str
        """
        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):
    r"""ExportRiskDnsPolicyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""异步下载任务ID，需要配合ExportTasks接口使用
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        r"""排序方式：[ASC:升序|DESC:降序]
        :rtype: str
        """
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        r"""[StartTime:进程启动时间|DetectTime:最后检测时间]
        :rtype: str
        """
        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):
    r"""ExportRiskProcessEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""本次检测的任务id（不同于出参的导出本次检测Excel的任务Id）
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def ModuleType(self):
        r"""模块类型，当前提供：Malware 木马 , Vul 漏洞 , Baseline 基线
        :rtype: str
        """
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def Filters(self):
        r"""过滤参数：ipOrAlias（服务器名/ip）
        :rtype: list of Filters
        """
        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):
    r"""ExportScanTaskDetails返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址(不同于入参的本次检测任务id)
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址(不同于入参的本次检测任务id)
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""开始时间。
        :rtype: str
        """
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        r"""结束时间。
        :rtype: str
        """
        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):
    r"""ExportSecurityTrends返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出文件下载链接地址。
        :type DownloadUrl: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""导出文件下载链接地址。
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportTasks请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: <p>任务ID</p>
        :type TaskId: str
        """
        self._TaskId = None

    @property
    def TaskId(self):
        r"""<p>任务ID</p>
        :rtype: str
        """
        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):
    r"""ExportTasks返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: <p>PENDING：正在生成下载链接，FINISHED：下载链接已生成，ERROR：网络异常等异常情况</p>
        :type Status: str
        :param _DownloadUrl: <p>下载链接</p>
        :type DownloadUrl: str
        :param _FileName: <p>文件名称</p>
        :type FileName: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._DownloadUrl = None
        self._FileName = None
        self._RequestId = None

    @property
    def Status(self):
        r"""<p>PENDING：正在生成下载链接，FINISHED：下载链接已生成，ERROR：网络异常等异常情况</p>
        :rtype: str
        """
        return self._Status

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

    @property
    def DownloadUrl(self):
        r"""<p>下载链接</p>
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def FileName(self):
        r"""<p>文件名称</p>
        :rtype: str
        """
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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._FileName = params.get("FileName")
        self._RequestId = params.get("RequestId")


class ExportVulDefenceEventRequest(AbstractModel):
    r"""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):
        r"""过滤条件：Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询; Quuid，VulId，EventType，Status精确匹配，CreateBeginTime，CreateEndTime时间段查询
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        r"""导出字段，默认全导出
        :rtype: list of str
        """
        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):
    r"""ExportVulDefenceEvent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""导出文件Id 可通过ExportTasks接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件：Keywords: 漏洞名称或CVE编号模糊匹配, Level精确匹配
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        r"""导出字段，默认全导出
        :rtype: list of str
        """
        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):
    r"""ExportVulDefenceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""导出文件Id 可通过ExportTasks接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""Keywords: ip或者主机名模糊匹配，Quuid，Exception、Status精确匹配
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        r"""导出字段，默认全导出
        :rtype: list of str
        """
        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):
    r"""ExportVulDefencePluginEvent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""导出文件Id 可通过ExportTasks接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportVulDetectionExcel请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 本次漏洞检测任务id（不同于出参的导出本次漏洞检测Excel的任务Id）
        :type TaskId: int
        """
        self._TaskId = None

    @property
    def TaskId(self):
        r"""本次漏洞检测任务id（不同于出参的导出本次漏洞检测Excel的任务Id）
        :rtype: int
        """
        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):
    r"""ExportVulDetectionExcel返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址（不同于入参的本次漏洞检测任务id）
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""该参数已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址（不同于入参的本次漏洞检测任务id）
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""漏洞扫描任务id（不同于出参的导出检测报告的任务Id）
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def Filters(self):
        r"""过滤参数
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        r"""需要返回的数量，默认为10，最大值为100
        :rtype: int
        """
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        r"""偏移量，默认为0。
        :rtype: int
        """
        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):
    r"""ExportVulDetectionReport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出文件下载链接地址
        :type DownloadUrl: str
        :param _TaskId: 导出检测报告的任务Id（不同于入参的漏洞扫描任务id）
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""导出文件下载链接地址
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""导出检测报告的任务Id（不同于入参的漏洞扫描任务id）
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Filters(self):
        r"""过滤条件。
<li>AliasName - String - 主机名筛选</li>
        :rtype: list of Filter
        """
        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):
    r"""ExportVulEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 已废弃
        :type DownloadUrl: str
        :param _TaskId: 导出任务Id , 可通过ExportTasks 接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""已废弃
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""导出任务Id , 可通过ExportTasks 接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ExportVulInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        """
        self._VulId = None

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        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):
    r"""ExportVulInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出任务Id , 可通过ExportTasks 接口下载
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""导出任务Id , 可通过ExportTasks 接口下载
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件。
<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>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def IfDetail(self):
        r"""是否导出详情,1是 0不是
        :rtype: int
        """
        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):
    r"""ExportVulList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出的文件下载url（已弃用！）
        :type DownloadUrl: str
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        r"""导出的文件下载url（已弃用！）
        :rtype: str
        """
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        r"""导出文件Id 可通过ExportTasks接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""过滤条件
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>EventType - String - 是否必填：否 - 事件类型</li>
<li>EventStatus - String - 是否必填：否 - 事件状态</li>
        :rtype: list of AssetFilters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        r"""排序方式：CreateTime 或 RestoreTime，默认为CreateTime
        :rtype: str
        """
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        r"""排序方式，0降序，1升序，默认为0
        :rtype: int
        """
        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):
    r"""ExportWebPageEventList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id 可通过 ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务id 可通过 ExportTasks接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 ExportWindowsPatchListRequest(AbstractModel):
    r"""ExportWindowsPatchList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。  
<li>Status : String类型 非必填 处理状态 0待处理,1忽略,3修复</li>
<li>ShowNew : int类型 非必填 展示最新版本 0-开启 1-关闭</li>
<li>Name : string类型 非必填 补丁名称 </li>
<li>KbNo : string类型 非必填 补丁编号 </li>
<li>Uuid : string类型 非必填 主机uuid</li>

        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        r"""过滤条件。  
<li>Status : String类型 非必填 处理状态 0待处理,1忽略,3修复</li>
<li>ShowNew : int类型 非必填 展示最新版本 0-开启 1-关闭</li>
<li>Name : string类型 非必填 补丁名称 </li>
<li>KbNo : string类型 非必填 补丁编号 </li>
<li>Uuid : string类型 非必填 主机uuid</li>

        :rtype: list of Filter
        """
        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 ExportWindowsPatchListResponse(AbstractModel):
    r"""ExportWindowsPatchList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""导出文件Id 可通过ExportTasks接口下载
        :rtype: str
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""快速分析统计信息

    """

    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):
        r"""个数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Ratio(self):
        r"""比例
        :rtype: float
        """
        return self._Ratio

    @Ratio.setter
    def Ratio(self, Ratio):
        self._Ratio = Ratio

    @property
    def Value(self):
        r"""值
        :rtype: str
        """
        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):
    r"""核心文件监控事件

    """

    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: 目标文件更新时间
        :type TargetModifyTime: str
        :param _TargetCreatTime: 目标文件创建时间
        :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: 进程名称
        :type ExeName: str
        :param _MachineExtraInfo:  主机额外信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _FileAction: 文件威胁行为
<li>read 读取文件</li>
<li>write 修改文件</li>
        :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):
        r"""机器名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""机器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def CreateTime(self):
        r"""发生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""最近发生时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        return self._Id

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

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Quuid(self):
        r"""cvm id
        :rtype: str
        """
        return self._Quuid

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

    @property
    def Type(self):
        r"""事件类型/动作  0 -- 告警
        :rtype: int
        """
        return self._Type

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

    @property
    def ProcessExe(self):
        r"""进程路径
        :rtype: str
        """
        return self._ProcessExe

    @ProcessExe.setter
    def ProcessExe(self, ProcessExe):
        self._ProcessExe = ProcessExe

    @property
    def ProcessArgv(self):
        r"""进程参数
        :rtype: str
        """
        return self._ProcessArgv

    @ProcessArgv.setter
    def ProcessArgv(self, ProcessArgv):
        self._ProcessArgv = ProcessArgv

    @property
    def Target(self):
        r"""目标文件路径
        :rtype: str
        """
        return self._Target

    @Target.setter
    def Target(self, Target):
        self._Target = Target

    @property
    def Status(self):
        r"""处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略 4-已手动处理
        :rtype: int
        """
        return self._Status

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

    @property
    def EventCount(self):
        r"""事件产生次数
        :rtype: int
        """
        return self._EventCount

    @EventCount.setter
    def EventCount(self, EventCount):
        self._EventCount = EventCount

    @property
    def RuleId(self):
        r"""规则id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def Pstree(self):
        r"""事件详情: json格式
        :rtype: str
        """
        return self._Pstree

    @Pstree.setter
    def Pstree(self, Pstree):
        self._Pstree = Pstree

    @property
    def RuleCategory(self):
        r"""规则类型 0系统规则 1自定义规则
        :rtype: int
        """
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def MachineStatus(self):
        r"""主机在线信息 ONLINE、OFFLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Description(self):
        r"""危害描述
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Suggestion(self):
        r"""修护建议
        :rtype: str
        """
        return self._Suggestion

    @Suggestion.setter
    def Suggestion(self, Suggestion):
        self._Suggestion = Suggestion

    @property
    def PrivateIp(self):
        r"""内网ip
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def ExePermission(self):
        r"""进程权限
        :rtype: str
        """
        return self._ExePermission

    @ExePermission.setter
    def ExePermission(self, ExePermission):
        self._ExePermission = ExePermission

    @property
    def UserName(self):
        r"""用户名
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        r"""用户组
        :rtype: str
        """
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ExeMd5(self):
        r"""进程名
        :rtype: str
        """
        return self._ExeMd5

    @ExeMd5.setter
    def ExeMd5(self, ExeMd5):
        self._ExeMd5 = ExeMd5

    @property
    def ExeSize(self):
        r"""进程文件大小
        :rtype: int
        """
        return self._ExeSize

    @ExeSize.setter
    def ExeSize(self, ExeSize):
        self._ExeSize = ExeSize

    @property
    def ExeTime(self):
        r"""进程执行时长
        :rtype: int
        """
        return self._ExeTime

    @ExeTime.setter
    def ExeTime(self, ExeTime):
        self._ExeTime = ExeTime

    @property
    def TargetSize(self):
        r"""目标文件大小
        :rtype: int
        """
        return self._TargetSize

    @TargetSize.setter
    def TargetSize(self, TargetSize):
        self._TargetSize = TargetSize

    @property
    def TargetPermission(self):
        r"""目标文件权限
        :rtype: str
        """
        return self._TargetPermission

    @TargetPermission.setter
    def TargetPermission(self, TargetPermission):
        self._TargetPermission = TargetPermission

    @property
    def TargetModifyTime(self):
        r"""目标文件更新时间
        :rtype: str
        """
        return self._TargetModifyTime

    @TargetModifyTime.setter
    def TargetModifyTime(self, TargetModifyTime):
        self._TargetModifyTime = TargetModifyTime

    @property
    def TargetCreatTime(self):
        r"""目标文件创建时间
        :rtype: str
        """
        return self._TargetCreatTime

    @TargetCreatTime.setter
    def TargetCreatTime(self, TargetCreatTime):
        self._TargetCreatTime = TargetCreatTime

    @property
    def ExePid(self):
        r"""进程pid
        :rtype: int
        """
        return self._ExePid

    @ExePid.setter
    def ExePid(self, ExePid):
        self._ExePid = ExePid

    @property
    def TargetName(self):
        r"""文件名称
        :rtype: str
        """
        return self._TargetName

    @TargetName.setter
    def TargetName(self, TargetName):
        self._TargetName = TargetName

    @property
    def Reference(self):
        r"""参考链接
        :rtype: str
        """
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def Level(self):
        r"""风险等级 0：无， 1: 高危， 2:中危， 3: 低危
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def ExeName(self):
        r"""进程名称
        :rtype: str
        """
        return self._ExeName

    @ExeName.setter
    def ExeName(self, ExeName):
        self._ExeName = ExeName

    @property
    def MachineExtraInfo(self):
        r""" 主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

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

    @property
    def FileAction(self):
        r"""文件威胁行为
<li>read 读取文件</li>
<li>write 修改文件</li>
        :rtype: str
        """
        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):
    r"""核心文件监控规则

    """

    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>
        :type FileAction: str
        :param _Args: 命令行参数 没有填*
        :type Args: str
        """
        self._ProcessPath = None
        self._Target = None
        self._Action = None
        self._FileAction = None
        self._Args = None

    @property
    def ProcessPath(self):
        r"""进程路径
        :rtype: str
        """
        return self._ProcessPath

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

    @property
    def Target(self):
        r"""被访问文件路径
        :rtype: str
        """
        return self._Target

    @Target.setter
    def Target(self, Target):
        self._Target = Target

    @property
    def Action(self):
        r"""执行动作 跳过：skip，告警：alert
        :rtype: str
        """
        return self._Action

    @Action.setter
    def Action(self, Action):
        self._Action = Action

    @property
    def FileAction(self):
        r"""监控行为
<li>read 读取文件</li>
<li>write 修改文件</li>
<li>read-write 读取修改文件</li>
        :rtype: str
        """
        return self._FileAction

    @FileAction.setter
    def FileAction(self, FileAction):
        self._FileAction = FileAction

    @property
    def Args(self):
        r"""命令行参数 没有填*
        :rtype: str
        """
        return self._Args

    @Args.setter
    def Args(self, Args):
        self._Args = Args


    def _deserialize(self, params):
        self._ProcessPath = params.get("ProcessPath")
        self._Target = params.get("Target")
        self._Action = params.get("Action")
        self._FileAction = params.get("FileAction")
        self._Args = params.get("Args")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""主机关联核心文件规则数量信息

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _Count: 关联规则的数量
        :type Count: int
        :param _Name: 关联规则的名称（仅展示其中一条）
        :type Name: str
        """
        self._Uuid = None
        self._Count = None
        self._Name = None

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

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

    @property
    def Count(self):
        r"""关联规则的数量
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Name(self):
        r"""关联规则的名称（仅展示其中一条）
        :rtype: str
        """
        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):
    r"""核心文件监控规则详情

    """

    def __init__(self):
        r"""
        :param _Name: 规则名称
        :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,空表示全部主机，通过参数可控制返回的条数
        :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>
        :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):
        r"""规则名称
        :rtype: str
        """
        return self._Name

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

    @property
    def ModifyTime(self):
        r"""更新时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Status(self):
        r"""状态 0: 启用 1: 已关闭
        :rtype: int
        """
        return self._Status

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

    @property
    def Rule(self):
        r"""规则
        :rtype: list of FileTamperRule
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Uuids(self):
        r"""生效主机uuid,空表示全部主机，通过参数可控制返回的条数
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def Id(self):
        r"""规则id
        :rtype: int
        """
        return self._Id

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

    @property
    def IsGlobal(self):
        r"""是否全局规则(默认否) 0：否 ，1：是
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Level(self):
        r"""风险等级 0：无， 1: 高危， 2:中危， 3: 低危
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def UuidTotalCount(self):
        r"""生效主机的总数
        :rtype: int
        """
        return self._UuidTotalCount

    @UuidTotalCount.setter
    def UuidTotalCount(self, UuidTotalCount):
        self._UuidTotalCount = UuidTotalCount

    @property
    def AddWhiteType(self):
        r"""加白处理类型
<li>cur 仅对当前加白</li>
<li>all 所有符合条件加白</li>
        :rtype: str
        """
        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):
    r"""核心文件监控规则列表

    """

    def __init__(self):
        r"""
        :param _Name: 规则名称
        :type Name: str
        :param _RuleCategory: 规则类型 0 ：系统规则  1：用户规则
        :type RuleCategory: int
        :param _HostCount: 影响主机数
        :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: 子规则写条目数
        :type WriteRuleCount: int
        :param _ReadRuleCount: 子规则读条目数
        :type ReadRuleCount: int
        :param _ReadWriteRuleCount: 子规则读写条目数
        :type ReadWriteRuleCount: int
        :param _FileAction: 监控行为
<li>read 读取文件</li>
<li>write 修改文件</li>
<li>read-write 读取修改文件</li>
        :type FileAction: str
        :param _AddWhiteType: 加白处理类型
<li>cur 仅对当前加白</li>
<li>all 所有符合条件加白</li>
        :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):
        r"""规则名称
        :rtype: str
        """
        return self._Name

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

    @property
    def RuleCategory(self):
        r"""规则类型 0 ：系统规则  1：用户规则
        :rtype: int
        """
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def HostCount(self):
        r"""影响主机数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ModifyTime(self):
        r"""更新时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Status(self):
        r"""状态 0: 启用 1: 已关闭
        :rtype: int
        """
        return self._Status

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

    @property
    def Id(self):
        r"""规则id，系统的规则时为0。
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def IsGlobal(self):
        r"""是否是全局的 0：否 ，1：是
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Level(self):
        r"""风险等级 0：无， 1: 高危， 2:中危， 3: 低危
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def WriteRuleCount(self):
        r"""子规则写条目数
        :rtype: int
        """
        return self._WriteRuleCount

    @WriteRuleCount.setter
    def WriteRuleCount(self, WriteRuleCount):
        self._WriteRuleCount = WriteRuleCount

    @property
    def ReadRuleCount(self):
        r"""子规则读条目数
        :rtype: int
        """
        return self._ReadRuleCount

    @ReadRuleCount.setter
    def ReadRuleCount(self, ReadRuleCount):
        self._ReadRuleCount = ReadRuleCount

    @property
    def ReadWriteRuleCount(self):
        r"""子规则读写条目数
        :rtype: int
        """
        return self._ReadWriteRuleCount

    @ReadWriteRuleCount.setter
    def ReadWriteRuleCount(self, ReadWriteRuleCount):
        self._ReadWriteRuleCount = ReadWriteRuleCount

    @property
    def FileAction(self):
        r"""监控行为
<li>read 读取文件</li>
<li>write 修改文件</li>
<li>read-write 读取修改文件</li>
        :rtype: str
        """
        return self._FileAction

    @FileAction.setter
    def FileAction(self, FileAction):
        self._FileAction = FileAction

    @property
    def AddWhiteType(self):
        r"""加白处理类型
<li>cur 仅对当前加白</li>
<li>all 所有符合条件加白</li>
        :rtype: str
        """
        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):
    r"""描述键值对过滤器，用于条件过滤查询。例如过滤ID、名称、状态等

    若存在多个Filter时，Filter间的关系为逻辑与（AND）关系。
    若同一个Filter存在多个Values，同一Filter下Values间的关系为逻辑或（OR）关系。

    * 最多只能有5个Filter
    * 同一个Filter存在多个Values，Values值数量最多不能超过5个。

    """

    def __init__(self):
        r"""
        :param _Name: <p>过滤键的名称。</p>
        :type Name: str
        :param _Values: <p>一个或者多个过滤值。</p>
        :type Values: list of str
        :param _ExactMatch: <p>模糊搜索</p>
        :type ExactMatch: bool
        """
        self._Name = None
        self._Values = None
        self._ExactMatch = None

    @property
    def Name(self):
        r"""<p>过滤键的名称。</p>
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Values(self):
        r"""<p>一个或者多个过滤值。</p>
        :rtype: list of str
        """
        return self._Values

    @Values.setter
    def Values(self, Values):
        self._Values = Values

    @property
    def ExactMatch(self):
        r"""<p>模糊搜索</p>
        :rtype: bool
        """
        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):
    r"""描述键值对过滤器，用于条件过滤查询。例如过滤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):
        r"""过滤键的名称。
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Values(self):
        r"""一个或者多个过滤值。
        :rtype: list of str
        """
        return self._Values

    @Values.setter
    def Values(self, Values):
        self._Values = Values

    @property
    def ExactMatch(self):
        r"""是否模糊匹配，前端框架会带上，可以不管
        :rtype: bool
        """
        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):
    r"""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):
        r"""主机Id
        :rtype: str
        """
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def ItemId(self):
        r"""项Id
        :rtype: int
        """
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def Data(self):
        r"""修复内容
        :rtype: list of str
        """
        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):
    r"""FixBaselineDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class FullTextInfo(AbstractModel):
    r"""全文索引的相关配置

    """

    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):
        r"""是否大小写敏感
        :rtype: bool
        """
        return self._CaseSensitive

    @CaseSensitive.setter
    def CaseSensitive(self, CaseSensitive):
        self._CaseSensitive = CaseSensitive

    @property
    def Tokenizer(self):
        r"""分词符
        :rtype: str
        """
        return self._Tokenizer

    @Tokenizer.setter
    def Tokenizer(self, Tokenizer):
        self._Tokenizer = Tokenizer

    @property
    def ContainZH(self):
        r"""是否包含中文
        :rtype: bool
        """
        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):
    r"""GetLocalStorageItem请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Key: 键
        :type Key: str
        """
        self._Key = None

    @property
    def Key(self):
        r"""键
        :rtype: str
        """
        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):
    r"""GetLocalStorageItem返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Value: 值
        :type Value: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Value = None
        self._RequestId = None

    @property
    def Value(self):
        r"""值
        :rtype: str
        """
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""账号变更历史数据。

    """

    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):
        r"""唯一ID。
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机安全客户端唯一Uuid。
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineIp(self):
        r"""主机内网IP。
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        r"""主机名。
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Username(self):
        r"""账号名。
        :rtype: str
        """
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def ModifyType(self):
        r"""账号变更类型。
<li>CREATE：表示新增账号</li>
<li>MODIFY：表示修改账号</li>
<li>DELETE：表示删除账号</li>
        :rtype: str
        """
        return self._ModifyType

    @ModifyType.setter
    def ModifyType(self, ModifyType):
        self._ModifyType = ModifyType

    @property
    def ModifyTime(self):
        r"""变更时间。
        :rtype: str
        """
        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):
    r"""展示登录审计白名单时的主机信息实体

    """

    def __init__(self):
        r"""
        :param _Quuid: 机器uuid
        :type Quuid: str
        :param _Uuid: 主机安全uuid
        :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):
        r"""机器uuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        r"""主机安全uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineName(self):
        r"""机器名
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineIp(self):
        r"""机器IP:已销毁的服务器IP为空
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        r"""公网IP:已销毁的服务器IP为空
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Tags(self):
        r"""标签信息数组
        :rtype: list of MachineTag
        """
        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):
    r"""添加登录审计白名单的主机信息实体

    """

    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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        r"""Uuid主机
        :rtype: str
        """
        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):
    r"""登录审计列表实体

    """

    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 _SrcIp: 来源ip
        :type SrcIp: str
        :param _Status: 1:正常登录；2异地登录； 5已加白； 14：已处理；15：已忽略。
        :type Status: int
        :param _Country: 国家id
        :type Country: int
        :param _City: 城市id
        :type City: int
        :param _Province: 省份id
        :type Province: int
        :param _LoginTime: 登录时间
        :type LoginTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        :param _IsRiskArea: 是否命中异地登录异常  1表示命中此类异常, 0表示未命中
        :type IsRiskArea: int
        :param _IsRiskUser: 是否命中异常用户异常 1表示命中此类异常, 0表示未命中
        :type IsRiskUser: int
        :param _IsRiskTime: 是否命中异常时间异常 1表示命中此类异常, 0表示未命中
        :type IsRiskTime: int
        :param _IsRiskSrcIp: 是否命中异常IP异常 1表示命中此类异常, 0表示未命中
        :type IsRiskSrcIp: int
        :param _RiskLevel: 危险等级：
0 高危
1 可疑
        :type RiskLevel: int
        :param _Location: 位置名称
        :type Location: str
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _Desc: 高危信息说明：
ABROAD - 境外IP；
XTI - 威胁情报
        :type Desc: str
        :param _MachineExtraInfo: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Port: 请求目的端口
        :type Port: int
        :param _IPAnalyse: ip分析
        :type IPAnalyse: :class:`tencentcloud.cwp.v20180228.models.IPAnalyse`
        """
        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
        self._IPAnalyse = None

    @property
    def Id(self):
        r"""记录Id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineIp(self):
        r"""主机ip
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        r"""主机名
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def UserName(self):
        r"""用户名
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        r"""来源ip
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def Status(self):
        r"""1:正常登录；2异地登录； 5已加白； 14：已处理；15：已忽略。
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Country(self):
        r"""国家id
        :rtype: int
        """
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def City(self):
        r"""城市id
        :rtype: int
        """
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def Province(self):
        r"""省份id
        :rtype: int
        """
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def LoginTime(self):
        r"""登录时间
        :rtype: str
        """
        return self._LoginTime

    @LoginTime.setter
    def LoginTime(self, LoginTime):
        self._LoginTime = LoginTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def IsRiskArea(self):
        r"""是否命中异地登录异常  1表示命中此类异常, 0表示未命中
        :rtype: int
        """
        return self._IsRiskArea

    @IsRiskArea.setter
    def IsRiskArea(self, IsRiskArea):
        self._IsRiskArea = IsRiskArea

    @property
    def IsRiskUser(self):
        r"""是否命中异常用户异常 1表示命中此类异常, 0表示未命中
        :rtype: int
        """
        return self._IsRiskUser

    @IsRiskUser.setter
    def IsRiskUser(self, IsRiskUser):
        self._IsRiskUser = IsRiskUser

    @property
    def IsRiskTime(self):
        r"""是否命中异常时间异常 1表示命中此类异常, 0表示未命中
        :rtype: int
        """
        return self._IsRiskTime

    @IsRiskTime.setter
    def IsRiskTime(self, IsRiskTime):
        self._IsRiskTime = IsRiskTime

    @property
    def IsRiskSrcIp(self):
        r"""是否命中异常IP异常 1表示命中此类异常, 0表示未命中
        :rtype: int
        """
        return self._IsRiskSrcIp

    @IsRiskSrcIp.setter
    def IsRiskSrcIp(self, IsRiskSrcIp):
        self._IsRiskSrcIp = IsRiskSrcIp

    @property
    def RiskLevel(self):
        r"""危险等级：
0 高危
1 可疑
        :rtype: int
        """
        return self._RiskLevel

    @RiskLevel.setter
    def RiskLevel(self, RiskLevel):
        self._RiskLevel = RiskLevel

    @property
    def Location(self):
        r"""位置名称
        :rtype: str
        """
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Desc(self):
        r"""高危信息说明：
ABROAD - 境外IP；
XTI - 威胁情报
        :rtype: str
        """
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Port(self):
        r"""请求目的端口
        :rtype: int
        """
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def IPAnalyse(self):
        r"""ip分析
        :rtype: :class:`tencentcloud.cwp.v20180228.models.IPAnalyse`
        """
        return self._IPAnalyse

    @IPAnalyse.setter
    def IPAnalyse(self, IPAnalyse):
        self._IPAnalyse = IPAnalyse


    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")
        if params.get("IPAnalyse") is not None:
            self._IPAnalyse = IPAnalyse()
            self._IPAnalyse._deserialize(params.get("IPAnalyse"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""新增登录审计白名单实体

    """

    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):
        r"""加白地域
        :rtype: list of Place
        """
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places

    @property
    def SrcIp(self):
        r"""加白源IP，支持网段，多个IP以逗号隔开
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def UserName(self):
        r"""加白用户名，多个用户名以逗号隔开
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def IsGlobal(self):
        r"""是否对全局生效, 1：全局有效 0: 仅针对单台主机'
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def HostInfos(self):
        r"""白名单生效的机器信息列表
        :rtype: list of HostInfo
        """
        return self._HostInfos

    @HostInfos.setter
    def HostInfos(self, HostInfos):
        self._HostInfos = HostInfos

    @property
    def Remark(self):
        r"""备注
        :rtype: str
        """
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def StartTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""结束时间
        :rtype: str
        """
        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):
    r"""主机风险计数

    """

    def __init__(self):
        r"""
        :param _HostId: 主机ID
        :type HostId: str
        :param _HostName: 主机名
        :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):
        r"""主机ID
        :rtype: str
        """
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostName(self):
        r"""主机名
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def SeriousCount(self):
        r"""严重个数
        :rtype: int
        """
        return self._SeriousCount

    @SeriousCount.setter
    def SeriousCount(self, SeriousCount):
        self._SeriousCount = SeriousCount

    @property
    def HighCount(self):
        r"""高危个数
        :rtype: int
        """
        return self._HighCount

    @HighCount.setter
    def HighCount(self, HighCount):
        self._HighCount = HighCount

    @property
    def MediumCount(self):
        r"""中危个数
        :rtype: int
        """
        return self._MediumCount

    @MediumCount.setter
    def MediumCount(self, MediumCount):
        self._MediumCount = MediumCount

    @property
    def LowCount(self):
        r"""低危个数
        :rtype: int
        """
        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):
    r"""主机与主机标签信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _TagList: 主机标签名数组
        :type TagList: list of str
        :param _HostIp: 主机内网Ip
        :type HostIp: str
        :param _AliasName: 主机名
        :type AliasName: str
        :param _MachineWanIp: 主机公网ip
        :type MachineWanIp: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _KernelVersion: 内核版本号
        :type KernelVersion: str
        :param _MachineStatus: 主机在线状态 ONLINE，OFFLINE
        :type MachineStatus: str
        :param _ProtectType: 防护版本 BASIC_VERSION 基础版, PRO_VERSION 专业版 Flagship 旗舰版
        :type ProtectType: str
        :param _VulNum: 漏洞数
        :type VulNum: int
        :param _CloudTags: 云标签信息
        :type CloudTags: list of Tags
        :param _InstanceID: 主机instance ID
        :type InstanceID: str
        :param _MachineType: 主机类型
        :type MachineType: str
        :param _RegionName: 可用区名称
        :type RegionName: str
        :param _RegionId: 可用区ID
        :type RegionId: int
        """
        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
        self._MachineType = None
        self._RegionName = None
        self._RegionId = None

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def TagList(self):
        r"""主机标签名数组
        :rtype: list of str
        """
        return self._TagList

    @TagList.setter
    def TagList(self, TagList):
        self._TagList = TagList

    @property
    def HostIp(self):
        r"""主机内网Ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def AliasName(self):
        r"""主机名
        :rtype: str
        """
        return self._AliasName

    @AliasName.setter
    def AliasName(self, AliasName):
        self._AliasName = AliasName

    @property
    def MachineWanIp(self):
        r"""主机公网ip
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def KernelVersion(self):
        r"""内核版本号
        :rtype: str
        """
        return self._KernelVersion

    @KernelVersion.setter
    def KernelVersion(self, KernelVersion):
        self._KernelVersion = KernelVersion

    @property
    def MachineStatus(self):
        r"""主机在线状态 ONLINE，OFFLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def ProtectType(self):
        r"""防护版本 BASIC_VERSION 基础版, PRO_VERSION 专业版 Flagship 旗舰版
        :rtype: str
        """
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def VulNum(self):
        r"""漏洞数
        :rtype: int
        """
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def CloudTags(self):
        r"""云标签信息
        :rtype: list of Tags
        """
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def InstanceID(self):
        r"""主机instance ID
        :rtype: str
        """
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def MachineType(self):
        r"""主机类型
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def RegionName(self):
        r"""可用区名称
        :rtype: str
        """
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def RegionId(self):
        r"""可用区ID
        :rtype: int
        """
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId


    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")
        self._MachineType = params.get("MachineType")
        self._RegionName = params.get("RegionName")
        self._RegionId = params.get("RegionId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IPAnalyse(AbstractModel):
    r"""ip 分析

    """

    def __init__(self):
        r"""
        :param _Status: 0 安全
1 可疑
2 恶意
3 未知
        :type Status: int
        :param _Tags: 标签特征
        :type Tags: list of str
        :param _Family: 家族信息
        :type Family: list of str
        :param _Profile: 画像
        :type Profile: list of str
        :param _Isp: 运营商
        :type Isp: str
        """
        self._Status = None
        self._Tags = None
        self._Family = None
        self._Profile = None
        self._Isp = None

    @property
    def Status(self):
        r"""0 安全
1 可疑
2 恶意
3 未知
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Tags(self):
        r"""标签特征
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Family(self):
        r"""家族信息
        :rtype: list of str
        """
        return self._Family

    @Family.setter
    def Family(self, Family):
        self._Family = Family

    @property
    def Profile(self):
        r"""画像
        :rtype: list of str
        """
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def Isp(self):
        r"""运营商
        :rtype: str
        """
        return self._Isp

    @Isp.setter
    def Isp(self, Isp):
        self._Isp = Isp


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._Tags = params.get("Tags")
        self._Family = params.get("Family")
        self._Profile = params.get("Profile")
        self._Isp = params.get("Isp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""忽略的基线检测项信息

    """

    def __init__(self):
        r"""
        :param _RuleName: 基线检测项名称
        :type RuleName: str
        :param _RuleId: 基线检测项id
        :type RuleId: int
        :param _ModifyTime: 更新时间
        :type ModifyTime: str
        :param _Fix: 修复建议
        :type Fix: str
        :param _EffectHostCount: 影响主机数
        :type EffectHostCount: int
        """
        self._RuleName = None
        self._RuleId = None
        self._ModifyTime = None
        self._Fix = None
        self._EffectHostCount = None

    @property
    def RuleName(self):
        r"""基线检测项名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleId(self):
        r"""基线检测项id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def ModifyTime(self):
        r"""更新时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Fix(self):
        r"""修复建议
        :rtype: str
        """
        return self._Fix

    @Fix.setter
    def Fix(self, Fix):
        self._Fix = Fix

    @property
    def EffectHostCount(self):
        r"""影响主机数
        :rtype: int
        """
        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 IgnoreRuleEffectHostInfo(AbstractModel):
    r"""忽略检测项影响主机信息

    """

    def __init__(self):
        r"""
        :param _HostName: 主机名称
        :type HostName: str
        :param _Level: 危害等级：1-低位，2-中危，3-高危，4-严重
        :type Level: int
        :param _TagList: 主机标签数组
        :type TagList: list of str
        :param _Status: 状态：0-未通过，1-忽略，3-已通过，5-检测中
        :type Status: int
        :param _LastScanTime: 最后检测时间
        :type LastScanTime: str
        :param _EventId: 事件id
        :type EventId: int
        :param _Quuid: 主机quuid
        :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):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def Level(self):
        r"""危害等级：1-低位，2-中危，3-高危，4-严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def TagList(self):
        r"""主机标签数组
        :rtype: list of str
        """
        return self._TagList

    @TagList.setter
    def TagList(self, TagList):
        self._TagList = TagList

    @property
    def Status(self):
        r"""状态：0-未通过，1-忽略，3-已通过，5-检测中
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def LastScanTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def EventId(self):
        r"""事件id
        :rtype: int
        """
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        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):
    r"""事件点信息

    """

    def __init__(self):
        r"""
        :param _IncidentId: 事件id
        :type IncidentId: str
        :param _TableName: 事件所在表名
        :type TableName: str
        :param _Vertex: 节点信息列表，数组项中包含节点详细信息
        :type Vertex: list of VertexInfo
        :param _VertexCount: 节点总个数
        :type VertexCount: int
        """
        self._IncidentId = None
        self._TableName = None
        self._Vertex = None
        self._VertexCount = None

    @property
    def IncidentId(self):
        r"""事件id
        :rtype: str
        """
        return self._IncidentId

    @IncidentId.setter
    def IncidentId(self, IncidentId):
        self._IncidentId = IncidentId

    @property
    def TableName(self):
        r"""事件所在表名
        :rtype: str
        """
        return self._TableName

    @TableName.setter
    def TableName(self, TableName):
        self._TableName = TableName

    @property
    def Vertex(self):
        r"""节点信息列表，数组项中包含节点详细信息
        :rtype: list of VertexInfo
        """
        return self._Vertex

    @Vertex.setter
    def Vertex(self, Vertex):
        self._Vertex = Vertex

    @property
    def VertexCount(self):
        r"""节点总个数
        :rtype: int
        """
        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):
    r"""项

    """

    def __init__(self):
        r"""
        :param _ItemId: Id
        :type ItemId: int
        :param _ItemName: 名称
        :type ItemName: str
        :param _CustomItemValues: 自定义阈值
        :type CustomItemValues: list of int non-negative
        :param _CategoryId: 检测项所属分类
        :type CategoryId: int
        """
        self._ItemId = None
        self._ItemName = None
        self._CustomItemValues = None
        self._CategoryId = None

    @property
    def ItemId(self):
        r"""Id
        :rtype: int
        """
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        r"""名称
        :rtype: str
        """
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def CustomItemValues(self):
        r"""自定义阈值
        :rtype: list of int non-negative
        """
        return self._CustomItemValues

    @CustomItemValues.setter
    def CustomItemValues(self, CustomItemValues):
        self._CustomItemValues = CustomItemValues

    @property
    def CategoryId(self):
        r"""检测项所属分类
        :rtype: int
        """
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId


    def _deserialize(self, params):
        self._ItemId = params.get("ItemId")
        self._ItemName = params.get("ItemName")
        self._CustomItemValues = params.get("CustomItemValues")
        self._CategoryId = params.get("CategoryId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""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:  主机额外信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _MachineState: agent状态：OFFLINE,ONLINE
        :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):
        r"""容器名
        :rtype: str
        """
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def InstanceState(self):
        r"""实例状态：RUNNING,STOPPED,SHUTDOWN...
        :rtype: str
        """
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def PrivateIp(self):
        r"""内网IP
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        r"""公共ip
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def Type(self):
        r"""内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Description(self):
        r"""说明
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def CreateTime(self):
        r"""首次发现时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RecentFoundTime(self):
        r"""最近检测时间
        :rtype: str
        """
        return self._RecentFoundTime

    @RecentFoundTime.setter
    def RecentFoundTime(self, RecentFoundTime):
        self._RecentFoundTime = RecentFoundTime

    @property
    def Status(self):
        r"""处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ClassLoaderName(self):
        r"""java加载器类名
        :rtype: str
        """
        return self._ClassLoaderName

    @ClassLoaderName.setter
    def ClassLoaderName(self, ClassLoaderName):
        self._ClassLoaderName = ClassLoaderName

    @property
    def SuperClassName(self):
        r"""父类名
        :rtype: str
        """
        return self._SuperClassName

    @SuperClassName.setter
    def SuperClassName(self, SuperClassName):
        self._SuperClassName = SuperClassName

    @property
    def Md5(self):
        r"""类文件MD5
        :rtype: str
        """
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def Interfaces(self):
        r"""继承的接口
        :rtype: str
        """
        return self._Interfaces

    @Interfaces.setter
    def Interfaces(self, Interfaces):
        self._Interfaces = Interfaces

    @property
    def Annotations(self):
        r"""注释
        :rtype: str
        """
        return self._Annotations

    @Annotations.setter
    def Annotations(self, Annotations):
        self._Annotations = Annotations

    @property
    def Pid(self):
        r"""进程pid
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Exe(self):
        r"""java进程路径
        :rtype: str
        """
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def Args(self):
        r"""java进程命令行参数
        :rtype: str
        """
        return self._Args

    @Args.setter
    def Args(self, Args):
        self._Args = Args

    @property
    def ClassName(self):
        r"""类名
        :rtype: str
        """
        return self._ClassName

    @ClassName.setter
    def ClassName(self, ClassName):
        self._ClassName = ClassName

    @property
    def ClassContent(self):
        r"""java内存马二进制代码(base64)
        :rtype: str
        """
        return self._ClassContent

    @ClassContent.setter
    def ClassContent(self, ClassContent):
        self._ClassContent = ClassContent

    @property
    def ClassContentPretty(self):
        r"""java内存马反编译代码
        :rtype: str
        """
        return self._ClassContentPretty

    @ClassContentPretty.setter
    def ClassContentPretty(self, ClassContentPretty):
        self._ClassContentPretty = ClassContentPretty

    @property
    def EventDescription(self):
        r"""事件描述
        :rtype: str
        """
        return self._EventDescription

    @EventDescription.setter
    def EventDescription(self, EventDescription):
        self._EventDescription = EventDescription

    @property
    def SecurityAdvice(self):
        r"""安全建议
        :rtype: str
        """
        return self._SecurityAdvice

    @SecurityAdvice.setter
    def SecurityAdvice(self, SecurityAdvice):
        self._SecurityAdvice = SecurityAdvice

    @property
    def MachineExtraInfo(self):
        r""" 主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def MachineState(self):
        r"""agent状态：OFFLINE,ONLINE
        :rtype: str
        """
        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):
    r"""java内存马事件信息

    """

    def __init__(self):
        r"""
        :param _Id: 事件ID
        :type Id: int
        :param _Alias: 服务器名称
        :type Alias: str
        :param _HostIp: 服务器IP
        :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: 主机额外信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Uuid: 服务器uuid
        :type Uuid: str
        :param _ClassName: 类名
        :type ClassName: str
        :param _SuperClassName: 父类名
        :type SuperClassName: str
        :param _Interfaces: 继承的接口
        :type Interfaces: str
        :param _Annotations: 注释
        :type Annotations: str
        :param _LoaderClassName: 所属的类加载器
        :type LoaderClassName: 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
        self._ClassName = None
        self._SuperClassName = None
        self._Interfaces = None
        self._Annotations = None
        self._LoaderClassName = None

    @property
    def Id(self):
        r"""事件ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Alias(self):
        r"""服务器名称
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def HostIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Type(self):
        r"""内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Description(self):
        r"""说明
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def CreateTime(self):
        r"""首次发现时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RecentFoundTime(self):
        r"""最近检测时间
        :rtype: str
        """
        return self._RecentFoundTime

    @RecentFoundTime.setter
    def RecentFoundTime(self, RecentFoundTime):
        self._RecentFoundTime = RecentFoundTime

    @property
    def Status(self):
        r"""处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Quuid(self):
        r"""服务器quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Uuid(self):
        r"""服务器uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def ClassName(self):
        r"""类名
        :rtype: str
        """
        return self._ClassName

    @ClassName.setter
    def ClassName(self, ClassName):
        self._ClassName = ClassName

    @property
    def SuperClassName(self):
        r"""父类名
        :rtype: str
        """
        return self._SuperClassName

    @SuperClassName.setter
    def SuperClassName(self, SuperClassName):
        self._SuperClassName = SuperClassName

    @property
    def Interfaces(self):
        r"""继承的接口
        :rtype: str
        """
        return self._Interfaces

    @Interfaces.setter
    def Interfaces(self, Interfaces):
        self._Interfaces = Interfaces

    @property
    def Annotations(self):
        r"""注释
        :rtype: str
        """
        return self._Annotations

    @Annotations.setter
    def Annotations(self, Annotations):
        self._Annotations = Annotations

    @property
    def LoaderClassName(self):
        r"""所属的类加载器
        :rtype: str
        """
        return self._LoaderClassName

    @LoaderClassName.setter
    def LoaderClassName(self, LoaderClassName):
        self._LoaderClassName = LoaderClassName


    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")
        self._ClassName = params.get("ClassName")
        self._SuperClassName = params.get("SuperClassName")
        self._Interfaces = params.get("Interfaces")
        self._Annotations = params.get("Annotations")
        self._LoaderClassName = params.get("LoaderClassName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""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):
        r"""注入进程pid
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def MainClass(self):
        r"""注入进程主类
        :rtype: str
        """
        return self._MainClass

    @MainClass.setter
    def MainClass(self, MainClass):
        self._MainClass = MainClass

    @property
    def Status(self):
        r"""注入状态：0: 注入中, 1: 注入成功, 2: 插件超时, 3: 插件退出, 4: 注入失败 5: 软删除
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ErrorLog(self):
        r"""错误日志
        :rtype: str
        """
        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):
    r"""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
        :type Uuid: str
        :param _MachineExtraInfo: 主机额外信息
        :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):
        r"""容器quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        r"""服务器名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def HostIp(self):
        r"""服务器ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def JavaShellStatus(self):
        r"""javashell插件开关 0: 关闭 1: 开启
        :rtype: int
        """
        return self._JavaShellStatus

    @JavaShellStatus.setter
    def JavaShellStatus(self, JavaShellStatus):
        self._JavaShellStatus = JavaShellStatus

    @property
    def Exception(self):
        r"""插件是否存在异常 0: 正常 1: 异常
        :rtype: int
        """
        return self._Exception

    @Exception.setter
    def Exception(self, Exception):
        self._Exception = Exception

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Uuid(self):
        r"""服务器uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""索引键值信息

    """

    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):
        r"""需要配置键值或者元字段索引的字段
        :rtype: str
        """
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Value(self):
        r"""字段的索引描述信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.ValueInfo`
        """
        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):
    r"""键值索引配置

    """

    def __init__(self):
        r"""
        :param _CaseSensitive: 是否大小写敏感
        :type CaseSensitive: bool
        :param _KeyValues: 需要建立索引的键值对信息
        :type KeyValues: list of KeyValueArrayInfo
        """
        self._CaseSensitive = None
        self._KeyValues = None

    @property
    def CaseSensitive(self):
        r"""是否大小写敏感
        :rtype: bool
        """
        return self._CaseSensitive

    @CaseSensitive.setter
    def CaseSensitive(self, CaseSensitive):
        self._CaseSensitive = CaseSensitive

    @property
    def KeyValues(self):
        r"""需要建立索引的键值对信息
        :rtype: list of KeyValueArrayInfo
        """
        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):
    r"""KeysLocalStorage请求参数结构体

    """


class KeysLocalStorageResponse(AbstractModel):
    r"""KeysLocalStorage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Keys: 键列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Keys: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Keys = None
        self._RequestId = None

    @property
    def Keys(self):
        r"""键列表
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: list of str
        """
        return self._Keys

    @Keys.setter
    def Keys(self, Keys):
        self._Keys = Keys

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""授权绑定详情信息

    """

    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: 主机额外信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _InstanceState: <li> RUNNING 运行中</li>
<li> STOPPED 已关机</li>
<li> EXPIRED 待回收</li>
        :type InstanceState: str
        :param _AgentState: <li>ONLINE 已离线 </li>
<li>OFFLINE 防护中</li>
<li>UNINSTALLED 未安装客户端</li>
        :type AgentState: str
        """
        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
        self._InstanceState = None
        self._AgentState = None

    @property
    def MachineName(self):
        r"""机器别名
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineWanIp(self):
        r"""机器公网IP
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineIp(self):
        r"""机器内网IP
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def Quuid(self):
        r"""云服务器UUID
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        r"""主机安全客户端UUID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Tags(self):
        r"""标签信息
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def AgentStatus(self):
        r"""主机安全客户端状态,OFFLINE 离线,ONLINE 在线,UNINSTALL 未安装
        :rtype: str
        """
        return self._AgentStatus

    @AgentStatus.setter
    def AgentStatus(self, AgentStatus):
        self._AgentStatus = AgentStatus

    @property
    def IsUnBind(self):
        r"""是否允许解绑,false 不允许解绑
        :rtype: bool
        """
        return self._IsUnBind

    @IsUnBind.setter
    def IsUnBind(self, IsUnBind):
        self._IsUnBind = IsUnBind

    @property
    def IsSwitchBind(self):
        r"""是否允许换绑,false 不允许换绑
        :rtype: bool
        """
        return self._IsSwitchBind

    @IsSwitchBind.setter
    def IsSwitchBind(self, IsSwitchBind):
        self._IsSwitchBind = IsSwitchBind

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def InstanceState(self):
        r"""<li> RUNNING 运行中</li>
<li> STOPPED 已关机</li>
<li> EXPIRED 待回收</li>
        :rtype: str
        """
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def AgentState(self):
        r"""<li>ONLINE 已离线 </li>
<li>OFFLINE 防护中</li>
<li>UNINSTALLED 未安装客户端</li>
        :rtype: str
        """
        return self._AgentState

    @AgentState.setter
    def AgentState(self, AgentState):
        self._AgentState = AgentState


    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"))
        self._InstanceState = params.get("InstanceState")
        self._AgentState = params.get("AgentState")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""授权绑定任务详情

    """

    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: 机器额外信息
        :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):
        r"""云服务器UUID
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def ErrMsg(self):
        r"""错误信息
        :rtype: str
        """
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def Status(self):
        r"""0 执行中, 1 成功,2失败
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def FixMessage(self):
        r"""修复建议
        :rtype: str
        """
        return self._FixMessage

    @FixMessage.setter
    def FixMessage(self, FixMessage):
        self._FixMessage = FixMessage

    @property
    def MachineExtraInfo(self):
        r"""机器额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""授权订单列表对象

    """

    def __init__(self):
        r"""
        :param _LicenseId: 授权ID
        :type LicenseId: int
        :param _LicenseType: 授权类型,0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        :type LicenseType: int
        :param _LicenseStatus: 授权状态 0 未使用,1 部分使用, 2 已用完, 3 不可用
        :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: 平台标签
        :type Tags: list of Tags
        :param _FreezeNum: 冻结数,当为0时 为未冻结,非0 则表示冻结授权数额
        :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):
        r"""授权ID
        :rtype: int
        """
        return self._LicenseId

    @LicenseId.setter
    def LicenseId(self, LicenseId):
        self._LicenseId = LicenseId

    @property
    def LicenseType(self):
        r"""授权类型,0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def LicenseStatus(self):
        r"""授权状态 0 未使用,1 部分使用, 2 已用完, 3 不可用
        :rtype: int
        """
        return self._LicenseStatus

    @LicenseStatus.setter
    def LicenseStatus(self, LicenseStatus):
        self._LicenseStatus = LicenseStatus

    @property
    def LicenseCnt(self):
        r"""总授权数
        :rtype: int
        """
        return self._LicenseCnt

    @LicenseCnt.setter
    def LicenseCnt(self, LicenseCnt):
        self._LicenseCnt = LicenseCnt

    @property
    def UsedLicenseCnt(self):
        r"""已使用授权数
        :rtype: int
        """
        return self._UsedLicenseCnt

    @UsedLicenseCnt.setter
    def UsedLicenseCnt(self, UsedLicenseCnt):
        self._UsedLicenseCnt = UsedLicenseCnt

    @property
    def OrderStatus(self):
        r"""订单状态 1 正常 2隔离, 3销毁
        :rtype: int
        """
        return self._OrderStatus

    @OrderStatus.setter
    def OrderStatus(self, OrderStatus):
        self._OrderStatus = OrderStatus

    @property
    def Deadline(self):
        r"""截止日期
        :rtype: str
        """
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline

    @property
    def ResourceId(self):
        r"""订单资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def AutoRenewFlag(self):
        r"""0 初始化,1 自动续费,2 不自动续费
        :rtype: int
        """
        return self._AutoRenewFlag

    @AutoRenewFlag.setter
    def AutoRenewFlag(self, AutoRenewFlag):
        self._AutoRenewFlag = AutoRenewFlag

    @property
    def ProjectId(self):
        r"""项目ID
        :rtype: int
        """
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def TaskId(self):
        r"""任务ID ,默认0 ,查询绑定进度用
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def BuyTime(self):
        r"""购买时间
        :rtype: str
        """
        return self._BuyTime

    @BuyTime.setter
    def BuyTime(self, BuyTime):
        self._BuyTime = BuyTime

    @property
    def SourceType(self):
        r"""是否试用订单.
        :rtype: int
        """
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType

    @property
    def Alias(self):
        r"""资源别名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def Tags(self):
        r"""平台标签
        :rtype: list of Tags
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def FreezeNum(self):
        r"""冻结数,当为0时 为未冻结,非0 则表示冻结授权数额
        :rtype: int
        """
        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):
    r"""授权订单对象内容

    """

    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):
        r"""授权ID
        :rtype: int
        """
        return self._LicenseId

    @LicenseId.setter
    def LicenseId(self, LicenseId):
        self._LicenseId = LicenseId

    @property
    def LicenseType(self):
        r"""授权类型
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def Status(self):
        r"""授权订单资源状态
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def SourceType(self):
        r"""订单类型
        :rtype: int
        """
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType

    @property
    def ResourceId(self):
        r"""资源ID
        :rtype: str
        """
        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):
    r"""授权解绑信息

    """

    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):
        r"""QUUID 云服务器uuid,轻量服务器uuid,边缘计算 uuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def ErrMsg(self):
        r"""失败原因
        :rtype: str
        """
        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):
    r"""直方图周期内统计结果详情

    """

    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):
        r"""统计周期内的日志条数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def TimeStamp(self):
        r"""按 period 取整后的 unix timestamp： 单位毫秒
        :rtype: int
        """
        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):
    r"""日志详情

    """

    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):
        r"""日志内容的Json序列化字符串
        :rtype: str
        """
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def FileName(self):
        r"""日志文件名称
        :rtype: str
        """
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def Source(self):
        r"""日志来源IP
        :rtype: str
        """
        return self._Source

    @Source.setter
    def Source(self, Source):
        self._Source = Source

    @property
    def TimeStamp(self):
        r"""日志时间，单位ms
        :rtype: int
        """
        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):
    r"""日志存储量记录

    """

    def __init__(self):
        r"""
        :param _Month: 年月份
        :type Month: str
        :param _UsedSize: 存储量，字节
        :type UsedSize: int
        :param _InquireSize: 总量，字节
        :type InquireSize: int
        """
        self._Month = None
        self._UsedSize = None
        self._InquireSize = None

    @property
    def Month(self):
        r"""年月份
        :rtype: str
        """
        return self._Month

    @Month.setter
    def Month(self, Month):
        self._Month = Month

    @property
    def UsedSize(self):
        r"""存储量，字节
        :rtype: int
        """
        return self._UsedSize

    @UsedSize.setter
    def UsedSize(self, UsedSize):
        self._UsedSize = UsedSize

    @property
    def InquireSize(self):
        r"""总量，字节
        :rtype: int
        """
        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):
    r"""异地登录合并后白名单

    """

    def __init__(self):
        r"""
        :param _Places: 白名单地域
        :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):
        r"""白名单地域
        :rtype: list of Place
        """
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places

    @property
    def UserName(self):
        r"""白名单用户（多个用户逗号隔开）
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        r"""白名单IP（多个IP逗号隔开）
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def Locale(self):
        r"""地域字符串
        :rtype: str
        """
        return self._Locale

    @Locale.setter
    def Locale(self, Locale):
        self._Locale = Locale

    @property
    def Remark(self):
        r"""备注
        :rtype: str
        """
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def StartTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""结束时间
        :rtype: str
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def IsGlobal(self):
        r"""是否对全局生效, 1：全局有效 0: 对指定主机列表生效'
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Name(self):
        r"""白名单名字：IsLocal=1时固定为：全部服务器；单台机器时为机器内网IP，多台服务器时为服务器数量，如：11台
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Desc(self):
        r"""仅在单台服务器时，返回服务器名称
        :rtype: str
        """
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Id(self):
        r"""白名单ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""最近修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Uuid(self):
        r"""服务器Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Locations(self):
        r"""登录地
        :rtype: str
        """
        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):
    r"""异地登录白名单

    """

    def __init__(self):
        r"""
        :param _Id: 记录ID
        :type Id: int
        :param _Uuid: 主机安全uuid
        :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):
        r"""记录ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机安全uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Places(self):
        r"""白名单地域
        :rtype: list of Place
        """
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places

    @property
    def UserName(self):
        r"""白名单用户（多个用户逗号隔开）
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        r"""白名单IP（多个IP逗号隔开）
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def IsGlobal(self):
        r"""是否为全局规则
        :rtype: bool
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def CreateTime(self):
        r"""创建白名单时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改白名单时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def MachineName(self):
        r"""机器名
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def HostIp(self):
        r"""机器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def StartTime(self):
        r"""起始时间
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""结束时间
        :rtype: str
        """
        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):
    r"""主机列表

    """

    def __init__(self):
        r"""
        :param _MachineName: <p>主机名称。</p>
        :type MachineName: str
        :param _MachineOs: <p>主机系统。</p>
        :type MachineOs: str
        :param _MachineStatus: <p>主机状态。 <li>OFFLINE: 离线 </li> <li>ONLINE: 在线</li> <li>SHUTDOWN: 已关机</li> <li>UNINSTALLED: 未防护</li></p>
        :type MachineStatus: str
        :param _AgentStatus: <p>ONLINE 防护中; OFFLINE 已离线;UNINStALLED 未安装</p>
        :type AgentStatus: str
        :param _InstanceStatus: <p>RUNNING 运行中; STOPED 已关机; EXPIRED 待回收</p>
        :type InstanceStatus: str
        :param _Uuid: <p>主机安全Uuid，若客户端长时间不在线将返回空字符。</p>
        :type Uuid: str
        :param _Quuid: <p>CVM或BM机器唯一Uuid。</p>
        :type Quuid: str
        :param _VulNum: <p>漏洞数。</p>
        :type VulNum: int
        :param _MachineIp: <p>主机IP。</p>
        :type MachineIp: str
        :param _IsProVersion: <p>是否是专业版。</p><li>true： 是</li><li>false：否</li>
        :type IsProVersion: bool
        :param _MachineWanIp: <p>主机外网IP。</p>
        :type MachineWanIp: str
        :param _PayMode: <p>主机状态。</p><li>POSTPAY: 表示后付费，即按量计费  </li><li>PREPAY: 表示预付费，即包年包月</li>
        :type PayMode: str
        :param _MalwareNum: <p>木马数。</p>
        :type MalwareNum: int
        :param _Tag: <p>标签信息</p>
        :type Tag: list of MachineTag
        :param _BaselineNum: <p>基线风险数。</p>
        :type BaselineNum: int
        :param _CyberAttackNum: <p>网络风险数。</p>
        :type CyberAttackNum: int
        :param _SecurityStatus: <p>风险状态。</p><li>SAFE：安全</li><li>RISK：风险</li><li>UNKNOWN：未知</li>
        :type SecurityStatus: str
        :param _InvasionNum: <p>入侵事件数</p>
        :type InvasionNum: int
        :param _RegionInfo: <p>地域信息</p>
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        :param _InstanceState: <p>实例状态 TERMINATED_PRO_VERSION 已销毁</p>
        :type InstanceState: str
        :param _LicenseStatus: <p>防篡改 授权状态 1 授权 0 未授权</p>
        :type LicenseStatus: int
        :param _ProjectId: <p>项目ID</p>
        :type ProjectId: int
        :param _HasAssetScan: <p>是否有资产扫描接口，0无，1有</p>
        :type HasAssetScan: int
        :param _MachineType: <p>机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区</p>
        :type MachineType: str
        :param _KernelVersion: <p>内核版本</p>
        :type KernelVersion: str
        :param _ProtectType: <p>防护版本：BASIC_VERSION 基础版， PRO_VERSION 专业版，Flagship 旗舰版，GENERAL_DISCOUNT 轻量版</p>
        :type ProtectType: str
        :param _CloudTags: <p>云标签信息</p>
        :type CloudTags: list of Tags
        :param _IsAddedOnTheFifteen: <p>是否15天内新增的主机 0：非15天内新增的主机，1：15天内增加的主机</p>
        :type IsAddedOnTheFifteen: int
        :param _IpList: <p>主机ip列表</p>
        :type IpList: str
        :param _VpcId: <p>所属网络</p>
        :type VpcId: str
        :param _MachineExtraInfo: <p>附加信息</p>
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _InstanceId: <p>实例ID</p>
        :type InstanceId: str
        :param _Remark: <p>备注信息</p>
        :type Remark: str
        :param _AgentVersion: <p>主机安全agent版本</p>
        :type AgentVersion: str
        :param _AppId: <p>机器对应APPID</p>
        :type AppId: int
        :param _CSIPProtectType: <p>安全中心付费版本</p>
        :type CSIPProtectType: str
        """
        self._MachineName = None
        self._MachineOs = None
        self._MachineStatus = None
        self._AgentStatus = None
        self._InstanceStatus = 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
        self._AgentVersion = None
        self._AppId = None
        self._CSIPProtectType = None

    @property
    def MachineName(self):
        r"""<p>主机名称。</p>
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineOs(self):
        r"""<p>主机系统。</p>
        :rtype: str
        """
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def MachineStatus(self):
        r"""<p>主机状态。 <li>OFFLINE: 离线 </li> <li>ONLINE: 在线</li> <li>SHUTDOWN: 已关机</li> <li>UNINSTALLED: 未防护</li></p>
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def AgentStatus(self):
        r"""<p>ONLINE 防护中; OFFLINE 已离线;UNINStALLED 未安装</p>
        :rtype: str
        """
        return self._AgentStatus

    @AgentStatus.setter
    def AgentStatus(self, AgentStatus):
        self._AgentStatus = AgentStatus

    @property
    def InstanceStatus(self):
        r"""<p>RUNNING 运行中; STOPED 已关机; EXPIRED 待回收</p>
        :rtype: str
        """
        return self._InstanceStatus

    @InstanceStatus.setter
    def InstanceStatus(self, InstanceStatus):
        self._InstanceStatus = InstanceStatus

    @property
    def Uuid(self):
        r"""<p>主机安全Uuid，若客户端长时间不在线将返回空字符。</p>
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""<p>CVM或BM机器唯一Uuid。</p>
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def VulNum(self):
        r"""<p>漏洞数。</p>
        :rtype: int
        """
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def MachineIp(self):
        r"""<p>主机IP。</p>
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def IsProVersion(self):
        r"""<p>是否是专业版。</p><li>true： 是</li><li>false：否</li>
        :rtype: bool
        """
        return self._IsProVersion

    @IsProVersion.setter
    def IsProVersion(self, IsProVersion):
        self._IsProVersion = IsProVersion

    @property
    def MachineWanIp(self):
        r"""<p>主机外网IP。</p>
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def PayMode(self):
        r"""<p>主机状态。</p><li>POSTPAY: 表示后付费，即按量计费  </li><li>PREPAY: 表示预付费，即包年包月</li>
        :rtype: str
        """
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def MalwareNum(self):
        r"""<p>木马数。</p>
        :rtype: int
        """
        return self._MalwareNum

    @MalwareNum.setter
    def MalwareNum(self, MalwareNum):
        self._MalwareNum = MalwareNum

    @property
    def Tag(self):
        r"""<p>标签信息</p>
        :rtype: list of MachineTag
        """
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def BaselineNum(self):
        r"""<p>基线风险数。</p>
        :rtype: int
        """
        return self._BaselineNum

    @BaselineNum.setter
    def BaselineNum(self, BaselineNum):
        self._BaselineNum = BaselineNum

    @property
    def CyberAttackNum(self):
        r"""<p>网络风险数。</p>
        :rtype: int
        """
        return self._CyberAttackNum

    @CyberAttackNum.setter
    def CyberAttackNum(self, CyberAttackNum):
        self._CyberAttackNum = CyberAttackNum

    @property
    def SecurityStatus(self):
        r"""<p>风险状态。</p><li>SAFE：安全</li><li>RISK：风险</li><li>UNKNOWN：未知</li>
        :rtype: str
        """
        return self._SecurityStatus

    @SecurityStatus.setter
    def SecurityStatus(self, SecurityStatus):
        self._SecurityStatus = SecurityStatus

    @property
    def InvasionNum(self):
        r"""<p>入侵事件数</p>
        :rtype: int
        """
        return self._InvasionNum

    @InvasionNum.setter
    def InvasionNum(self, InvasionNum):
        self._InvasionNum = InvasionNum

    @property
    def RegionInfo(self):
        r"""<p>地域信息</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        """
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def InstanceState(self):
        r"""<p>实例状态 TERMINATED_PRO_VERSION 已销毁</p>
        :rtype: str
        """
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def LicenseStatus(self):
        r"""<p>防篡改 授权状态 1 授权 0 未授权</p>
        :rtype: int
        """
        return self._LicenseStatus

    @LicenseStatus.setter
    def LicenseStatus(self, LicenseStatus):
        self._LicenseStatus = LicenseStatus

    @property
    def ProjectId(self):
        r"""<p>项目ID</p>
        :rtype: int
        """
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def HasAssetScan(self):
        r"""<p>是否有资产扫描接口，0无，1有</p>
        :rtype: int
        """
        return self._HasAssetScan

    @HasAssetScan.setter
    def HasAssetScan(self, HasAssetScan):
        self._HasAssetScan = HasAssetScan

    @property
    def MachineType(self):
        r"""<p>机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区</p>
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def KernelVersion(self):
        r"""<p>内核版本</p>
        :rtype: str
        """
        return self._KernelVersion

    @KernelVersion.setter
    def KernelVersion(self, KernelVersion):
        self._KernelVersion = KernelVersion

    @property
    def ProtectType(self):
        r"""<p>防护版本：BASIC_VERSION 基础版， PRO_VERSION 专业版，Flagship 旗舰版，GENERAL_DISCOUNT 轻量版</p>
        :rtype: str
        """
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def CloudTags(self):
        r"""<p>云标签信息</p>
        :rtype: list of Tags
        """
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def IsAddedOnTheFifteen(self):
        r"""<p>是否15天内新增的主机 0：非15天内新增的主机，1：15天内增加的主机</p>
        :rtype: int
        """
        return self._IsAddedOnTheFifteen

    @IsAddedOnTheFifteen.setter
    def IsAddedOnTheFifteen(self, IsAddedOnTheFifteen):
        self._IsAddedOnTheFifteen = IsAddedOnTheFifteen

    @property
    def IpList(self):
        r"""<p>主机ip列表</p>
        :rtype: str
        """
        return self._IpList

    @IpList.setter
    def IpList(self, IpList):
        self._IpList = IpList

    @property
    def VpcId(self):
        r"""<p>所属网络</p>
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def MachineExtraInfo(self):
        r"""<p>附加信息</p>
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def InstanceId(self):
        r"""<p>实例ID</p>
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def Remark(self):
        r"""<p>备注信息</p>
        :rtype: str
        """
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def AgentVersion(self):
        r"""<p>主机安全agent版本</p>
        :rtype: str
        """
        return self._AgentVersion

    @AgentVersion.setter
    def AgentVersion(self, AgentVersion):
        self._AgentVersion = AgentVersion

    @property
    def AppId(self):
        r"""<p>机器对应APPID</p>
        :rtype: int
        """
        return self._AppId

    @AppId.setter
    def AppId(self, AppId):
        self._AppId = AppId

    @property
    def CSIPProtectType(self):
        r"""<p>安全中心付费版本</p>
        :rtype: str
        """
        return self._CSIPProtectType

    @CSIPProtectType.setter
    def CSIPProtectType(self, CSIPProtectType):
        self._CSIPProtectType = CSIPProtectType


    def _deserialize(self, params):
        self._MachineName = params.get("MachineName")
        self._MachineOs = params.get("MachineOs")
        self._MachineStatus = params.get("MachineStatus")
        self._AgentStatus = params.get("AgentStatus")
        self._InstanceStatus = params.get("InstanceStatus")
        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")
        self._AgentVersion = params.get("AgentVersion")
        self._AppId = params.get("AppId")
        self._CSIPProtectType = params.get("CSIPProtectType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""机器清理记录对象

    """

    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):
        r"""ID值
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def InstanceId(self):
        r"""实例ID
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def InstanceName(self):
        r"""实例名称
        :rtype: str
        """
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def PublicIp(self):
        r"""公网IP
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def PrivateIp(self):
        r"""内网IP
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def AgentLastOfflineTime(self):
        r"""客户端最后离线时间
        :rtype: str
        """
        return self._AgentLastOfflineTime

    @AgentLastOfflineTime.setter
    def AgentLastOfflineTime(self, AgentLastOfflineTime):
        self._AgentLastOfflineTime = AgentLastOfflineTime

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        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):
    r"""服务器基础信息

    """

    def __init__(self):
        r"""
        :param _WanIP: 公网IP
        :type WanIP: str
        :param _PrivateIP: 内网IP
        :type PrivateIP: str
        :param _NetworkType: 网络类型，1:vpc网络 2:基础网络 3:非腾讯云网络
        :type NetworkType: int
        :param _NetworkName: 网络名，vpc网络情况下会返回vpc_id
        :type NetworkName: str
        :param _InstanceID: 实例ID
        :type InstanceID: str
        :param _HostName: 主机名
        :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):
        r"""公网IP
        :rtype: str
        """
        return self._WanIP

    @WanIP.setter
    def WanIP(self, WanIP):
        self._WanIP = WanIP

    @property
    def PrivateIP(self):
        r"""内网IP
        :rtype: str
        """
        return self._PrivateIP

    @PrivateIP.setter
    def PrivateIP(self, PrivateIP):
        self._PrivateIP = PrivateIP

    @property
    def NetworkType(self):
        r"""网络类型，1:vpc网络 2:基础网络 3:非腾讯云网络
        :rtype: int
        """
        return self._NetworkType

    @NetworkType.setter
    def NetworkType(self, NetworkType):
        self._NetworkType = NetworkType

    @property
    def NetworkName(self):
        r"""网络名，vpc网络情况下会返回vpc_id
        :rtype: str
        """
        return self._NetworkName

    @NetworkName.setter
    def NetworkName(self, NetworkName):
        self._NetworkName = NetworkName

    @property
    def InstanceID(self):
        r"""实例ID
        :rtype: str
        """
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def HostName(self):
        r"""主机名
        :rtype: str
        """
        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):
    r"""查询主机相关核心文件监控规则详情

    """

    def __init__(self):
        r"""
        :param _Name: 规则名称
        :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):
        r"""规则名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def RuleCategory(self):
        r"""规则类型 0 ：系统规则  1：用户规则
        :rtype: int
        """
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def Rule(self):
        r"""规则
        :rtype: list of FileTamperRule
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Id(self):
        r"""唯一id
        :rtype: int
        """
        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):
    r"""机器绑定授权信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _PayMode: 计费模式, 0 按量计费 , 1 预付费
        :type PayMode: int
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _LicenseType: 授权类型
        :type LicenseType: int
        :param _SourceType: 订单类型,0 默认计费订单 1 试用订单, 2 赠送 3 体验
        :type SourceType: int
        :param _InquireKey: 废弃字段,
        :type InquireKey: str
        :param _AutoRenewFlag: 自动续费标识 0 默认不自动付费, 1 自动付费 2 手动设置不续费
        :type AutoRenewFlag: int
        :param _Deadline: 到期时间,按量付费该值为空
        :type Deadline: str
        :param _BuyTime: 购买时间
        :type BuyTime: str
        :param _LicenseCnt: 授权数量
        :type LicenseCnt: int
        """
        self._Quuid = None
        self._PayMode = None
        self._ResourceId = None
        self._LicenseType = None
        self._SourceType = None
        self._InquireKey = None
        self._AutoRenewFlag = None
        self._Deadline = None
        self._BuyTime = None
        self._LicenseCnt = None

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def PayMode(self):
        r"""计费模式, 0 按量计费 , 1 预付费
        :rtype: int
        """
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def ResourceId(self):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def LicenseType(self):
        r"""授权类型
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def SourceType(self):
        r"""订单类型,0 默认计费订单 1 试用订单, 2 赠送 3 体验
        :rtype: int
        """
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType

    @property
    def InquireKey(self):
        r"""废弃字段,
        :rtype: str
        """
        return self._InquireKey

    @InquireKey.setter
    def InquireKey(self, InquireKey):
        self._InquireKey = InquireKey

    @property
    def AutoRenewFlag(self):
        r"""自动续费标识 0 默认不自动付费, 1 自动付费 2 手动设置不续费
        :rtype: int
        """
        return self._AutoRenewFlag

    @AutoRenewFlag.setter
    def AutoRenewFlag(self, AutoRenewFlag):
        self._AutoRenewFlag = AutoRenewFlag

    @property
    def Deadline(self):
        r"""到期时间,按量付费该值为空
        :rtype: str
        """
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline

    @property
    def BuyTime(self):
        r"""购买时间
        :rtype: str
        """
        return self._BuyTime

    @BuyTime.setter
    def BuyTime(self, BuyTime):
        self._BuyTime = BuyTime

    @property
    def LicenseCnt(self):
        r"""授权数量
        :rtype: int
        """
        return self._LicenseCnt

    @LicenseCnt.setter
    def LicenseCnt(self, LicenseCnt):
        self._LicenseCnt = LicenseCnt


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._PayMode = params.get("PayMode")
        self._ResourceId = params.get("ResourceId")
        self._LicenseType = params.get("LicenseType")
        self._SourceType = params.get("SourceType")
        self._InquireKey = params.get("InquireKey")
        self._AutoRenewFlag = params.get("AutoRenewFlag")
        self._Deadline = params.get("Deadline")
        self._BuyTime = params.get("BuyTime")
        self._LicenseCnt = params.get("LicenseCnt")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""主机列表穿梭框

    """

    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: 实例状态请参考CVM实例列表InstanceState值
https://cloud.tencent.com/document/api/213/15753#Instance
        :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: 授权订单对象
        :type LicenseOrder: :class:`tencentcloud.cwp.v20180228.models.LicenseOrder`
        :param _CloudTags: 云标签信息
        :type CloudTags: list of Tags
        :param _InstanceId: 实例ID
        :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):
        r"""主机名称。
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineOs(self):
        r"""主机系统。
        :rtype: str
        """
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def Uuid(self):
        r"""主机安全uuid，若客户端长时间不在线将返回空字符。
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""CVM或BM机器唯一Uuid。
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineIp(self):
        r"""主机IP。
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def IsProVersion(self):
        r"""是否是专业版。
<li>true： 是</li>
<li>false：否</li>
        :rtype: bool
        """
        return self._IsProVersion

    @IsProVersion.setter
    def IsProVersion(self, IsProVersion):
        self._IsProVersion = IsProVersion

    @property
    def MachineWanIp(self):
        r"""主机外网IP。
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def PayMode(self):
        r"""主机状态。
<li>POSTPAY: 表示后付费，即按量计费  </li>
<li>PREPAY: 表示预付费，即包年包月</li>
        :rtype: str
        """
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def Tag(self):
        r"""标签信息
        :rtype: list of MachineTag
        """
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def RegionInfo(self):
        r"""地域信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        """
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def InstanceState(self):
        r"""实例状态请参考CVM实例列表InstanceState值
https://cloud.tencent.com/document/api/213/15753#Instance
        :rtype: str
        """
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def ProjectId(self):
        r"""项目ID
        :rtype: int
        """
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def MachineType(self):
        r"""机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def KernelVersion(self):
        r"""内核版本
        :rtype: str
        """
        return self._KernelVersion

    @KernelVersion.setter
    def KernelVersion(self, KernelVersion):
        self._KernelVersion = KernelVersion

    @property
    def ProtectType(self):
        r"""防护版本 BASIC_VERSION 基础版， PRO_VERSION 专业版，Flagship 旗舰版，GENERAL_DISCOUNT 轻量版.
        :rtype: str
        """
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def LicenseOrder(self):
        r"""授权订单对象
        :rtype: :class:`tencentcloud.cwp.v20180228.models.LicenseOrder`
        """
        return self._LicenseOrder

    @LicenseOrder.setter
    def LicenseOrder(self, LicenseOrder):
        self._LicenseOrder = LicenseOrder

    @property
    def CloudTags(self):
        r"""云标签信息
        :rtype: list of Tags
        """
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def InstanceId(self):
        r"""实例ID
        :rtype: str
        """
        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):
    r"""机器快照信息

    """

    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):
        r"""cvm id
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostName(self):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""主机ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def SnapshotName(self):
        r"""快照名称
        :rtype: str
        """
        return self._SnapshotName

    @SnapshotName.setter
    def SnapshotName(self, SnapshotName):
        self._SnapshotName = SnapshotName

    @property
    def CreateTime(self):
        r"""快照创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def DiskId(self):
        r"""磁盘id
        :rtype: str
        """
        return self._DiskId

    @DiskId.setter
    def DiskId(self, DiskId):
        self._DiskId = DiskId

    @property
    def InstanceId(self):
        r"""实例Id
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def RegionId(self):
        r"""地区id
        :rtype: int
        """
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def SnapshotId(self):
        r"""快照id
        :rtype: str
        """
        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):
    r"""服务器标签信息

    """

    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):
        r"""关联标签ID
        :rtype: int
        """
        return self._Rid

    @Rid.setter
    def Rid(self, Rid):
        self._Rid = Rid

    @property
    def Name(self):
        r"""标签名
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def TagId(self):
        r"""标签ID
        :rtype: int
        """
        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):
    r"""木马列表集合

    """

    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:已处理，13-已加白
        :type Status: int
        :param _Id: 唯一ID
        :type Id: int
        :param _Alias: 主机别名
        :type Alias: str
        :param _Tags: 特性标签，已废弃字段，不会再返回标签，详情中才会返回标签信息
        :type Tags: list of str
        :param _FileCreateTime: 首次运行时间
        :type FileCreateTime: str
        :param _FileModifierTime: 最近运行时间
        :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: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _DoClean: 是否可以清理
        :type DoClean: bool
        :param _FirstDetectionMethod: 首次检出方式 0扫描；1实时监控
        :type FirstDetectionMethod: int
        """
        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
        self._DoClean = None
        self._FirstDetectionMethod = None

    @property
    def HostIp(self):
        r"""服务器ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Uuid(self):
        r"""唯一UUID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def FilePath(self):
        r"""路径
        :rtype: str
        """
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def VirusName(self):
        r"""病毒名称
        :rtype: str
        """
        return self._VirusName

    @VirusName.setter
    def VirusName(self, VirusName):
        self._VirusName = VirusName

    @property
    def Status(self):
        r"""状态；4-:待处理，5-已信任，6-已隔离，8-文件已删除, 14:已处理，13-已加白
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Id(self):
        r"""唯一ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Alias(self):
        r"""主机别名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def Tags(self):
        r"""特性标签，已废弃字段，不会再返回标签，详情中才会返回标签信息
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def FileCreateTime(self):
        r"""首次运行时间
        :rtype: str
        """
        return self._FileCreateTime

    @FileCreateTime.setter
    def FileCreateTime(self, FileCreateTime):
        self._FileCreateTime = FileCreateTime

    @property
    def FileModifierTime(self):
        r"""最近运行时间
        :rtype: str
        """
        return self._FileModifierTime

    @FileModifierTime.setter
    def FileModifierTime(self, FileModifierTime):
        self._FileModifierTime = FileModifierTime

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def LatestScanTime(self):
        r"""最近扫描时间
        :rtype: str
        """
        return self._LatestScanTime

    @LatestScanTime.setter
    def LatestScanTime(self, LatestScanTime):
        self._LatestScanTime = LatestScanTime

    @property
    def Level(self):
        r"""风险等级 0未知、1低、2中、3高、4严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CheckPlatform(self):
        r"""'木马检测平台用,分割 1云查杀引擎、2TAV、3binaryAi、4异常行为、5威胁情报
        :rtype: str
        """
        return self._CheckPlatform

    @CheckPlatform.setter
    def CheckPlatform(self, CheckPlatform):
        self._CheckPlatform = CheckPlatform

    @property
    def ProcessExists(self):
        r"""木马进程是否存在 0:不存在，1:存在
        :rtype: int
        """
        return self._ProcessExists

    @ProcessExists.setter
    def ProcessExists(self, ProcessExists):
        self._ProcessExists = ProcessExists

    @property
    def FileExists(self):
        r"""木马文件是否存在 0:不存在，1:存在
        :rtype: int
        """
        return self._FileExists

    @FileExists.setter
    def FileExists(self, FileExists):
        self._FileExists = FileExists

    @property
    def Quuid(self):
        r"""cvm quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MD5(self):
        r"""木马样本md5
        :rtype: str
        """
        return self._MD5

    @MD5.setter
    def MD5(self, MD5):
        self._MD5 = MD5

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def DoClean(self):
        r"""是否可以清理
        :rtype: bool
        """
        return self._DoClean

    @DoClean.setter
    def DoClean(self, DoClean):
        self._DoClean = DoClean

    @property
    def FirstDetectionMethod(self):
        r"""首次检出方式 0扫描；1实时监控
        :rtype: int
        """
        return self._FirstDetectionMethod

    @FirstDetectionMethod.setter
    def FirstDetectionMethod(self, FirstDetectionMethod):
        self._FirstDetectionMethod = FirstDetectionMethod


    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"))
        self._DoClean = params.get("DoClean")
        self._FirstDetectionMethod = params.get("FirstDetectionMethod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""恶意请求白名单列表信息

    """

    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):
        r"""白名单id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Domain(self):
        r"""域名
        :rtype: str
        """
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def Mark(self):
        r"""备注
        :rtype: str
        """
        return self._Mark

    @Mark.setter
    def Mark(self, Mark):
        self._Mark = Mark

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""更新时间
        :rtype: str
        """
        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):
    r"""恶意文件详情

    """

    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: 影响广度 // 暂时不提供
        :type Breadth: str
        :param _Heat: 查询热度 // 暂时不提供
        :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
        :type MachineWanIp: str
        :param _PsTree: 进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :type PsTree: str
        :param _MachineStatus: 主机在线状态 OFFLINE  ONLINE
        :type MachineStatus: str
        :param _Status: 状态；4-:待处理，5-已信任，6-已隔离
        :type Status: int
        :param _Level: 风险等级 0提示、1低、2中、3高、4严重
        :type Level: int
        :param _CheckPlatform: 木马检测平台用,分割 1云查杀引擎、2TAV、3binaryAi、4异常行为、5威胁情报
        :type CheckPlatform: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _ModifyTime: 最近修改时间
        :type ModifyTime: str
        :param _StrFileAccessTime: 最近访问时间
        :type StrFileAccessTime: str
        :param _MachineExtraInfo: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _References: 参考链接
        :type References: list of str
        :param _FileExists: 木马文件是否存在
        :type FileExists: bool
        :param _ProcessExists: 木马进程是否存在
        :type ProcessExists: bool
        :param _FirstDetectionMethod: 首次检出方式0扫描;1实时监控
        :type FirstDetectionMethod: int
        """
        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
        self._References = None
        self._FileExists = None
        self._ProcessExists = None
        self._FirstDetectionMethod = None

    @property
    def VirusName(self):
        r"""病毒名称
        :rtype: str
        """
        return self._VirusName

    @VirusName.setter
    def VirusName(self, VirusName):
        self._VirusName = VirusName

    @property
    def FileSize(self):
        r"""文件大小
        :rtype: int
        """
        return self._FileSize

    @FileSize.setter
    def FileSize(self, FileSize):
        self._FileSize = FileSize

    @property
    def MD5(self):
        r"""文件MD5
        :rtype: str
        """
        return self._MD5

    @MD5.setter
    def MD5(self, MD5):
        self._MD5 = MD5

    @property
    def FilePath(self):
        r"""文件地址
        :rtype: str
        """
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def FileCreateTime(self):
        r"""首次运行时间
        :rtype: str
        """
        return self._FileCreateTime

    @FileCreateTime.setter
    def FileCreateTime(self, FileCreateTime):
        self._FileCreateTime = FileCreateTime

    @property
    def FileModifierTime(self):
        r"""最近一次运行时间
        :rtype: str
        """
        return self._FileModifierTime

    @FileModifierTime.setter
    def FileModifierTime(self, FileModifierTime):
        self._FileModifierTime = FileModifierTime

    @property
    def HarmDescribe(self):
        r"""危害描述
        :rtype: str
        """
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def SuggestScheme(self):
        r"""建议方案
        :rtype: str
        """
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def ServersName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._ServersName

    @ServersName.setter
    def ServersName(self, ServersName):
        self._ServersName = ServersName

    @property
    def HostIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def ProcessName(self):
        r"""进程名称
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def ProcessID(self):
        r"""进程ID
        :rtype: str
        """
        return self._ProcessID

    @ProcessID.setter
    def ProcessID(self, ProcessID):
        self._ProcessID = ProcessID

    @property
    def Tags(self):
        r"""标签特性
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Breadth(self):
        r"""影响广度 // 暂时不提供
        :rtype: str
        """
        return self._Breadth

    @Breadth.setter
    def Breadth(self, Breadth):
        self._Breadth = Breadth

    @property
    def Heat(self):
        r"""查询热度 // 暂时不提供
        :rtype: str
        """
        return self._Heat

    @Heat.setter
    def Heat(self, Heat):
        self._Heat = Heat

    @property
    def Id(self):
        r"""唯一ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def FileName(self):
        r"""文件名称
        :rtype: str
        """
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def CreateTime(self):
        r"""首次发现时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def LatestScanTime(self):
        r"""最近扫描时间
        :rtype: str
        """
        return self._LatestScanTime

    @LatestScanTime.setter
    def LatestScanTime(self, LatestScanTime):
        self._LatestScanTime = LatestScanTime

    @property
    def Reference(self):
        r"""参考链接
        :rtype: str
        """
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def MachineWanIp(self):
        r"""外网ip
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def PsTree(self):
        r"""进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :rtype: str
        """
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def MachineStatus(self):
        r"""主机在线状态 OFFLINE  ONLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Status(self):
        r"""状态；4-:待处理，5-已信任，6-已隔离
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Level(self):
        r"""风险等级 0提示、1低、2中、3高、4严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CheckPlatform(self):
        r"""木马检测平台用,分割 1云查杀引擎、2TAV、3binaryAi、4异常行为、5威胁情报
        :rtype: str
        """
        return self._CheckPlatform

    @CheckPlatform.setter
    def CheckPlatform(self, CheckPlatform):
        self._CheckPlatform = CheckPlatform

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def ModifyTime(self):
        r"""最近修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def StrFileAccessTime(self):
        r"""最近访问时间
        :rtype: str
        """
        return self._StrFileAccessTime

    @StrFileAccessTime.setter
    def StrFileAccessTime(self, StrFileAccessTime):
        self._StrFileAccessTime = StrFileAccessTime

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def References(self):
        r"""参考链接
        :rtype: list of str
        """
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def FileExists(self):
        r"""木马文件是否存在
        :rtype: bool
        """
        return self._FileExists

    @FileExists.setter
    def FileExists(self, FileExists):
        self._FileExists = FileExists

    @property
    def ProcessExists(self):
        r"""木马进程是否存在
        :rtype: bool
        """
        return self._ProcessExists

    @ProcessExists.setter
    def ProcessExists(self, ProcessExists):
        self._ProcessExists = ProcessExists

    @property
    def FirstDetectionMethod(self):
        r"""首次检出方式0扫描;1实时监控
        :rtype: int
        """
        return self._FirstDetectionMethod

    @FirstDetectionMethod.setter
    def FirstDetectionMethod(self, FirstDetectionMethod):
        self._FirstDetectionMethod = FirstDetectionMethod


    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"))
        self._References = params.get("References")
        self._FileExists = params.get("FileExists")
        self._ProcessExists = params.get("ProcessExists")
        self._FirstDetectionMethod = params.get("FirstDetectionMethod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""恶意文件风险提示列表信息

    """

    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):
        r"""机器IP
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def VirusName(self):
        r"""病毒名
        :rtype: str
        """
        return self._VirusName

    @VirusName.setter
    def VirusName(self, VirusName):
        self._VirusName = VirusName

    @property
    def CreateTime(self):
        r"""发现时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Id(self):
        r"""唯一ID
        :rtype: int
        """
        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):
    r"""文件查杀概览信息

    """

    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):
        r"""影响主机数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ProcessCount(self):
        r"""异常进程数
        :rtype: int
        """
        return self._ProcessCount

    @ProcessCount.setter
    def ProcessCount(self, ProcessCount):
        self._ProcessCount = ProcessCount

    @property
    def FileCount(self):
        r"""恶意文件数
        :rtype: int
        """
        return self._FileCount

    @FileCount.setter
    def FileCount(self, FileCount):
        self._FileCount = FileCount

    @property
    def IsFirstScan(self):
        r"""是否首次扫描[false:否|true:是]
        :rtype: bool
        """
        return self._IsFirstScan

    @IsFirstScan.setter
    def IsFirstScan(self, IsFirstScan):
        self._IsFirstScan = IsFirstScan

    @property
    def ScanTime(self):
        r"""最后扫描时间
        :rtype: str
        """
        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):
    r"""木马白名单影响事件信息

    """

    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):
        r"""唯一ID。
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def HostIp(self):
        r"""主机ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Md5(self):
        r"""影响的md5
        :rtype: str
        """
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def FilePath(self):
        r"""文件路径
        :rtype: str
        """
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def CreateTime(self):
        r"""添加时间
        :rtype: str
        """
        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):
    r"""木马白名单信息

    """

    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
        :param _ModifyTime: 规则修改时间
        :type ModifyTime: str
        """
        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
        self._ModifyTime = None

    @property
    def Id(self):
        r"""唯一ID。
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def QuuidList(self):
        r"""cvm quuid 按,分割。
        :rtype: str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def Md5List(self):
        r"""md5列表 按,分割
        :rtype: str
        """
        return self._Md5List

    @Md5List.setter
    def Md5List(self, Md5List):
        self._Md5List = Md5List

    @property
    def IsGlobal(self):
        r"""是否全部主机； 0否，1是
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Mode(self):
        r"""白名单模式；0 MD5 ，1自定义
        :rtype: int
        """
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def MatchType(self):
        r"""匹配模式；0精确匹配，1模糊匹配
        :rtype: int
        """
        return self._MatchType

    @MatchType.setter
    def MatchType(self, MatchType):
        self._MatchType = MatchType

    @property
    def FileName(self):
        r"""文件名；按,分割
        :rtype: str
        """
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileDirectory(self):
        r"""文件目录；按,分割
        :rtype: str
        """
        return self._FileDirectory

    @FileDirectory.setter
    def FileDirectory(self, FileDirectory):
        self._FileDirectory = FileDirectory

    @property
    def FileExtension(self):
        r"""文件后缀；按,分割
        :rtype: str
        """
        return self._FileExtension

    @FileExtension.setter
    def FileExtension(self, FileExtension):
        self._FileExtension = FileExtension

    @property
    def CreateTime(self):
        r"""规则创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def EventsCount(self):
        r"""受影响记录
        :rtype: int
        """
        return self._EventsCount

    @EventsCount.setter
    def EventsCount(self, EventsCount):
        self._EventsCount = EventsCount

    @property
    def ModifyTime(self):
        r"""规则修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    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")
        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 MemShellRule(AbstractModel):
    r"""内存马白名单规则

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _UuidHostips: 客户端ID
        :type UuidHostips: list of UuidHostip
        :param _LogicalSymbol: 逻辑运算符，0: 下面5个有效的正则逻辑与 1: 逻辑或
        :type LogicalSymbol: int
        :param _ClassNameRegexp: 类名正则表达式，为空则不匹配
        :type ClassNameRegexp: str
        :param _SuperClassNameRegexp: 父类名正则表达式，为空则不匹配
        :type SuperClassNameRegexp: str
        :param _InterfacesRegexp: 继承的接口正则表达式，为空则不匹配
        :type InterfacesRegexp: str
        :param _AnnotationsRegexp: 注释正则表达式，为空则不匹配
        :type AnnotationsRegexp: str
        :param _LoaderClassNameRegexp: 所属的类加载器正则表达式，为空则不匹配
        :type LoaderClassNameRegexp: str
        :param _Operator: 操作人
        :type Operator: str
        :param _IsGlobal: 是否全局规则(是否对appid下所有主机有效， 0:单台uuid 1:全局，默认否)
        :type IsGlobal: int
        :param _Status: 状态 (0: 有效 1: 删除，2：无效（启用开关关闭）)
        :type Status: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        :param _HandleHistory: 处理历史事件， 0:不处理 1:处理
        :type HandleHistory: int
        :param _GroupID: 批次id
        :type GroupID: str
        :param _MachinesNums: 应用资产，描述服务器数量，全局时候为：全部服务器
        :type MachinesNums: str
        :param _GroupName: 策略名称
        :type GroupName: str
        :param _CodeSourceRegexp: 源代码正则表达式，为空则不匹配
        :type CodeSourceRegexp: str
        :param _CallStackRegexp: 调用栈正则表达式，为空则不匹配
        :type CallStackRegexp: str
        :param _FileExist: 文件是否存在， 0:用户没选择规则时候的默认值，1：文件存在，2：文件不存在
        :type FileExist: int
        """
        self._Id = None
        self._UuidHostips = None
        self._LogicalSymbol = None
        self._ClassNameRegexp = None
        self._SuperClassNameRegexp = None
        self._InterfacesRegexp = None
        self._AnnotationsRegexp = None
        self._LoaderClassNameRegexp = None
        self._Operator = None
        self._IsGlobal = None
        self._Status = None
        self._CreateTime = None
        self._ModifyTime = None
        self._HandleHistory = None
        self._GroupID = None
        self._MachinesNums = None
        self._GroupName = None
        self._CodeSourceRegexp = None
        self._CallStackRegexp = None
        self._FileExist = None

    @property
    def Id(self):
        r"""规则ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def UuidHostips(self):
        r"""客户端ID
        :rtype: list of UuidHostip
        """
        return self._UuidHostips

    @UuidHostips.setter
    def UuidHostips(self, UuidHostips):
        self._UuidHostips = UuidHostips

    @property
    def LogicalSymbol(self):
        r"""逻辑运算符，0: 下面5个有效的正则逻辑与 1: 逻辑或
        :rtype: int
        """
        return self._LogicalSymbol

    @LogicalSymbol.setter
    def LogicalSymbol(self, LogicalSymbol):
        self._LogicalSymbol = LogicalSymbol

    @property
    def ClassNameRegexp(self):
        r"""类名正则表达式，为空则不匹配
        :rtype: str
        """
        return self._ClassNameRegexp

    @ClassNameRegexp.setter
    def ClassNameRegexp(self, ClassNameRegexp):
        self._ClassNameRegexp = ClassNameRegexp

    @property
    def SuperClassNameRegexp(self):
        r"""父类名正则表达式，为空则不匹配
        :rtype: str
        """
        return self._SuperClassNameRegexp

    @SuperClassNameRegexp.setter
    def SuperClassNameRegexp(self, SuperClassNameRegexp):
        self._SuperClassNameRegexp = SuperClassNameRegexp

    @property
    def InterfacesRegexp(self):
        r"""继承的接口正则表达式，为空则不匹配
        :rtype: str
        """
        return self._InterfacesRegexp

    @InterfacesRegexp.setter
    def InterfacesRegexp(self, InterfacesRegexp):
        self._InterfacesRegexp = InterfacesRegexp

    @property
    def AnnotationsRegexp(self):
        r"""注释正则表达式，为空则不匹配
        :rtype: str
        """
        return self._AnnotationsRegexp

    @AnnotationsRegexp.setter
    def AnnotationsRegexp(self, AnnotationsRegexp):
        self._AnnotationsRegexp = AnnotationsRegexp

    @property
    def LoaderClassNameRegexp(self):
        r"""所属的类加载器正则表达式，为空则不匹配
        :rtype: str
        """
        return self._LoaderClassNameRegexp

    @LoaderClassNameRegexp.setter
    def LoaderClassNameRegexp(self, LoaderClassNameRegexp):
        self._LoaderClassNameRegexp = LoaderClassNameRegexp

    @property
    def Operator(self):
        r"""操作人
        :rtype: str
        """
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def IsGlobal(self):
        r"""是否全局规则(是否对appid下所有主机有效， 0:单台uuid 1:全局，默认否)
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        r"""状态 (0: 有效 1: 删除，2：无效（启用开关关闭）)
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def HandleHistory(self):
        r"""处理历史事件， 0:不处理 1:处理
        :rtype: int
        """
        return self._HandleHistory

    @HandleHistory.setter
    def HandleHistory(self, HandleHistory):
        self._HandleHistory = HandleHistory

    @property
    def GroupID(self):
        r"""批次id
        :rtype: str
        """
        return self._GroupID

    @GroupID.setter
    def GroupID(self, GroupID):
        self._GroupID = GroupID

    @property
    def MachinesNums(self):
        r"""应用资产，描述服务器数量，全局时候为：全部服务器
        :rtype: str
        """
        return self._MachinesNums

    @MachinesNums.setter
    def MachinesNums(self, MachinesNums):
        self._MachinesNums = MachinesNums

    @property
    def GroupName(self):
        r"""策略名称
        :rtype: str
        """
        return self._GroupName

    @GroupName.setter
    def GroupName(self, GroupName):
        self._GroupName = GroupName

    @property
    def CodeSourceRegexp(self):
        r"""源代码正则表达式，为空则不匹配
        :rtype: str
        """
        return self._CodeSourceRegexp

    @CodeSourceRegexp.setter
    def CodeSourceRegexp(self, CodeSourceRegexp):
        self._CodeSourceRegexp = CodeSourceRegexp

    @property
    def CallStackRegexp(self):
        r"""调用栈正则表达式，为空则不匹配
        :rtype: str
        """
        return self._CallStackRegexp

    @CallStackRegexp.setter
    def CallStackRegexp(self, CallStackRegexp):
        self._CallStackRegexp = CallStackRegexp

    @property
    def FileExist(self):
        r"""文件是否存在， 0:用户没选择规则时候的默认值，1：文件存在，2：文件不存在
        :rtype: int
        """
        return self._FileExist

    @FileExist.setter
    def FileExist(self, FileExist):
        self._FileExist = FileExist


    def _deserialize(self, params):
        self._Id = params.get("Id")
        if params.get("UuidHostips") is not None:
            self._UuidHostips = []
            for item in params.get("UuidHostips"):
                obj = UuidHostip()
                obj._deserialize(item)
                self._UuidHostips.append(obj)
        self._LogicalSymbol = params.get("LogicalSymbol")
        self._ClassNameRegexp = params.get("ClassNameRegexp")
        self._SuperClassNameRegexp = params.get("SuperClassNameRegexp")
        self._InterfacesRegexp = params.get("InterfacesRegexp")
        self._AnnotationsRegexp = params.get("AnnotationsRegexp")
        self._LoaderClassNameRegexp = params.get("LoaderClassNameRegexp")
        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._HandleHistory = params.get("HandleHistory")
        self._GroupID = params.get("GroupID")
        self._MachinesNums = params.get("MachinesNums")
        self._GroupName = params.get("GroupName")
        self._CodeSourceRegexp = params.get("CodeSourceRegexp")
        self._CallStackRegexp = params.get("CallStackRegexp")
        self._FileExist = params.get("FileExist")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyAutoOpenProVersionConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 设置自动开通状态。
<li>CLOSE：关闭</li>
<li>OPEN：打开</li>
        :type Status: str
        :param _ProtectType: 加固防护模式
PROVERSION_POSTPAY 专业版-按量计费
PROVERSION_PREPAY 专业版-包年包月
FLAGSHIP_PREPAY 旗舰版-包年包月
        :type ProtectType: str
        :param _AutoRepurchaseSwitch: 自动加购/扩容授权开关,默认 1, 0关闭, 1开启
        :type AutoRepurchaseSwitch: int
        :param _AutoRepurchaseRenewSwitch: 自动加购的订单是否自动续费,默认0 ,0关闭, 1开启
        :type AutoRepurchaseRenewSwitch: int
        :param _RepurchaseRenewSwitch: 手动购买的订单是否自动续费,默认0, 0关闭 ,1 开启
        :type RepurchaseRenewSwitch: int
        :param _AutoBindRaspSwitch: 新增机器自动绑定rasp,0 关闭 1开启
        :type AutoBindRaspSwitch: int
        :param _AutoOpenRaspSwitch: 新增机器自动开启rasp防护,默认关闭,0 关闭 1开启
        :type AutoOpenRaspSwitch: int
        :param _AutoDowngradeSwitch: 自动缩容开关,0 关闭 1开启
        :type AutoDowngradeSwitch: int
        """
        self._Status = None
        self._ProtectType = None
        self._AutoRepurchaseSwitch = None
        self._AutoRepurchaseRenewSwitch = None
        self._RepurchaseRenewSwitch = None
        self._AutoBindRaspSwitch = None
        self._AutoOpenRaspSwitch = None
        self._AutoDowngradeSwitch = None

    @property
    def Status(self):
        r"""设置自动开通状态。
<li>CLOSE：关闭</li>
<li>OPEN：打开</li>
        :rtype: str
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ProtectType(self):
        r"""加固防护模式
PROVERSION_POSTPAY 专业版-按量计费
PROVERSION_PREPAY 专业版-包年包月
FLAGSHIP_PREPAY 旗舰版-包年包月
        :rtype: str
        """
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def AutoRepurchaseSwitch(self):
        r"""自动加购/扩容授权开关,默认 1, 0关闭, 1开启
        :rtype: int
        """
        return self._AutoRepurchaseSwitch

    @AutoRepurchaseSwitch.setter
    def AutoRepurchaseSwitch(self, AutoRepurchaseSwitch):
        self._AutoRepurchaseSwitch = AutoRepurchaseSwitch

    @property
    def AutoRepurchaseRenewSwitch(self):
        r"""自动加购的订单是否自动续费,默认0 ,0关闭, 1开启
        :rtype: int
        """
        return self._AutoRepurchaseRenewSwitch

    @AutoRepurchaseRenewSwitch.setter
    def AutoRepurchaseRenewSwitch(self, AutoRepurchaseRenewSwitch):
        self._AutoRepurchaseRenewSwitch = AutoRepurchaseRenewSwitch

    @property
    def RepurchaseRenewSwitch(self):
        r"""手动购买的订单是否自动续费,默认0, 0关闭 ,1 开启
        :rtype: int
        """
        return self._RepurchaseRenewSwitch

    @RepurchaseRenewSwitch.setter
    def RepurchaseRenewSwitch(self, RepurchaseRenewSwitch):
        self._RepurchaseRenewSwitch = RepurchaseRenewSwitch

    @property
    def AutoBindRaspSwitch(self):
        r"""新增机器自动绑定rasp,0 关闭 1开启
        :rtype: int
        """
        return self._AutoBindRaspSwitch

    @AutoBindRaspSwitch.setter
    def AutoBindRaspSwitch(self, AutoBindRaspSwitch):
        self._AutoBindRaspSwitch = AutoBindRaspSwitch

    @property
    def AutoOpenRaspSwitch(self):
        r"""新增机器自动开启rasp防护,默认关闭,0 关闭 1开启
        :rtype: int
        """
        return self._AutoOpenRaspSwitch

    @AutoOpenRaspSwitch.setter
    def AutoOpenRaspSwitch(self, AutoOpenRaspSwitch):
        self._AutoOpenRaspSwitch = AutoOpenRaspSwitch

    @property
    def AutoDowngradeSwitch(self):
        r"""自动缩容开关,0 关闭 1开启
        :rtype: int
        """
        return self._AutoDowngradeSwitch

    @AutoDowngradeSwitch.setter
    def AutoDowngradeSwitch(self, AutoDowngradeSwitch):
        self._AutoDowngradeSwitch = AutoDowngradeSwitch


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._ProtectType = params.get("ProtectType")
        self._AutoRepurchaseSwitch = params.get("AutoRepurchaseSwitch")
        self._AutoRepurchaseRenewSwitch = params.get("AutoRepurchaseRenewSwitch")
        self._RepurchaseRenewSwitch = params.get("RepurchaseRenewSwitch")
        self._AutoBindRaspSwitch = params.get("AutoBindRaspSwitch")
        self._AutoOpenRaspSwitch = params.get("AutoOpenRaspSwitch")
        self._AutoDowngradeSwitch = params.get("AutoDowngradeSwitch")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyAutoOpenProVersionConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBanModeRequest(AbstractModel):
    r"""ModifyBanMode请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: <p>阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断</p>
        :type Mode: str
        :param _Ttl: <p>阻断时间，用于标准阻断模式</p>
        :type Ttl: int
        """
        self._Mode = None
        self._Ttl = None

    @property
    def Mode(self):
        r"""<p>阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断</p>
        :rtype: str
        """
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def Ttl(self):
        r"""<p>阻断时间，用于标准阻断模式</p>
        :rtype: int
        """
        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):
    r"""ModifyBanMode返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBanStatusRequest(AbstractModel):
    r"""ModifyBanStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 阻断开关状态: 0 -- 关闭 1 -- 高级阻断 2 -- 基础阻断(只阻断情报库黑ip)
        :type Status: int
        :param _OpenSmartMode: 是否开启智能过白模式
        :type OpenSmartMode: bool
        """
        self._Status = None
        self._OpenSmartMode = None

    @property
    def Status(self):
        r"""阻断开关状态: 0 -- 关闭 1 -- 高级阻断 2 -- 基础阻断(只阻断情报库黑ip)
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def OpenSmartMode(self):
        r"""是否开启智能过白模式
        :rtype: bool
        """
        return self._OpenSmartMode

    @OpenSmartMode.setter
    def OpenSmartMode(self, OpenSmartMode):
        self._OpenSmartMode = OpenSmartMode


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._OpenSmartMode = params.get("OpenSmartMode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyBanStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBanWhiteListRequest(AbstractModel):
    r"""ModifyBanWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Rules: 修改白名单规则项
        :type Rules: :class:`tencentcloud.cwp.v20180228.models.BanWhiteList`
        """
        self._Rules = None

    @property
    def Rules(self):
        r"""修改白名单规则项
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BanWhiteList`
        """
        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):
    r"""ModifyBanWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselinePolicyRequest(AbstractModel):
    r"""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):
        r"""无
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BaselinePolicy`
        """
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def Filters(self):
        r"""<li>RuleName - String - 是否必填：否 - 规则名称</li>
<li>CategoryId - int64 - 是否必填：否 自定义筛选为-1 - 规则分类</li>
<li>RuleType - int - 是否必填：否 0:系统 1:自定义 - 规则类型</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def SelectAll(self):
        r"""是否按照过滤的全选
        :rtype: int
        """
        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):
    r"""ModifyBaselinePolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselinePolicyStateRequest(AbstractModel):
    r"""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):
        r"""策略Id
        :rtype: int
        """
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def IsEnabled(self):
        r"""开启状态[1:开启|0:未开启]
        :rtype: int
        """
        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):
    r"""ModifyBaselinePolicyState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselineRuleIgnoreRequest(AbstractModel):
    r"""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):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def AssetType(self):
        r"""资产类型[0:所有专业版旗舰版|1:id|2:ip]
        :rtype: int
        """
        return self._AssetType

    @AssetType.setter
    def AssetType(self, AssetType):
        self._AssetType = AssetType

    @property
    def RuleId(self):
        r"""规则Id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def ItemIds(self):
        r"""关联项
        :rtype: list of int
        """
        return self._ItemIds

    @ItemIds.setter
    def ItemIds(self, ItemIds):
        self._ItemIds = ItemIds

    @property
    def HostIds(self):
        r"""主机Id
        :rtype: list of str
        """
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def HostIps(self):
        r"""主机Ip
        :rtype: list of str
        """
        return self._HostIps

    @HostIps.setter
    def HostIps(self, HostIps):
        self._HostIps = HostIps

    @property
    def SelectAll(self):
        r"""是否全选过滤
        :rtype: int
        """
        return self._SelectAll

    @SelectAll.setter
    def SelectAll(self, SelectAll):
        self._SelectAll = SelectAll

    @property
    def Filters(self):
        r"""<li>ItemName - string - 是否必填：否 - 项名称</li>
        :rtype: list of Filter
        """
        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):
    r"""ModifyBaselineRuleIgnore返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselineRuleRequest(AbstractModel):
    r"""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
        :param _IdType: 0:检测项，1:检测项分类
        :type IdType: int
        :param _ExcludeIds: 需要排除的检测项id
        :type ExcludeIds: list of int non-negative
        :param _CategoryIds: 勾选的检测项分类
        :type CategoryIds: list of int non-negative
        """
        self._Data = None
        self._SelectAll = None
        self._Filters = None
        self._IdType = None
        self._ExcludeIds = None
        self._CategoryIds = None

    @property
    def Data(self):
        r"""无
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BaselineRule`
        """
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def SelectAll(self):
        r"""是否过滤全选
        :rtype: int
        """
        return self._SelectAll

    @SelectAll.setter
    def SelectAll(self, SelectAll):
        self._SelectAll = SelectAll

    @property
    def Filters(self):
        r"""<li>ItemName - string - 是否必填：否 - 项名称</li>
        :rtype: list of Filter
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def IdType(self):
        r"""0:检测项，1:检测项分类
        :rtype: int
        """
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def ExcludeIds(self):
        r"""需要排除的检测项id
        :rtype: list of int non-negative
        """
        return self._ExcludeIds

    @ExcludeIds.setter
    def ExcludeIds(self, ExcludeIds):
        self._ExcludeIds = ExcludeIds

    @property
    def CategoryIds(self):
        r"""勾选的检测项分类
        :rtype: list of int non-negative
        """
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds


    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)
        self._IdType = params.get("IdType")
        self._ExcludeIds = params.get("ExcludeIds")
        self._CategoryIds = params.get("CategoryIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselineWeakPasswordRequest(AbstractModel):
    r"""ModifyBaselineWeakPassword请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 无
        :type Data: list of BaselineWeakPassword
        """
        self._Data = None

    @property
    def Data(self):
        r"""无
        :rtype: list of BaselineWeakPassword
        """
        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):
    r"""ModifyBaselineWeakPassword返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBashPolicyRequest(AbstractModel):
    r"""ModifyBashPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Policy: 具体的策略配置
        :type Policy: :class:`tencentcloud.cwp.v20180228.models.BashPolicy`
        """
        self._Policy = None

    @property
    def Policy(self):
        r"""具体的策略配置
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BashPolicy`
        """
        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):
    r"""ModifyBashPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBashPolicyStatusRequest(AbstractModel):
    r"""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):
        r"""规则ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Enable(self):
        r"""是否禁用
        :rtype: int
        """
        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):
    r"""ModifyBashPolicyStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBruteAttackRulesRequest(AbstractModel):
    r"""ModifyBruteAttackRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Rules: <p>暴力破解判断规则</p>
        :type Rules: list of BruteAttackRule
        """
        self._Rules = None

    @property
    def Rules(self):
        r"""<p>暴力破解判断规则</p>
        :rtype: list of BruteAttackRule
        """
        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):
    r"""ModifyBruteAttackRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyEventAttackStatusRequest(AbstractModel):
    r"""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：已处理 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):
        r"""需要修改的事件id 数组，支持批量
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def All(self):
        r"""是否更新全部，即是否对所有的事件进行操作，当ids 不为空时，此参数无效
        :rtype: bool
        """
        return self._All

    @All.setter
    def All(self, All):
        self._All = All

    @property
    def Status(self):
        r"""0：待处理 1：已处理 3： 已忽略 4：已删除 
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Filters(self):
        r"""过滤条件。
<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>

        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExcludeId(self):
        r"""排除的id
        :rtype: list of int non-negative
        """
        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):
    r"""ModifyEventAttackStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyFileTamperEventsRequest(AbstractModel):
    r"""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):
        r"""Status 1 -- 加白 2 -- 删除 3 - 忽略
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Ids(self):
        r"""对应事件id
        :rtype: list of int non-negative
        """
        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):
    r"""ModifyFileTamperEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyFileTamperRuleRequest(AbstractModel):
    r"""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):
        r"""规则名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Rules(self):
        r"""规则内容
        :rtype: list of FileTamperRule
        """
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules

    @property
    def IsGlobal(self):
        r"""是否全局规则(默认否) 0：否 ，1：是，全局是Uuids 可为空
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        r"""启用状态 0: 启用 1: 已关闭
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Id(self):
        r"""规则id  不填或者0表示新增
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuids(self):
        r"""影响的主机uuid集合
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def Level(self):
        r"""风险等级 0：无， 1: 高危， 2:中危， 3: 低危
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def AddWhiteType(self):
        r"""加白处理类型
<li>cur 仅对当前加白</li>
<li>all 所有符合条件加白</li>
        :rtype: str
        """
        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):
    r"""ModifyFileTamperRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyFileTamperRuleStatusRequest(AbstractModel):
    r"""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):
        r"""0: 启用1: 关闭2：删除
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Ids(self):
        r"""对应事件id
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def RuleCategory(self):
        r"""是否是系统规则 0=系统规则 1=用户自定义规则，系统规则Status 不支持删除
        :rtype: int
        """
        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):
    r"""ModifyFileTamperRuleStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyJavaMemShellPluginSwitchRequest(AbstractModel):
    r"""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):
        r"""主机quuid数组
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def JavaShellStatus(self):
        r"""插件目标状态：0: 关闭 1: 开启
        :rtype: int
        """
        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):
    r"""ModifyJavaMemShellPluginSwitch返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyJavaMemShellsStatusRequest(AbstractModel):
    r"""ModifyJavaMemShellsStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 目标处理状态： 0 - 待处理 1 - 已加白 2 - 已删除 3 - 已忽略 4 - 已手动处理
        :type Status: int
        :param _Ids: 事件Id数组
        :type Ids: list of int non-negative
        :param _UpdateAll: 是否更新全部，只支持忽略、已处理、删除
        :type UpdateAll: bool
        """
        self._Status = None
        self._Ids = None
        self._UpdateAll = None

    @property
    def Status(self):
        r"""目标处理状态： 0 - 待处理 1 - 已加白 2 - 已删除 3 - 已忽略 4 - 已手动处理
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Ids(self):
        r"""事件Id数组
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def UpdateAll(self):
        r"""是否更新全部，只支持忽略、已处理、删除
        :rtype: bool
        """
        return self._UpdateAll

    @UpdateAll.setter
    def UpdateAll(self, UpdateAll):
        self._UpdateAll = UpdateAll


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._Ids = params.get("Ids")
        self._UpdateAll = params.get("UpdateAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyJavaMemShellsStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLicenseBindsRequest(AbstractModel):
    r"""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):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def LicenseType(self):
        r"""授权类型
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def IsAll(self):
        r"""是否全部机器(当全部机器数大于当前订单可用授权数时,多余机器会被跳过)
        :rtype: bool
        """
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def QuuidList(self):
        r"""需要绑定的机器quuid列表, 当IsAll = false 时必填,反之忽略该参数. 最大长度=2000
        :rtype: list of str
        """
        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):
    r"""ModifyLicenseBinds返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务ID
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def InquireNum(self):
        r"""预期值,如果当前为10,扩容则输入原来大的值, 缩容则比原来小的值(缩容时不允许预期值比使用量小),如果保持不变则填写原值,
        :rtype: int
        """
        return self._InquireNum

    @InquireNum.setter
    def InquireNum(self, InquireNum):
        self._InquireNum = InquireNum

    @property
    def ProjectId(self):
        r"""项目ID,不修改则输入原值.
        :rtype: int
        """
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Alias(self):
        r"""资源别名,不修改则输入原值.
        :rtype: str
        """
        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):
    r"""ModifyLicenseOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DealNames: 订单号
        :type DealNames: list of str
        :param _ResourceIds: 资源ID
        :type ResourceIds: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DealNames = None
        self._ResourceIds = None
        self._RequestId = None

    @property
    def DealNames(self):
        r"""订单号
        :rtype: list of str
        """
        return self._DealNames

    @DealNames.setter
    def DealNames(self, DealNames):
        self._DealNames = DealNames

    @property
    def ResourceIds(self):
        r"""资源ID
        :rtype: list of str
        """
        return self._ResourceIds

    @ResourceIds.setter
    def ResourceIds(self, ResourceIds):
        self._ResourceIds = ResourceIds

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""ModifyLicenseUnBinds请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _LicenseType: 授权类型
- 0 按量付费-专业版
- 1 包年包月-专业版
- 2 包年包月-旗舰版
- 3 包年包月-轻量版
        :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):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def LicenseType(self):
        r"""授权类型
- 0 按量付费-专业版
- 1 包年包月-专业版
- 2 包年包月-旗舰版
- 3 包年包月-轻量版
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def IsAll(self):
        r"""是否全部机器(当全部机器数大于当前订单可用授权数时,多余机器会被跳过)
        :rtype: bool
        """
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def QuuidList(self):
        r"""需要绑定的机器quuid列表, 当IsAll = false 时必填,反之忽略该参数.
最大长度=100
        :rtype: list of str
        """
        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):
    r"""ModifyLicenseUnBinds返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMsg: 只有解绑失败的才有该值.
        :type ErrMsg: list of LicenseUnBindRsp
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMsg = None
        self._RequestId = None

    @property
    def ErrMsg(self):
        r"""只有解绑失败的才有该值.
        :rtype: list of LicenseUnBindRsp
        """
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""实例名称 如 主机安全测试环境
        :rtype: str
        """
        return self._KafkaEnvName

    @KafkaEnvName.setter
    def KafkaEnvName(self, KafkaEnvName):
        self._KafkaEnvName = KafkaEnvName

    @property
    def KafkaId(self):
        r"""实例ID
        :rtype: str
        """
        return self._KafkaId

    @KafkaId.setter
    def KafkaId(self, KafkaId):
        self._KafkaId = KafkaId

    @property
    def AccessType(self):
        r"""接入方式，1公网域名接入，2支撑环境接入
        :rtype: int
        """
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType

    @property
    def AccessAddr(self):
        r"""接入地址
        :rtype: str
        """
        return self._AccessAddr

    @AccessAddr.setter
    def AccessAddr(self, AccessAddr):
        self._AccessAddr = AccessAddr

    @property
    def Username(self):
        r"""用户名
        :rtype: str
        """
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def HasPwd(self):
        r"""0不用密码，1有密码
        :rtype: int
        """
        return self._HasPwd

    @HasPwd.setter
    def HasPwd(self, HasPwd):
        self._HasPwd = HasPwd

    @property
    def DeliverTypeDetails(self):
        r"""日志投递类型配置细节
        :rtype: list of DeliverTypeDetails
        """
        return self._DeliverTypeDetails

    @DeliverTypeDetails.setter
    def DeliverTypeDetails(self, DeliverTypeDetails):
        self._DeliverTypeDetails = DeliverTypeDetails

    @property
    def InsVersion(self):
        r"""kafka版本
        :rtype: str
        """
        return self._InsVersion

    @InsVersion.setter
    def InsVersion(self, InsVersion):
        self._InsVersion = InsVersion

    @property
    def Zone(self):
        r"""地域
        :rtype: str
        """
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Az(self):
        r"""可用区
        :rtype: str
        """
        return self._Az

    @Az.setter
    def Az(self, Az):
        self._Az = Az

    @property
    def VpcId(self):
        r"""vpcid地址
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        r"""子网id
        :rtype: str
        """
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def DeliverStatus(self):
        r"""投递状态，1：健康，2：告警，3：异常
        :rtype: int
        """
        return self._DeliverStatus

    @DeliverStatus.setter
    def DeliverStatus(self, DeliverStatus):
        self._DeliverStatus = DeliverStatus

    @property
    def BandWidth(self):
        r"""峰值带宽
        :rtype: int
        """
        return self._BandWidth

    @BandWidth.setter
    def BandWidth(self, BandWidth):
        self._BandWidth = BandWidth

    @property
    def DiskSize(self):
        r"""磁盘容量
        :rtype: int
        """
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize

    @property
    def Pwd(self):
        r"""密码，aes加密
        :rtype: str
        """
        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):
    r"""ModifyLogKafkaAccess返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLogKafkaDeliverTypeRequest(AbstractModel):
    r"""ModifyLogKafkaDeliverType请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityType: 安全模块类型 1: 入侵检测 2: 漏洞管理 3: 基线管理 4: 高级防御 5:客户端相关 6: 资产指纹
        :type SecurityType: int
        :param _LogType: 安全模块下的日志类型，
        :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):
        r"""安全模块类型 1: 入侵检测 2: 漏洞管理 3: 基线管理 4: 高级防御 5:客户端相关 6: 资产指纹
        :rtype: int
        """
        return self._SecurityType

    @SecurityType.setter
    def SecurityType(self, SecurityType):
        self._SecurityType = SecurityType

    @property
    def LogType(self):
        r"""安全模块下的日志类型，
        :rtype: list of int non-negative
        """
        return self._LogType

    @LogType.setter
    def LogType(self, LogType):
        self._LogType = LogType

    @property
    def Switch(self):
        r"""投递开关 0关闭 1开启
        :rtype: int
        """
        return self._Switch

    @Switch.setter
    def Switch(self, Switch):
        self._Switch = Switch

    @property
    def TopicId(self):
        r"""kafka topic id
        :rtype: str
        """
        return self._TopicId

    @TopicId.setter
    def TopicId(self, TopicId):
        self._TopicId = TopicId

    @property
    def TopicName(self):
        r"""kafka topic name
        :rtype: str
        """
        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):
    r"""ModifyLogKafkaDeliverType返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLogKafkaStateRequest(AbstractModel):
    r"""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):
        r"""实例名称 如 主机安全测试环境
        :rtype: str
        """
        return self._KafkaEnvName

    @KafkaEnvName.setter
    def KafkaEnvName(self, KafkaEnvName):
        self._KafkaEnvName = KafkaEnvName

    @property
    def KafkaId(self):
        r"""实例ID
        :rtype: str
        """
        return self._KafkaId

    @KafkaId.setter
    def KafkaId(self, KafkaId):
        self._KafkaId = KafkaId

    @property
    def AccessType(self):
        r"""接入方式，1公网域名接入，2支撑环境接入
        :rtype: int
        """
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType

    @property
    def AccessAddr(self):
        r"""接入地址
        :rtype: str
        """
        return self._AccessAddr

    @AccessAddr.setter
    def AccessAddr(self, AccessAddr):
        self._AccessAddr = AccessAddr

    @property
    def Username(self):
        r"""用户名
        :rtype: str
        """
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def Zone(self):
        r"""区域
        :rtype: str
        """
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Az(self):
        r"""可用区
        :rtype: str
        """
        return self._Az

    @Az.setter
    def Az(self, Az):
        self._Az = Az

    @property
    def VpcId(self):
        r"""所属网络
        :rtype: str
        """
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        r"""所在子网
        :rtype: str
        """
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def DeliverStatus(self):
        r"""投递状态，1：健康，2：告警，3：异常
        :rtype: int
        """
        return self._DeliverStatus

    @DeliverStatus.setter
    def DeliverStatus(self, DeliverStatus):
        self._DeliverStatus = DeliverStatus

    @property
    def InsVersion(self):
        r"""kafka版本
        :rtype: str
        """
        return self._InsVersion

    @InsVersion.setter
    def InsVersion(self, InsVersion):
        self._InsVersion = InsVersion

    @property
    def BandWidth(self):
        r"""峰值带宽
        :rtype: int
        """
        return self._BandWidth

    @BandWidth.setter
    def BandWidth(self, BandWidth):
        self._BandWidth = BandWidth

    @property
    def DiskSize(self):
        r"""磁盘容量
        :rtype: int
        """
        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):
    r"""ModifyLogKafkaState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLogStorageConfigRequest(AbstractModel):
    r"""ModifyLogStorageConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _IsModifyPeriod: 是否修改有效期（已废弃）
        :type IsModifyPeriod: bool
        :param _Type: 存储类型，string数组
        :type Type: list of str
        :param _Period: 日志存储时长，3640表示不限
        :type Period: int
        :param _Granularity: 日志存储时长单位，年year/月month/天day
        :type Granularity: str
        :param _MsgLanguage: 语言类型
        :type MsgLanguage: str
        """
        self._IsModifyPeriod = None
        self._Type = None
        self._Period = None
        self._Granularity = None
        self._MsgLanguage = None

    @property
    def IsModifyPeriod(self):
        r"""是否修改有效期（已废弃）
        :rtype: bool
        """
        return self._IsModifyPeriod

    @IsModifyPeriod.setter
    def IsModifyPeriod(self, IsModifyPeriod):
        self._IsModifyPeriod = IsModifyPeriod

    @property
    def Type(self):
        r"""存储类型，string数组
        :rtype: list of str
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Period(self):
        r"""日志存储时长，3640表示不限
        :rtype: int
        """
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period

    @property
    def Granularity(self):
        r"""日志存储时长单位，年year/月month/天day
        :rtype: str
        """
        return self._Granularity

    @Granularity.setter
    def Granularity(self, Granularity):
        self._Granularity = Granularity

    @property
    def MsgLanguage(self):
        r"""语言类型
        :rtype: str
        """
        return self._MsgLanguage

    @MsgLanguage.setter
    def MsgLanguage(self, MsgLanguage):
        self._MsgLanguage = MsgLanguage


    def _deserialize(self, params):
        self._IsModifyPeriod = params.get("IsModifyPeriod")
        self._Type = params.get("Type")
        self._Period = params.get("Period")
        self._Granularity = params.get("Granularity")
        self._MsgLanguage = params.get("MsgLanguage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyLogStorageConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLoginWhiteInfoRequest(AbstractModel):
    r"""ModifyLoginWhiteInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HostLoginWhiteObj: 更新白名单信息实体
        :type HostLoginWhiteObj: :class:`tencentcloud.cwp.v20180228.models.UpdateHostLoginWhiteObj`
        """
        self._HostLoginWhiteObj = None

    @property
    def HostLoginWhiteObj(self):
        r"""更新白名单信息实体
        :rtype: :class:`tencentcloud.cwp.v20180228.models.UpdateHostLoginWhiteObj`
        """
        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):
    r"""ModifyLoginWhiteInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLoginWhiteRecordRequest(AbstractModel):
    r"""ModifyLoginWhiteRecord请求参数结构体

    """

    def __init__(self):
        r"""
        :param _UserName: <p>白名单用户（多个用户逗号隔开）</p>
        :type UserName: str
        :param _SrcIp: <p>更新后记录的白名单维度信息</p>
        :type SrcIp: str
        :param _StartTime: <p>开始时间</p>
        :type StartTime: str
        :param _EndTime: <p>结束时间</p>
        :type EndTime: str
        :param _Remark: <p>备注</p>
        :type Remark: str
        :param _IsGlobal: <p>是否对所有服务器生效，0-否，1-是</p>
        :type IsGlobal: int
        :param _Id: <p>白名单ID</p>
        :type Id: int
        :param _Hosts: <p>服务器列表</p>
        :type Hosts: list of HostInfo
        :param _Places: <p>地域列表</p>
        :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):
        r"""<p>白名单用户（多个用户逗号隔开）</p>
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        r"""<p>更新后记录的白名单维度信息</p>
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def StartTime(self):
        r"""<p>开始时间</p>
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""<p>结束时间</p>
        :rtype: str
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def Remark(self):
        r"""<p>备注</p>
        :rtype: str
        """
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def IsGlobal(self):
        r"""<p>是否对所有服务器生效，0-否，1-是</p>
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Id(self):
        r"""<p>白名单ID</p>
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Hosts(self):
        r"""<p>服务器列表</p>
        :rtype: list of HostInfo
        """
        return self._Hosts

    @Hosts.setter
    def Hosts(self, Hosts):
        self._Hosts = Hosts

    @property
    def Places(self):
        r"""<p>地域列表</p>
        :rtype: list of Place
        """
        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):
    r"""ModifyLoginWhiteRecord返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMachineAutoClearConfigRequest(AbstractModel):
    r"""ModifyMachineAutoClearConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ClearRule: <p>清理规则时间, 0 表示关闭, 单位为天, 最大为 30天</p>
        :type ClearRule: int
        """
        self._ClearRule = None

    @property
    def ClearRule(self):
        r"""<p>清理规则时间, 0 表示关闭, 单位为天, 最大为 30天</p>
        :rtype: int
        """
        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):
    r"""ModifyMachineAutoClearConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMachineRemarkRequest(AbstractModel):
    r"""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):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Remark(self):
        r"""备注信息
        :rtype: str
        """
        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):
    r"""ModifyMachineRemark返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMaliciousRequestWhiteListRequest(AbstractModel):
    r"""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):
        r"""白名单id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Domain(self):
        r"""白名单域名
        :rtype: str
        """
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def Mark(self):
        r"""备注
        :rtype: str
        """
        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):
    r"""ModifyMaliciousRequestWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMalwareTimingScanSettingsRequest(AbstractModel):
    r"""ModifyMalwareTimingScanSettings请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CheckPattern: <p>检测模式 0 全盘检测  1快速检测</p>
        :type CheckPattern: int
        :param _StartTime: <p>检测周期 开始时间，如：02:00:00</p>
        :type StartTime: str
        :param _EndTime: <p>检测周期 超时结束时间，如：04:00:00</p>
        :type EndTime: str
        :param _IsGlobal: <p>是否全部服务器 1 全部 2 自选</p>
        :type IsGlobal: int
        :param _EnableScan: <p>定时检测开关 0 关闭 1开启</p>
        :type EnableScan: int
        :param _MonitoringPattern: <p>监控模式 0 标准 1深度</p>
        :type MonitoringPattern: int
        :param _Cycle: <p>扫描周期 默认每天 1</p>
        :type Cycle: int
        :param _RealTimeMonitoring: <p>实时监控 0 关闭 1开启</p>
        :type RealTimeMonitoring: int
        :param _QuuidList: <p>自选服务器时必须 主机quuid的string数组</p>
        :type QuuidList: list of str
        :param _AutoIsolation: <p>是否自动隔离 1隔离 0 不隔离</p>
        :type AutoIsolation: int
        :param _KillProcess: <p>是否杀掉进程 1杀掉 0不杀掉</p>
        :type KillProcess: int
        :param _DoClean: <p>1 清理, 0 不清理</p><li>本操作会修复被篡改的系统命令，计划任务等系统文件，操作中请确保yum/apt 可用</li>
        :type DoClean: int
        :param _EngineType: <p>1标准模式（只报严重、高危）、2增强模式（报严重、高危、中危）、3严格模式（报严重、高、中、低、提示）</p>
        :type EngineType: int
        :param _EnableInspiredEngine: <p>启发引擎开关 0 关闭 1开启</p>
        :type EnableInspiredEngine: int
        :param _EnableMemShellScan: <p>是否开启恶意进程查杀[0:未开启,1:开启]</p>
        :type EnableMemShellScan: int
        :param _ProtectMode: <p>防护模式 0 标准 1重保</p>
        :type ProtectMode: int
        :param _ProtectFileScope: <p>查杀范围 0 脚本类之外的恶意文件，1全部恶意文件</p>
        :type ProtectFileScope: int
        :param _QuaraUuids: <p>自选的隔离主机集合</p>
        :type QuaraUuids: list of str
        :param _QuaraScope: <p>用户选择的隔离范围，0：默认全隔离 1：用户自选</p>
        :type QuaraScope: int
        :param _ProductType: <p>产品类型 0-主机安全(默认) 1-安全中心</p>
        :type ProductType: 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._DoClean = None
        self._EngineType = None
        self._EnableInspiredEngine = None
        self._EnableMemShellScan = None
        self._ProtectMode = None
        self._ProtectFileScope = None
        self._QuaraUuids = None
        self._QuaraScope = None
        self._ProductType = None

    @property
    def CheckPattern(self):
        r"""<p>检测模式 0 全盘检测  1快速检测</p>
        :rtype: int
        """
        return self._CheckPattern

    @CheckPattern.setter
    def CheckPattern(self, CheckPattern):
        self._CheckPattern = CheckPattern

    @property
    def StartTime(self):
        r"""<p>检测周期 开始时间，如：02:00:00</p>
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""<p>检测周期 超时结束时间，如：04:00:00</p>
        :rtype: str
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def IsGlobal(self):
        r"""<p>是否全部服务器 1 全部 2 自选</p>
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def EnableScan(self):
        r"""<p>定时检测开关 0 关闭 1开启</p>
        :rtype: int
        """
        return self._EnableScan

    @EnableScan.setter
    def EnableScan(self, EnableScan):
        self._EnableScan = EnableScan

    @property
    def MonitoringPattern(self):
        r"""<p>监控模式 0 标准 1深度</p>
        :rtype: int
        """
        return self._MonitoringPattern

    @MonitoringPattern.setter
    def MonitoringPattern(self, MonitoringPattern):
        self._MonitoringPattern = MonitoringPattern

    @property
    def Cycle(self):
        r"""<p>扫描周期 默认每天 1</p>
        :rtype: int
        """
        return self._Cycle

    @Cycle.setter
    def Cycle(self, Cycle):
        self._Cycle = Cycle

    @property
    def RealTimeMonitoring(self):
        r"""<p>实时监控 0 关闭 1开启</p>
        :rtype: int
        """
        return self._RealTimeMonitoring

    @RealTimeMonitoring.setter
    def RealTimeMonitoring(self, RealTimeMonitoring):
        self._RealTimeMonitoring = RealTimeMonitoring

    @property
    def QuuidList(self):
        r"""<p>自选服务器时必须 主机quuid的string数组</p>
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def AutoIsolation(self):
        r"""<p>是否自动隔离 1隔离 0 不隔离</p>
        :rtype: int
        """
        return self._AutoIsolation

    @AutoIsolation.setter
    def AutoIsolation(self, AutoIsolation):
        self._AutoIsolation = AutoIsolation

    @property
    def KillProcess(self):
        r"""<p>是否杀掉进程 1杀掉 0不杀掉</p>
        :rtype: int
        """
        return self._KillProcess

    @KillProcess.setter
    def KillProcess(self, KillProcess):
        self._KillProcess = KillProcess

    @property
    def DoClean(self):
        r"""<p>1 清理, 0 不清理</p><li>本操作会修复被篡改的系统命令，计划任务等系统文件，操作中请确保yum/apt 可用</li>
        :rtype: int
        """
        return self._DoClean

    @DoClean.setter
    def DoClean(self, DoClean):
        self._DoClean = DoClean

    @property
    def EngineType(self):
        r"""<p>1标准模式（只报严重、高危）、2增强模式（报严重、高危、中危）、3严格模式（报严重、高、中、低、提示）</p>
        :rtype: int
        """
        return self._EngineType

    @EngineType.setter
    def EngineType(self, EngineType):
        self._EngineType = EngineType

    @property
    def EnableInspiredEngine(self):
        r"""<p>启发引擎开关 0 关闭 1开启</p>
        :rtype: int
        """
        return self._EnableInspiredEngine

    @EnableInspiredEngine.setter
    def EnableInspiredEngine(self, EnableInspiredEngine):
        self._EnableInspiredEngine = EnableInspiredEngine

    @property
    def EnableMemShellScan(self):
        r"""<p>是否开启恶意进程查杀[0:未开启,1:开启]</p>
        :rtype: int
        """
        return self._EnableMemShellScan

    @EnableMemShellScan.setter
    def EnableMemShellScan(self, EnableMemShellScan):
        self._EnableMemShellScan = EnableMemShellScan

    @property
    def ProtectMode(self):
        r"""<p>防护模式 0 标准 1重保</p>
        :rtype: int
        """
        return self._ProtectMode

    @ProtectMode.setter
    def ProtectMode(self, ProtectMode):
        self._ProtectMode = ProtectMode

    @property
    def ProtectFileScope(self):
        r"""<p>查杀范围 0 脚本类之外的恶意文件，1全部恶意文件</p>
        :rtype: int
        """
        return self._ProtectFileScope

    @ProtectFileScope.setter
    def ProtectFileScope(self, ProtectFileScope):
        self._ProtectFileScope = ProtectFileScope

    @property
    def QuaraUuids(self):
        r"""<p>自选的隔离主机集合</p>
        :rtype: list of str
        """
        return self._QuaraUuids

    @QuaraUuids.setter
    def QuaraUuids(self, QuaraUuids):
        self._QuaraUuids = QuaraUuids

    @property
    def QuaraScope(self):
        r"""<p>用户选择的隔离范围，0：默认全隔离 1：用户自选</p>
        :rtype: int
        """
        return self._QuaraScope

    @QuaraScope.setter
    def QuaraScope(self, QuaraScope):
        self._QuaraScope = QuaraScope

    @property
    def ProductType(self):
        r"""<p>产品类型 0-主机安全(默认) 1-安全中心</p>
        :rtype: int
        """
        return self._ProductType

    @ProductType.setter
    def ProductType(self, ProductType):
        self._ProductType = ProductType


    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._DoClean = params.get("DoClean")
        self._EngineType = params.get("EngineType")
        self._EnableInspiredEngine = params.get("EnableInspiredEngine")
        self._EnableMemShellScan = params.get("EnableMemShellScan")
        self._ProtectMode = params.get("ProtectMode")
        self._ProtectFileScope = params.get("ProtectFileScope")
        self._QuaraUuids = params.get("QuaraUuids")
        self._QuaraScope = params.get("QuaraScope")
        self._ProductType = params.get("ProductType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyMalwareTimingScanSettings返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMalwareWhiteListRequest(AbstractModel):
    r"""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):
        r"""白名单模式； 0MD5白名单，1自定义
        :rtype: int
        """
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def Id(self):
        r"""规则唯一ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def QuuidList(self):
        r"""quuid 列表
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def IsGlobal(self):
        r"""是否全部主机； 0否，1是。
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MatchType(self):
        r"""匹配模式 ；0 精确匹配，1模糊匹配(废弃)
        :rtype: int
        """
        return self._MatchType

    @MatchType.setter
    def MatchType(self, MatchType):
        self._MatchType = MatchType

    @property
    def FileName(self):
        r"""文件名称(正则)；长度不超过200个
        :rtype: list of str
        """
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileDirectory(self):
        r"""文件目录(正则)；长度不超过200个，内容base64转义
        :rtype: list of str
        """
        return self._FileDirectory

    @FileDirectory.setter
    def FileDirectory(self, FileDirectory):
        self._FileDirectory = FileDirectory

    @property
    def FileExtension(self):
        r"""文件后缀；长度不超过200个，内容base64转义（废弃）
        :rtype: list of str
        """
        return self._FileExtension

    @FileExtension.setter
    def FileExtension(self, FileExtension):
        self._FileExtension = FileExtension

    @property
    def Md5List(self):
        r"""MD5列表
        :rtype: list of str
        """
        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):
    r"""ModifyMalwareWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetAttackSettingRequest(AbstractModel):
    r"""ModifyNetAttackSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackEnable: <p>0 关闭网络攻击检测，1开启网络攻击检测</p>
        :type NetAttackEnable: int
        :param _NetAttackAlarmStatus: <p>0 新增告警事件默认待处理，1新增告警事件默认已处理，3新增告警事件默认忽略</p>
        :type NetAttackAlarmStatus: int
        :param _Scope: <p>1 全部旗舰版主机，0 Quuids列表主机</p>
        :type Scope: int
        :param _InstanceIds: <p>自选主机</p>
        :type InstanceIds: list of str
        :param _ExcludeInstanceIds: <p>自选排除的主机</p>
        :type ExcludeInstanceIds: list of str
        :param _AutoInclude: <p>新增资产自动包含 0 不包含 1包含</p>
        :type AutoInclude: int
        :param _ProductType: <p>产品类型 0-主机安全 1-安全中心</p>
        :type ProductType: int
        """
        self._NetAttackEnable = None
        self._NetAttackAlarmStatus = None
        self._Scope = None
        self._InstanceIds = None
        self._ExcludeInstanceIds = None
        self._AutoInclude = None
        self._ProductType = None

    @property
    def NetAttackEnable(self):
        r"""<p>0 关闭网络攻击检测，1开启网络攻击检测</p>
        :rtype: int
        """
        return self._NetAttackEnable

    @NetAttackEnable.setter
    def NetAttackEnable(self, NetAttackEnable):
        self._NetAttackEnable = NetAttackEnable

    @property
    def NetAttackAlarmStatus(self):
        r"""<p>0 新增告警事件默认待处理，1新增告警事件默认已处理，3新增告警事件默认忽略</p>
        :rtype: int
        """
        return self._NetAttackAlarmStatus

    @NetAttackAlarmStatus.setter
    def NetAttackAlarmStatus(self, NetAttackAlarmStatus):
        self._NetAttackAlarmStatus = NetAttackAlarmStatus

    @property
    def Scope(self):
        r"""<p>1 全部旗舰版主机，0 Quuids列表主机</p>
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def InstanceIds(self):
        r"""<p>自选主机</p>
        :rtype: list of str
        """
        return self._InstanceIds

    @InstanceIds.setter
    def InstanceIds(self, InstanceIds):
        self._InstanceIds = InstanceIds

    @property
    def ExcludeInstanceIds(self):
        r"""<p>自选排除的主机</p>
        :rtype: list of str
        """
        return self._ExcludeInstanceIds

    @ExcludeInstanceIds.setter
    def ExcludeInstanceIds(self, ExcludeInstanceIds):
        self._ExcludeInstanceIds = ExcludeInstanceIds

    @property
    def AutoInclude(self):
        r"""<p>新增资产自动包含 0 不包含 1包含</p>
        :rtype: int
        """
        return self._AutoInclude

    @AutoInclude.setter
    def AutoInclude(self, AutoInclude):
        self._AutoInclude = AutoInclude

    @property
    def ProductType(self):
        r"""<p>产品类型 0-主机安全 1-安全中心</p>
        :rtype: int
        """
        return self._ProductType

    @ProductType.setter
    def ProductType(self, ProductType):
        self._ProductType = ProductType


    def _deserialize(self, params):
        self._NetAttackEnable = params.get("NetAttackEnable")
        self._NetAttackAlarmStatus = params.get("NetAttackAlarmStatus")
        self._Scope = params.get("Scope")
        self._InstanceIds = params.get("InstanceIds")
        self._ExcludeInstanceIds = params.get("ExcludeInstanceIds")
        self._AutoInclude = params.get("AutoInclude")
        self._ProductType = params.get("ProductType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyNetAttackSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetAttackWhiteListRequest(AbstractModel):
    r"""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):
        r"""是否全部主机； 0否，1是。
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def SrcIp(self):
        r"""来源IP 单IP:1.1.1.1  IP范围:1.1.1.1-1.1.2.1  IP范围：1.1.1.0/24 
        :rtype: list of str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def DealOldEvents(self):
        r"""是否加白所有符合该规则的告警 ，1:处理,0:不处理
        :rtype: int
        """
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Id(self):
        r"""规则id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def QuuidList(self):
        r"""quuid 列表
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def Description(self):
        r"""规则描述
        :rtype: str
        """
        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):
    r"""ModifyNetAttackWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyOrderAttributeRequest(AbstractModel):
    r"""ModifyOrderAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LicenseType: 授权类型 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        :type LicenseType: int
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _AttrName: 可编辑的属性名称 ,当前支持的有: 
alias 资源别名
projectId 项目ID
        :type AttrName: str
        :param _AttrValue: 属性值
AttrName=alias时,任意字符串,最大字符15长度
AttrName=projectId时,项目ID必须是真实存在的
        :type AttrValue: str
        """
        self._LicenseType = None
        self._ResourceId = None
        self._AttrName = None
        self._AttrValue = None

    @property
    def LicenseType(self):
        r"""授权类型 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        :rtype: int
        """
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def ResourceId(self):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def AttrName(self):
        r"""可编辑的属性名称 ,当前支持的有: 
alias 资源别名
projectId 项目ID
        :rtype: str
        """
        return self._AttrName

    @AttrName.setter
    def AttrName(self, AttrName):
        self._AttrName = AttrName

    @property
    def AttrValue(self):
        r"""属性值
AttrName=alias时,任意字符串,最大字符15长度
AttrName=projectId时,项目ID必须是真实存在的
        :rtype: str
        """
        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):
    r"""ModifyOrderAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRansomDefenseEventsStatusRequest(AbstractModel):
    r"""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):
        r"""需要修改的事件id 数组，支持批量
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        r"""操作 0待处理，1已处理,2信任,9:删除记录
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def All(self):
        r"""是否更新所有同路径事件
        :rtype: bool
        """
        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):
    r"""ModifyRansomDefenseEventsStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRansomDefenseStrategyStatusRequest(AbstractModel):
    r"""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):
        r"""是否对全部策略生效: 0否，1是
        :rtype: int
        """
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def Status(self):
        r"""0关闭，1开启，9删除
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IdList(self):
        r"""策略ID列表
        :rtype: list of int non-negative
        """
        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):
    r"""ModifyRansomDefenseStrategyStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRaspMaxCpuRequest(AbstractModel):
    r"""ModifyRaspMaxCpu请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RaspMaxCpu: rasp当前最大cpu限制，大于0，小于等于100，默认100表示不限制
        :type RaspMaxCpu: int
        """
        self._RaspMaxCpu = None

    @property
    def RaspMaxCpu(self):
        r"""rasp当前最大cpu限制，大于0，小于等于100，默认100表示不限制
        :rtype: int
        """
        return self._RaspMaxCpu

    @RaspMaxCpu.setter
    def RaspMaxCpu(self, RaspMaxCpu):
        self._RaspMaxCpu = RaspMaxCpu


    def _deserialize(self, params):
        self._RaspMaxCpu = params.get("RaspMaxCpu")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyRaspMaxCpuResponse(AbstractModel):
    r"""ModifyRaspMaxCpu返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRaspRulesRequest(AbstractModel):
    r"""ModifyRaspRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID(新增时请留空，编辑时候必传)
        :type Id: int
        :param _VulVulsIDs: 漏洞id数组
        :type VulVulsIDs: list of int non-negative
        :param _URLRegexp: 自定义请求范围加白正则表达式，选择全部请求范围时候为空，否则不能为空，base64编码
        :type URLRegexp: str
        :param _WhiteType: 加白方式，0：自定义请求范围加白。1：全部请求加白
        :type WhiteType: int
        """
        self._Id = None
        self._VulVulsIDs = None
        self._URLRegexp = None
        self._WhiteType = None

    @property
    def Id(self):
        r"""规则ID(新增时请留空，编辑时候必传)
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def VulVulsIDs(self):
        r"""漏洞id数组
        :rtype: list of int non-negative
        """
        return self._VulVulsIDs

    @VulVulsIDs.setter
    def VulVulsIDs(self, VulVulsIDs):
        self._VulVulsIDs = VulVulsIDs

    @property
    def URLRegexp(self):
        r"""自定义请求范围加白正则表达式，选择全部请求范围时候为空，否则不能为空，base64编码
        :rtype: str
        """
        return self._URLRegexp

    @URLRegexp.setter
    def URLRegexp(self, URLRegexp):
        self._URLRegexp = URLRegexp

    @property
    def WhiteType(self):
        r"""加白方式，0：自定义请求范围加白。1：全部请求加白
        :rtype: int
        """
        return self._WhiteType

    @WhiteType.setter
    def WhiteType(self, WhiteType):
        self._WhiteType = WhiteType


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._VulVulsIDs = params.get("VulVulsIDs")
        self._URLRegexp = params.get("URLRegexp")
        self._WhiteType = params.get("WhiteType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyRaspRulesResponse(AbstractModel):
    r"""ModifyRaspRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyReverseShellRulesAggregationRequest(AbstractModel):
    r"""ModifyReverseShellRulesAggregation请求参数结构体

    """

    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
        :param _WhiteType: 加白方式， 0:常规加白 1:正则加白
        :type WhiteType: int
        :param _RuleRegexp: 正则表达式
        :type RuleRegexp: str
        :param _HandleHistory: 处理历史事件， 0:不处理 1:处理
        :type HandleHistory: int
        :param _GroupID: 批次id
        :type GroupID: str
        """
        self._Id = None
        self._Uuids = None
        self._HostIp = None
        self._DestIp = None
        self._DestPort = None
        self._ProcessName = None
        self._IsGlobal = None
        self._EventId = None
        self._WhiteType = None
        self._RuleRegexp = None
        self._HandleHistory = None
        self._GroupID = None

    @property
    def Id(self):
        r"""规则ID(新增时请留空)
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuids(self):
        r"""客户端ID数组
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def HostIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def DestIp(self):
        r"""目标IP
        :rtype: str
        """
        return self._DestIp

    @DestIp.setter
    def DestIp(self, DestIp):
        self._DestIp = DestIp

    @property
    def DestPort(self):
        r"""目标端口
        :rtype: str
        """
        return self._DestPort

    @DestPort.setter
    def DestPort(self, DestPort):
        self._DestPort = DestPort

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def IsGlobal(self):
        r"""是否全局规则(默认否)
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def EventId(self):
        r"""事件列表和详情点击加白时关联的事件id (新增规则时请留空)
        :rtype: int
        """
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def WhiteType(self):
        r"""加白方式， 0:常规加白 1:正则加白
        :rtype: int
        """
        return self._WhiteType

    @WhiteType.setter
    def WhiteType(self, WhiteType):
        self._WhiteType = WhiteType

    @property
    def RuleRegexp(self):
        r"""正则表达式
        :rtype: str
        """
        return self._RuleRegexp

    @RuleRegexp.setter
    def RuleRegexp(self, RuleRegexp):
        self._RuleRegexp = RuleRegexp

    @property
    def HandleHistory(self):
        r"""处理历史事件， 0:不处理 1:处理
        :rtype: int
        """
        return self._HandleHistory

    @HandleHistory.setter
    def HandleHistory(self, HandleHistory):
        self._HandleHistory = HandleHistory

    @property
    def GroupID(self):
        r"""批次id
        :rtype: str
        """
        return self._GroupID

    @GroupID.setter
    def GroupID(self, GroupID):
        self._GroupID = GroupID


    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")
        self._WhiteType = params.get("WhiteType")
        self._RuleRegexp = params.get("RuleRegexp")
        self._HandleHistory = params.get("HandleHistory")
        self._GroupID = params.get("GroupID")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyReverseShellRulesAggregationResponse(AbstractModel):
    r"""ModifyReverseShellRulesAggregation返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRiskDnsPolicyRequest(AbstractModel):
    r"""ModifyRiskDnsPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 策略
        :type Data: :class:`tencentcloud.cwp.v20180228.models.RiskDnsPolicy`
        """
        self._Data = None

    @property
    def Data(self):
        r"""策略
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RiskDnsPolicy`
        """
        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):
    r"""ModifyRiskDnsPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Repeat: 0：没有重复，1：和现有策略重复
        :type Repeat: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Repeat = None
        self._RequestId = None

    @property
    def Repeat(self):
        r"""0：没有重复，1：和现有策略重复
        :rtype: int
        """
        return self._Repeat

    @Repeat.setter
    def Repeat(self, Repeat):
        self._Repeat = Repeat

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Repeat = params.get("Repeat")
        self._RequestId = params.get("RequestId")


class ModifyRiskDnsPolicyStatusRequest(AbstractModel):
    r"""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):
        r"""策略ID
        :rtype: int
        """
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def IsEnabled(self):
        r"""是否生效[0:生效,1:不生效]
        :rtype: int
        """
        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):
    r"""ModifyRiskDnsPolicyStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRiskEventsStatusRequest(AbstractModel):
    r"""ModifyRiskEventsStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Operate: 操作-0:标记已处理,1:忽略,2:删除记录,3:木马隔离,4:木马恢复隔离,5:木马信任,6:木马取消信任,7:查杀异常进程,8:加入白名单
        :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
        :param _DoClean: 当Operate 是木马隔离时
<li> 本操作会修复被篡改的系统命令，计划任务等系统文件，操作中请确保yum/apt 可用。</li>
        :type DoClean: bool
        """
        self._Operate = None
        self._RiskType = None
        self._Ids = None
        self._UpdateAll = None
        self._ExcludeId = None
        self._KillProcess = None
        self._Ip = None
        self._Filters = None
        self._DoClean = None

    @property
    def Operate(self):
        r"""操作-0:标记已处理,1:忽略,2:删除记录,3:木马隔离,4:木马恢复隔离,5:木马信任,6:木马取消信任,7:查杀异常进程,8:加入白名单
        :rtype: int
        """
        return self._Operate

    @Operate.setter
    def Operate(self, Operate):
        self._Operate = Operate

    @property
    def RiskType(self):
        r"""操作事件类型，文件查杀：MALWARE，异常登录：HOST_LOGIN，密码破解：BRUTE_ATTACK，恶意请求：MALICIOUS_REQUEST，高危命令：BASH_EVENT，本地提权：PRIVILEGE_EVENT，反弹shell：REVERSE_SHELL. 异常进程:PROCESS
        :rtype: str
        """
        return self._RiskType

    @RiskType.setter
    def RiskType(self, RiskType):
        self._RiskType = RiskType

    @property
    def Ids(self):
        r"""需要修改的事件id 数组，支持批量
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def UpdateAll(self):
        r"""是否更新全部，即是否对所有的事件进行操作，当ids 不为空时，此参数无效
        :rtype: bool
        """
        return self._UpdateAll

    @UpdateAll.setter
    def UpdateAll(self, UpdateAll):
        self._UpdateAll = UpdateAll

    @property
    def ExcludeId(self):
        r"""排除的事件id,当操作全部事件时，需要排除这次id
        :rtype: list of int non-negative
        """
        return self._ExcludeId

    @ExcludeId.setter
    def ExcludeId(self, ExcludeId):
        self._ExcludeId = ExcludeId

    @property
    def KillProcess(self):
        r"""当Operate 是木马隔离时，表示是否要杀进程，其他操作无效
        :rtype: bool
        """
        return self._KillProcess

    @KillProcess.setter
    def KillProcess(self, KillProcess):
        self._KillProcess = KillProcess

    @property
    def Ip(self):
        r"""当RiskType 为异地登录且ids为空时，可以修改所有来源ip的事件的状态
        :rtype: list of str
        """
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def Filters(self):
        r"""过滤条件。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>
        :rtype: list of Filters
        """
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def DoClean(self):
        r"""当Operate 是木马隔离时
<li> 本操作会修复被篡改的系统命令，计划任务等系统文件，操作中请确保yum/apt 可用。</li>
        :rtype: bool
        """
        return self._DoClean

    @DoClean.setter
    def DoClean(self, DoClean):
        self._DoClean = DoClean


    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)
        self._DoClean = params.get("DoClean")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyRiskEventsStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsSync: 此次操作是否是异步操作，0：操作已完成，1：正在异步操作中，前端需要通过DescribeRiskBatchStatus 查询操作是否完成
        :type IsSync: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsSync = None
        self._RequestId = None

    @property
    def IsSync(self):
        r"""此次操作是否是异步操作，0：操作已完成，1：正在异步操作中，前端需要通过DescribeRiskBatchStatus 查询操作是否完成
        :rtype: int
        """
        return self._IsSync

    @IsSync.setter
    def IsSync(self, IsSync):
        self._IsSync = IsSync

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""配置名称
<li>license_monitor 新增授权监控配置 0 关闭, 1开启</li>
        :rtype: str
        """
        return self._ConfigName

    @ConfigName.setter
    def ConfigName(self, ConfigName):
        self._ConfigName = ConfigName

    @property
    def ConfigValue(self):
        r"""配置值
        :rtype: str
        """
        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):
    r"""ModifyUsersConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVulDefenceEventStatusRequest(AbstractModel):
    r"""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):
        r"""事件id
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        r"""0: 待处理  2:已处理 3: 已忽略 4: 已删除
        :rtype: int
        """
        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):
    r"""ModifyVulDefenceEventStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVulDefenceSettingRequest(AbstractModel):
    r"""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
        :param _ExcludeInstanceIds: 排除作用范围内旗舰版主机列表
        :type ExcludeInstanceIds: list of str
        :param _AutoInclude: 新增资产自动包含 0 不包含 1包含
        :type AutoInclude: int
        :param _InstanceIds: 作用范围内旗舰版主机列表
        :type InstanceIds: list of str
        """
        self._Enable = None
        self._Scope = None
        self._Quuids = None
        self._ExcludeInstanceIds = None
        self._AutoInclude = None
        self._InstanceIds = None

    @property
    def Enable(self):
        r"""防御开关，0 关闭 1 开启
        :rtype: int
        """
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def Scope(self):
        r"""1 全部旗舰版主机，0 Quuids列表主机
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def Quuids(self):
        r"""作用范围内旗舰版主机列表
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def ExcludeInstanceIds(self):
        r"""排除作用范围内旗舰版主机列表
        :rtype: list of str
        """
        return self._ExcludeInstanceIds

    @ExcludeInstanceIds.setter
    def ExcludeInstanceIds(self, ExcludeInstanceIds):
        self._ExcludeInstanceIds = ExcludeInstanceIds

    @property
    def AutoInclude(self):
        r"""新增资产自动包含 0 不包含 1包含
        :rtype: int
        """
        return self._AutoInclude

    @AutoInclude.setter
    def AutoInclude(self, AutoInclude):
        self._AutoInclude = AutoInclude

    @property
    def InstanceIds(self):
        r"""作用范围内旗舰版主机列表
        :rtype: list of str
        """
        return self._InstanceIds

    @InstanceIds.setter
    def InstanceIds(self, InstanceIds):
        self._InstanceIds = InstanceIds


    def _deserialize(self, params):
        self._Enable = params.get("Enable")
        self._Scope = params.get("Scope")
        self._Quuids = params.get("Quuids")
        self._ExcludeInstanceIds = params.get("ExcludeInstanceIds")
        self._AutoInclude = params.get("AutoInclude")
        self._InstanceIds = params.get("InstanceIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyVulDefenceSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWarningHostConfigRequest(AbstractModel):
    r"""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
        :param _ExcludedQuuids: 需排除的机器列表
        :type ExcludedQuuids: list of str
        """
        self._Type = None
        self._HostRange = None
        self._ItemLabels = None
        self._Quuids = None
        self._ItemLabelIds = None
        self._ExcludedQuuids = None

    @property
    def Type(self):
        r"""告警类型
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def HostRange(self):
        r"""告警主机范围类型，0:全部主机，1:按所属项目选，2:按腾讯云标签选，3:按主机安全标签选，4:自选主机
        :rtype: int
        """
        return self._HostRange

    @HostRange.setter
    def HostRange(self, HostRange):
        self._HostRange = HostRange

    @property
    def ItemLabels(self):
        r"""项目或标签的名称列表，自选主机时为空
        :rtype: list of str
        """
        return self._ItemLabels

    @ItemLabels.setter
    def ItemLabels(self, ItemLabels):
        self._ItemLabels = ItemLabels

    @property
    def Quuids(self):
        r"""机器列表
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def ItemLabelIds(self):
        r"""项目或标签的id列表，自选主机时为空
        :rtype: list of str
        """
        return self._ItemLabelIds

    @ItemLabelIds.setter
    def ItemLabelIds(self, ItemLabelIds):
        self._ItemLabelIds = ItemLabelIds

    @property
    def ExcludedQuuids(self):
        r"""需排除的机器列表
        :rtype: list of str
        """
        return self._ExcludedQuuids

    @ExcludedQuuids.setter
    def ExcludedQuuids(self, ExcludedQuuids):
        self._ExcludedQuuids = ExcludedQuuids


    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")
        self._ExcludedQuuids = params.get("ExcludedQuuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyWarningHostConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWarningSettingRequest(AbstractModel):
    r"""ModifyWarningSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _WarningObjects: 修改告警设置的内容
        :type WarningObjects: list of WarningObject
        """
        self._WarningObjects = None

    @property
    def WarningObjects(self):
        r"""修改告警设置的内容
        :rtype: list of WarningObject
        """
        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):
    r"""ModifyWarningSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookPolicyRequest(AbstractModel):
    r"""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
        :param _ExcludedQuuids: 需排除的机器列表	
        :type ExcludedQuuids: list of str
        :param _MsgLanguage: 推送语言类型，中文zh，英文en
        :type MsgLanguage: 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
        self._ExcludedQuuids = None
        self._MsgLanguage = None

    @property
    def Id(self):
        r"""id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        r"""策略名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Events(self):
        r"""事件类型
        :rtype: list of WebHookEventKv
        """
        return self._Events

    @Events.setter
    def Events(self, Events):
        self._Events = Events

    @property
    def HostLabels(self):
        r"""主机范围
        :rtype: list of WebHookHostLabel
        """
        return self._HostLabels

    @HostLabels.setter
    def HostLabels(self, HostLabels):
        self._HostLabels = HostLabels

    @property
    def Receivers(self):
        r"""接收人
        :rtype: list of WebHookReceiver
        """
        return self._Receivers

    @Receivers.setter
    def Receivers(self, Receivers):
        self._Receivers = Receivers

    @property
    def Format(self):
        r"""格式 0text 1json
        :rtype: int
        """
        return self._Format

    @Format.setter
    def Format(self, Format):
        self._Format = Format

    @property
    def CustomFields(self):
        r"""自定义透传字段
        :rtype: list of WebHookCustomField
        """
        return self._CustomFields

    @CustomFields.setter
    def CustomFields(self, CustomFields):
        self._CustomFields = CustomFields

    @property
    def IsDisabled(self):
        r"""是否启用[1:禁用|0:启用]
        :rtype: int
        """
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled

    @property
    def Quuids(self):
        r"""主机列表
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def ExcludedQuuids(self):
        r"""需排除的机器列表	
        :rtype: list of str
        """
        return self._ExcludedQuuids

    @ExcludedQuuids.setter
    def ExcludedQuuids(self, ExcludedQuuids):
        self._ExcludedQuuids = ExcludedQuuids

    @property
    def MsgLanguage(self):
        r"""推送语言类型，中文zh，英文en
        :rtype: str
        """
        return self._MsgLanguage

    @MsgLanguage.setter
    def MsgLanguage(self, MsgLanguage):
        self._MsgLanguage = MsgLanguage


    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._ExcludedQuuids = params.get("ExcludedQuuids")
        self._MsgLanguage = params.get("MsgLanguage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ModifyWebHookPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookPolicyStatusRequest(AbstractModel):
    r"""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):
        r"""id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def IsDisabled(self):
        r"""开关, 1禁用 0启用
        :rtype: int
        """
        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):
    r"""ModifyWebHookPolicyStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookReceiverRequest(AbstractModel):
    r"""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
        :param _Type: 类型
        :type Type: int
        :param _SCFRegion: 目标地域
        :type SCFRegion: str
        :param _Namespace: 命名空间
        :type Namespace: str
        :param _FunctionName: 函数名称
        :type FunctionName: str
        :param _FunctionVersion: 函数版本
        :type FunctionVersion: str
        :param _Alias: 别名
        :type Alias: str
        """
        self._Id = None
        self._Name = None
        self._Addr = None
        self._IsModify = None
        self._Type = None
        self._SCFRegion = None
        self._Namespace = None
        self._FunctionName = None
        self._FunctionVersion = None
        self._Alias = None

    @property
    def Id(self):
        r"""id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        r"""接收人名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Addr(self):
        r"""webhook地址
        :rtype: str
        """
        return self._Addr

    @Addr.setter
    def Addr(self, Addr):
        self._Addr = Addr

    @property
    def IsModify(self):
        r"""是否修改
        :rtype: bool
        """
        return self._IsModify

    @IsModify.setter
    def IsModify(self, IsModify):
        self._IsModify = IsModify

    @property
    def Type(self):
        r"""类型
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def SCFRegion(self):
        r"""目标地域
        :rtype: str
        """
        return self._SCFRegion

    @SCFRegion.setter
    def SCFRegion(self, SCFRegion):
        self._SCFRegion = SCFRegion

    @property
    def Namespace(self):
        r"""命名空间
        :rtype: str
        """
        return self._Namespace

    @Namespace.setter
    def Namespace(self, Namespace):
        self._Namespace = Namespace

    @property
    def FunctionName(self):
        r"""函数名称
        :rtype: str
        """
        return self._FunctionName

    @FunctionName.setter
    def FunctionName(self, FunctionName):
        self._FunctionName = FunctionName

    @property
    def FunctionVersion(self):
        r"""函数版本
        :rtype: str
        """
        return self._FunctionVersion

    @FunctionVersion.setter
    def FunctionVersion(self, FunctionVersion):
        self._FunctionVersion = FunctionVersion

    @property
    def Alias(self):
        r"""别名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        self._Addr = params.get("Addr")
        self._IsModify = params.get("IsModify")
        self._Type = params.get("Type")
        self._SCFRegion = params.get("SCFRegion")
        self._Namespace = params.get("Namespace")
        self._FunctionName = params.get("FunctionName")
        self._FunctionVersion = params.get("FunctionVersion")
        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 ModifyWebHookReceiverResponse(AbstractModel):
    r"""ModifyWebHookReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookRuleRequest(AbstractModel):
    r"""ModifyWebHookRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 规则内容
        :type Data: :class:`tencentcloud.cwp.v20180228.models.WebHookRuleDetail`
        """
        self._Data = None

    @property
    def Data(self):
        r"""规则内容
        :rtype: :class:`tencentcloud.cwp.v20180228.models.WebHookRuleDetail`
        """
        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):
    r"""ModifyWebHookRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookRuleStatusRequest(AbstractModel):
    r"""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):
        r"""规则Id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def IsDisabled(self):
        r"""开启状态[0:开启|1:关闭]
        :rtype: int
        """
        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):
    r"""ModifyWebHookRuleStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebPageProtectDirRequest(AbstractModel):
    r"""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):
        r"""网站防护目录地址
        :rtype: str
        """
        return self._ProtectDirAddr

    @ProtectDirAddr.setter
    def ProtectDirAddr(self, ProtectDirAddr):
        self._ProtectDirAddr = ProtectDirAddr

    @property
    def ProtectDirName(self):
        r"""网站防护目录名称
        :rtype: str
        """
        return self._ProtectDirName

    @ProtectDirName.setter
    def ProtectDirName(self, ProtectDirName):
        self._ProtectDirName = ProtectDirName

    @property
    def ProtectFileType(self):
        r"""防护文件类型,分号分割 ;
        :rtype: str
        """
        return self._ProtectFileType

    @ProtectFileType.setter
    def ProtectFileType(self, ProtectFileType):
        self._ProtectFileType = ProtectFileType

    @property
    def HostConfig(self):
        r"""防护机器列表信息
        :rtype: list of ProtectHostConfig
        """
        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):
    r"""ModifyWebPageProtectDir返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebPageProtectSettingRequest(AbstractModel):
    r"""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):
        r"""需要操作的类型1 目录名称 2 防护文件类型
        :rtype: int
        """
        return self._ModifyType

    @ModifyType.setter
    def ModifyType(self, ModifyType):
        self._ModifyType = ModifyType

    @property
    def Value(self):
        r"""提交值
        :rtype: str
        """
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Id(self):
        r"""配置对应的protect_path
        :rtype: str
        """
        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):
    r"""ModifyWebPageProtectSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebPageProtectSwitchRequest(AbstractModel):
    r"""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):
        r"""开关类型 1 防护开关  2 自动恢复开关 3 移除防护目录
        :rtype: int
        """
        return self._SwitchType

    @SwitchType.setter
    def SwitchType(self, SwitchType):
        self._SwitchType = SwitchType

    @property
    def Ids(self):
        r"""需要操作开关的网站 最大100条
        :rtype: list of str
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        r"""1 开启 0 关闭 SwitchType 为 1 | 2 必填;
        :rtype: int
        """
        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):
    r"""ModifyWebPageProtectSwitch返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class NetAttackEvent(AbstractModel):
    r"""网络攻击事件

    """

    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: 主机额外信息
        :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
        :param _RaspOpen: 是否开启应用防护，0关闭，1开启
        :type RaspOpen: int
        :param _IPAnalyse: ip分析
        :type IPAnalyse: :class:`tencentcloud.cwp.v20180228.models.IPAnalyse`
        """
        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
        self._RaspOpen = None
        self._IPAnalyse = None

    @property
    def Id(self):
        r"""日志ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""客户端ID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def DstPort(self):
        r"""目标端口
        :rtype: int
        """
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def SrcIP(self):
        r"""来源IP
        :rtype: str
        """
        return self._SrcIP

    @SrcIP.setter
    def SrcIP(self, SrcIP):
        self._SrcIP = SrcIP

    @property
    def Location(self):
        r"""来源地
        :rtype: str
        """
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def MergeTime(self):
        r"""攻击时间
        :rtype: str
        """
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Type(self):
        r"""攻击状态，0: 尝试攻击 1: 实锤攻击(攻击成功)
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Status(self):
        r"""处理状态，0 待处理 1 已处理 2 已加白  3 已忽略 4 已删除 5: 已开启防御
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def VulSupportDefense(self):
        r"""漏洞是否支持防御，0:不支持 1:支持
        :rtype: int
        """
        return self._VulSupportDefense

    @VulSupportDefense.setter
    def VulSupportDefense(self, VulSupportDefense):
        self._VulSupportDefense = VulSupportDefense

    @property
    def VulDefenceStatus(self):
        r"""是否开启漏洞防御，0关1开
        :rtype: int
        """
        return self._VulDefenceStatus

    @VulDefenceStatus.setter
    def VulDefenceStatus(self, VulDefenceStatus):
        self._VulDefenceStatus = VulDefenceStatus

    @property
    def PayVersion(self):
        r"""机器付费版本，0 基础版，1专业版，2旗舰版，3轻量版
        :rtype: int
        """
        return self._PayVersion

    @PayVersion.setter
    def PayVersion(self, PayVersion):
        self._PayVersion = PayVersion

    @property
    def Quuid(self):
        r"""cvm uuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Count(self):
        r"""攻击次数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def New(self):
        r"""是否今日新增主机
        :rtype: bool
        """
        return self._New

    @New.setter
    def New(self, New):
        self._New = New

    @property
    def RaspOpen(self):
        r"""是否开启应用防护，0关闭，1开启
        :rtype: int
        """
        return self._RaspOpen

    @RaspOpen.setter
    def RaspOpen(self, RaspOpen):
        self._RaspOpen = RaspOpen

    @property
    def IPAnalyse(self):
        r"""ip分析
        :rtype: :class:`tencentcloud.cwp.v20180228.models.IPAnalyse`
        """
        return self._IPAnalyse

    @IPAnalyse.setter
    def IPAnalyse(self, IPAnalyse):
        self._IPAnalyse = IPAnalyse


    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")
        self._RaspOpen = params.get("RaspOpen")
        if params.get("IPAnalyse") is not None:
            self._IPAnalyse = IPAnalyse()
            self._IPAnalyse._deserialize(params.get("IPAnalyse"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""网络攻击事件详情

    """

    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: 主机额外信息
        :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
        :type Quuid: str
        :param _MergeTime: 攻击发生时间
        :type MergeTime: str
        :param _Type: 0: 尝试攻击 1:攻击成功
        :type Type: int
        :param _HostOpType: 0:无失陷行为 1: rce(命令执行) 2: dnslog 3: writefile
        :type HostOpType: int
        :param _HostOpProcessTree: 进程树,需要用base64 解码
        :type HostOpProcessTree: str
        :param _IPAnalyse: IP分析
        :type IPAnalyse: :class:`tencentcloud.cwp.v20180228.models.IPAnalyse`
        :param _NetResponsePayload: 响应数据包 base64编码
        :type NetResponsePayload: 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
        self._IPAnalyse = None
        self._NetResponsePayload = None

    @property
    def Status(self):
        r"""处理状态，0 待处理 1 已处理 2 已加白  3 已忽略 4 已删除 5: 已开启防御
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def SrcIP(self):
        r"""攻击源ip
        :rtype: str
        """
        return self._SrcIP

    @SrcIP.setter
    def SrcIP(self, SrcIP):
        self._SrcIP = SrcIP

    @property
    def Location(self):
        r"""攻击源地
        :rtype: str
        """
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def CVEId(self):
        r"""漏洞CVE编号
        :rtype: str
        """
        return self._CVEId

    @CVEId.setter
    def CVEId(self, CVEId):
        self._CVEId = CVEId

    @property
    def AttackLevel(self):
        r"""漏洞攻击热度
        :rtype: int
        """
        return self._AttackLevel

    @AttackLevel.setter
    def AttackLevel(self, AttackLevel):
        self._AttackLevel = AttackLevel

    @property
    def VulDefenceStatus(self):
        r"""漏洞防御状态，0关闭，1开启
        :rtype: int
        """
        return self._VulDefenceStatus

    @VulDefenceStatus.setter
    def VulDefenceStatus(self, VulDefenceStatus):
        self._VulDefenceStatus = VulDefenceStatus

    @property
    def VulSupportDefense(self):
        r"""漏洞是否支持防御，0:不支持 1:支持
        :rtype: int
        """
        return self._VulSupportDefense

    @VulSupportDefense.setter
    def VulSupportDefense(self, VulSupportDefense):
        self._VulSupportDefense = VulSupportDefense

    @property
    def SvcPs(self):
        r"""服务进程 base64 
        :rtype: str
        """
        return self._SvcPs

    @SvcPs.setter
    def SvcPs(self, SvcPs):
        self._SvcPs = SvcPs

    @property
    def NetPayload(self):
        r"""攻击数据包
        :rtype: str
        """
        return self._NetPayload

    @NetPayload.setter
    def NetPayload(self, NetPayload):
        self._NetPayload = NetPayload

    @property
    def AbnormalAction(self):
        r"""异常行为
        :rtype: str
        """
        return self._AbnormalAction

    @AbnormalAction.setter
    def AbnormalAction(self, AbnormalAction):
        self._AbnormalAction = AbnormalAction

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def DstPort(self):
        r"""目标端口
        :rtype: int
        """
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def Count(self):
        r"""攻击次数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def PayVersion(self):
        r"""机器付费版本，0 基础版，1专业版，2旗舰版，3轻量版
        :rtype: int
        """
        return self._PayVersion

    @PayVersion.setter
    def PayVersion(self, PayVersion):
        self._PayVersion = PayVersion

    @property
    def Quuid(self):
        r"""cvm uuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MergeTime(self):
        r"""攻击发生时间
        :rtype: str
        """
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Type(self):
        r"""0: 尝试攻击 1:攻击成功
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def HostOpType(self):
        r"""0:无失陷行为 1: rce(命令执行) 2: dnslog 3: writefile
        :rtype: int
        """
        return self._HostOpType

    @HostOpType.setter
    def HostOpType(self, HostOpType):
        self._HostOpType = HostOpType

    @property
    def HostOpProcessTree(self):
        r"""进程树,需要用base64 解码
        :rtype: str
        """
        return self._HostOpProcessTree

    @HostOpProcessTree.setter
    def HostOpProcessTree(self, HostOpProcessTree):
        self._HostOpProcessTree = HostOpProcessTree

    @property
    def IPAnalyse(self):
        r"""IP分析
        :rtype: :class:`tencentcloud.cwp.v20180228.models.IPAnalyse`
        """
        return self._IPAnalyse

    @IPAnalyse.setter
    def IPAnalyse(self, IPAnalyse):
        self._IPAnalyse = IPAnalyse

    @property
    def NetResponsePayload(self):
        r"""响应数据包 base64编码
        :rtype: str
        """
        return self._NetResponsePayload

    @NetResponsePayload.setter
    def NetResponsePayload(self, NetResponsePayload):
        self._NetResponsePayload = NetResponsePayload


    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")
        if params.get("IPAnalyse") is not None:
            self._IPAnalyse = IPAnalyse()
            self._IPAnalyse._deserialize(params.get("IPAnalyse"))
        self._NetResponsePayload = params.get("NetResponsePayload")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""网络攻击top统计数据

    """

    def __init__(self):
        r"""
        :param _Agent: 网络攻击主机维度top统计数据
        :type Agent: list of TopInfo
        :param _SrcIp: 网络攻击ip来源维度top统计数据
        :type SrcIp: list of TopInfo
        :param _DstPort: 网络攻击目标端口维度top统计数据
        :type DstPort: list of TopInfo
        :param _Vul: 网络攻击漏洞维度top统计数据
        :type Vul: list of TopInfo
        """
        self._Agent = None
        self._SrcIp = None
        self._DstPort = None
        self._Vul = None

    @property
    def Agent(self):
        r"""网络攻击主机维度top统计数据
        :rtype: list of TopInfo
        """
        return self._Agent

    @Agent.setter
    def Agent(self, Agent):
        self._Agent = Agent

    @property
    def SrcIp(self):
        r"""网络攻击ip来源维度top统计数据
        :rtype: list of TopInfo
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def DstPort(self):
        r"""网络攻击目标端口维度top统计数据
        :rtype: list of TopInfo
        """
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def Vul(self):
        r"""网络攻击漏洞维度top统计数据
        :rtype: list of TopInfo
        """
        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):
    r"""攻击趋势统计数据

    """

    def __init__(self):
        r"""
        :param _DateTime: 时间点，如 2023-05-06
        :type DateTime: str
        :param _AttackCount: 攻击次数
        :type AttackCount: int
        :param _TryAttackCount: 尝试攻击次数
        :type TryAttackCount: int
        :param _SuccAttackCount: 攻击成功次数
        :type SuccAttackCount: int
        """
        self._DateTime = None
        self._AttackCount = None
        self._TryAttackCount = None
        self._SuccAttackCount = None

    @property
    def DateTime(self):
        r"""时间点，如 2023-05-06
        :rtype: str
        """
        return self._DateTime

    @DateTime.setter
    def DateTime(self, DateTime):
        self._DateTime = DateTime

    @property
    def AttackCount(self):
        r"""攻击次数
        :rtype: int
        """
        return self._AttackCount

    @AttackCount.setter
    def AttackCount(self, AttackCount):
        self._AttackCount = AttackCount

    @property
    def TryAttackCount(self):
        r"""尝试攻击次数
        :rtype: int
        """
        return self._TryAttackCount

    @TryAttackCount.setter
    def TryAttackCount(self, TryAttackCount):
        self._TryAttackCount = TryAttackCount

    @property
    def SuccAttackCount(self):
        r"""攻击成功次数
        :rtype: int
        """
        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):
    r"""网络攻击白名单规则

    """

    def __init__(self):
        r"""
        :param _Id: 规则id
        :type Id: int
        :param _Description: 规则描述
        :type Description: str
        :param _Scope: 0: 一组quuid 1: 所有主机
        :type Scope: int
        :param _DealOldEvents: 是否处理之前的事件 0: 不处理 1:处理
        :type DealOldEvents: int
        :param _Quuids: 主机quuid 多个用;隔开
        :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 多个用;隔开
        :type SrcIP: str
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :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):
        r"""规则id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Description(self):
        r"""规则描述
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Scope(self):
        r"""0: 一组quuid 1: 所有主机
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def DealOldEvents(self):
        r"""是否处理之前的事件 0: 不处理 1:处理
        :rtype: int
        """
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Quuids(self):
        r"""主机quuid 多个用;隔开
        :rtype: str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def SrcIP(self):
        r"""来源IP 单IP:1.1.1.1  IP范围:1.1.1.1-1.1.2.1  IP范围：1.1.1.0/24 多个用;隔开
        :rtype: str
        """
        return self._SrcIP

    @SrcIP.setter
    def SrcIP(self, SrcIP):
        self._SrcIP = SrcIP

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        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):
    r"""端口统计列表

    """

    def __init__(self):
        r"""
        :param _Port: 端口号
        :type Port: int
        :param _MachineNum: 主机数量
        :type MachineNum: int
        """
        self._Port = None
        self._MachineNum = None

    @property
    def Port(self):
        r"""端口号
        :rtype: int
        """
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def MachineNum(self):
        r"""主机数量
        :rtype: int
        """
        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 OrderDetail(AbstractModel):
    r"""订单详情

    """

    def __init__(self):
        r"""
        :param _ResourceID: 资源ID
        :type ResourceID: str
        :param _InquireKey: 计费项
        :type InquireKey: str
        :param _Status: 订单状态
- 1 正常
- 2 隔离期
- 3 已销毁
        :type Status: int
        """
        self._ResourceID = None
        self._InquireKey = None
        self._Status = None

    @property
    def ResourceID(self):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceID

    @ResourceID.setter
    def ResourceID(self, ResourceID):
        self._ResourceID = ResourceID

    @property
    def InquireKey(self):
        r"""计费项
        :rtype: str
        """
        return self._InquireKey

    @InquireKey.setter
    def InquireKey(self, InquireKey):
        self._InquireKey = InquireKey

    @property
    def Status(self):
        r"""订单状态
- 1 正常
- 2 隔离期
- 3 已销毁
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._ResourceID = params.get("ResourceID")
        self._InquireKey = params.get("InquireKey")
        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 OrderModifyObject(AbstractModel):
    r"""订单变配参数对象

    """

    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):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def NewSubProductCode(self):
        r"""新产品标识,这里支持PRO_VERSION 专业版,FLAGSHIP 旗舰版
        :rtype: str
        """
        return self._NewSubProductCode

    @NewSubProductCode.setter
    def NewSubProductCode(self, NewSubProductCode):
        self._NewSubProductCode = NewSubProductCode

    @property
    def InquireNum(self):
        r"""扩容/缩容数,变配子产品忽略该参数
        :rtype: int
        """
        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):
    r"""订单资源

    """

    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):
        r"""资源主键ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def ResourceId(self):
        r"""资源ID
        :rtype: str
        """
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def BeginTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime

    @property
    def EndTime(self):
        r"""到期时间
        :rtype: str
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def LicenseType(self):
        r"""授权类型
        :rtype: int
        """
        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):
    r"""操作系统名称

    """

    def __init__(self):
        r"""
        :param _Name: 系统名称
        :type Name: str
        :param _MachineOSType: 操作系统类型枚举值
        :type MachineOSType: int
        """
        self._Name = None
        self._MachineOSType = None

    @property
    def Name(self):
        r"""系统名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def MachineOSType(self):
        r"""操作系统类型枚举值
        :rtype: int
        """
        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 PatchEffectHostList(AbstractModel):
    r"""补丁影响主机列表

    """

    def __init__(self):
        r"""
        :param _HostVersion: 版本信息：0-基础版 1-专业版 2-旗舰版 3-轻量版
        :type HostVersion: int
        :param _InstanceState: 实例状态: "PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-表示开机中 "STOPPING"-表示关机中 "REBOOTING"-重启中 "SHUTDOWN"-表示停止待销毁 "TERMINATING"-表示销毁中 
        :type InstanceState: str
        :param _FirstScanTime: 首次扫描时间
        :type FirstScanTime: str
        :param _LatestScanTime: 最近扫描时间
        :type LatestScanTime: str
        :param _FixStatus: 修复状态：0-未进行修复；1-修复中；2-修复失败；3-修复成功；4-修复超时
        :type FixStatus: int
        :param _MachineExtraInfo: 主机基础信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Uuid: 主机安全Uuid
        :type Uuid: str
        :param _Quuid: CVM或BM机器唯一Uuid
        :type Quuid: str
        :param _Id: 事件id
        :type Id: int
        :param _Status: 状态：0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中 7: 回滚中 8:修复失败
        :type Status: int
        :param _LatestFixTime: 修复时间
        :type LatestFixTime: str
        :param _KbId: KB id
        :type KbId: int
        :param _RestartRequired: 是否需要重启 0不需要，1需要
        :type RestartRequired: int
        :param _RegionId: 可用区ID	
        :type RegionId: int
        :param _MachineType: 机器类型信息
        :type MachineType: str
        :param _HasSnapshot: 修复任务是否创建了快照： 0-未创建，其他-已创建
        :type HasSnapshot: int
        """
        self._HostVersion = None
        self._InstanceState = None
        self._FirstScanTime = None
        self._LatestScanTime = None
        self._FixStatus = None
        self._MachineExtraInfo = None
        self._Uuid = None
        self._Quuid = None
        self._Id = None
        self._Status = None
        self._LatestFixTime = None
        self._KbId = None
        self._RestartRequired = None
        self._RegionId = None
        self._MachineType = None
        self._HasSnapshot = None

    @property
    def HostVersion(self):
        r"""版本信息：0-基础版 1-专业版 2-旗舰版 3-轻量版
        :rtype: int
        """
        return self._HostVersion

    @HostVersion.setter
    def HostVersion(self, HostVersion):
        self._HostVersion = HostVersion

    @property
    def InstanceState(self):
        r"""实例状态: "PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-表示开机中 "STOPPING"-表示关机中 "REBOOTING"-重启中 "SHUTDOWN"-表示停止待销毁 "TERMINATING"-表示销毁中 
        :rtype: str
        """
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def FirstScanTime(self):
        r"""首次扫描时间
        :rtype: str
        """
        return self._FirstScanTime

    @FirstScanTime.setter
    def FirstScanTime(self, FirstScanTime):
        self._FirstScanTime = FirstScanTime

    @property
    def LatestScanTime(self):
        r"""最近扫描时间
        :rtype: str
        """
        return self._LatestScanTime

    @LatestScanTime.setter
    def LatestScanTime(self, LatestScanTime):
        self._LatestScanTime = LatestScanTime

    @property
    def FixStatus(self):
        r"""修复状态：0-未进行修复；1-修复中；2-修复失败；3-修复成功；4-修复超时
        :rtype: int
        """
        return self._FixStatus

    @FixStatus.setter
    def FixStatus(self, FixStatus):
        self._FixStatus = FixStatus

    @property
    def MachineExtraInfo(self):
        r"""主机基础信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Uuid(self):
        r"""主机安全Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""CVM或BM机器唯一Uuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Status(self):
        r"""状态：0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中 7: 回滚中 8:修复失败
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def LatestFixTime(self):
        r"""修复时间
        :rtype: str
        """
        return self._LatestFixTime

    @LatestFixTime.setter
    def LatestFixTime(self, LatestFixTime):
        self._LatestFixTime = LatestFixTime

    @property
    def KbId(self):
        r"""KB id
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId

    @property
    def RestartRequired(self):
        r"""是否需要重启 0不需要，1需要
        :rtype: int
        """
        return self._RestartRequired

    @RestartRequired.setter
    def RestartRequired(self, RestartRequired):
        self._RestartRequired = RestartRequired

    @property
    def RegionId(self):
        r"""可用区ID	
        :rtype: int
        """
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def MachineType(self):
        r"""机器类型信息
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def HasSnapshot(self):
        r"""修复任务是否创建了快照： 0-未创建，其他-已创建
        :rtype: int
        """
        return self._HasSnapshot

    @HasSnapshot.setter
    def HasSnapshot(self, HasSnapshot):
        self._HasSnapshot = HasSnapshot


    def _deserialize(self, params):
        self._HostVersion = params.get("HostVersion")
        self._InstanceState = params.get("InstanceState")
        self._FirstScanTime = params.get("FirstScanTime")
        self._LatestScanTime = params.get("LatestScanTime")
        self._FixStatus = params.get("FixStatus")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Id = params.get("Id")
        self._Status = params.get("Status")
        self._LatestFixTime = params.get("LatestFixTime")
        self._KbId = params.get("KbId")
        self._RestartRequired = params.get("RestartRequired")
        self._RegionId = params.get("RegionId")
        self._MachineType = params.get("MachineType")
        self._HasSnapshot = params.get("HasSnapshot")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PatchInfoDetail(AbstractModel):
    r"""补丁信息详情

    """

    def __init__(self):
        r"""
        :param _KBNo: KB编号
        :type KBNo: str
        :param _Name: KB名称
        :type Name: str
        :param _PublishTime: 2025-05
        :type PublishTime: str
        :param _RelatedCveId: KB影响的漏洞
        :type RelatedCveId: list of str
        :param _KbDocUrl: KB说明文档
        :type KbDocUrl: str
        :param _Id: KB id编号
        :type Id: int
        """
        self._KBNo = None
        self._Name = None
        self._PublishTime = None
        self._RelatedCveId = None
        self._KbDocUrl = None
        self._Id = None

    @property
    def KBNo(self):
        r"""KB编号
        :rtype: str
        """
        return self._KBNo

    @KBNo.setter
    def KBNo(self, KBNo):
        self._KBNo = KBNo

    @property
    def Name(self):
        r"""KB名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def PublishTime(self):
        r"""2025-05
        :rtype: str
        """
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def RelatedCveId(self):
        r"""KB影响的漏洞
        :rtype: list of str
        """
        return self._RelatedCveId

    @RelatedCveId.setter
    def RelatedCveId(self, RelatedCveId):
        self._RelatedCveId = RelatedCveId

    @property
    def KbDocUrl(self):
        r"""KB说明文档
        :rtype: str
        """
        return self._KbDocUrl

    @KbDocUrl.setter
    def KbDocUrl(self, KbDocUrl):
        self._KbDocUrl = KbDocUrl

    @property
    def Id(self):
        r"""KB id编号
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._KBNo = params.get("KBNo")
        self._Name = params.get("Name")
        self._PublishTime = params.get("PublishTime")
        self._RelatedCveId = params.get("RelatedCveId")
        self._KbDocUrl = params.get("KbDocUrl")
        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 Place(AbstractModel):
    r"""登录地信息

    """

    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):
        r"""城市 ID。
        :rtype: int
        """
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def ProvinceId(self):
        r"""省份 ID。
        :rtype: int
        """
        return self._ProvinceId

    @ProvinceId.setter
    def ProvinceId(self, ProvinceId):
        self._ProvinceId = ProvinceId

    @property
    def CountryId(self):
        r"""国家ID，暂只支持境内：1。
        :rtype: int
        """
        return self._CountryId

    @CountryId.setter
    def CountryId(self, CountryId):
        self._CountryId = CountryId

    @property
    def Location(self):
        r"""位置名称
        :rtype: str
        """
        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 PolicyRules(AbstractModel):
    r"""策略规则表达式

    """

    def __init__(self):
        r"""
        :param _Process: 进程
        :type Process: :class:`tencentcloud.cwp.v20180228.models.CommandLine`
        :param _PProcess: 父进程
        :type PProcess: :class:`tencentcloud.cwp.v20180228.models.CommandLine`
        :param _AProcess: 祖先进程
        :type AProcess: :class:`tencentcloud.cwp.v20180228.models.CommandLine`
        """
        self._Process = None
        self._PProcess = None
        self._AProcess = None

    @property
    def Process(self):
        r"""进程
        :rtype: :class:`tencentcloud.cwp.v20180228.models.CommandLine`
        """
        return self._Process

    @Process.setter
    def Process(self, Process):
        self._Process = Process

    @property
    def PProcess(self):
        r"""父进程
        :rtype: :class:`tencentcloud.cwp.v20180228.models.CommandLine`
        """
        return self._PProcess

    @PProcess.setter
    def PProcess(self, PProcess):
        self._PProcess = PProcess

    @property
    def AProcess(self):
        r"""祖先进程
        :rtype: :class:`tencentcloud.cwp.v20180228.models.CommandLine`
        """
        return self._AProcess

    @AProcess.setter
    def AProcess(self, AProcess):
        self._AProcess = AProcess


    def _deserialize(self, params):
        if params.get("Process") is not None:
            self._Process = CommandLine()
            self._Process._deserialize(params.get("Process"))
        if params.get("PProcess") is not None:
            self._PProcess = CommandLine()
            self._PProcess._deserialize(params.get("PProcess"))
        if params.get("AProcess") is not None:
            self._AProcess = CommandLine()
            self._AProcess._deserialize(params.get("AProcess"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""本地提权数据

    """

    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: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Pid: 进程id
        :type Pid: int
        :param _Count: 告警数量
        :type Count: 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
        self._Count = None

    @property
    def Id(self):
        r"""数据ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机安全ID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""主机ID
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Hostip(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def FullPath(self):
        r"""进程路径
        :rtype: str
        """
        return self._FullPath

    @FullPath.setter
    def FullPath(self, FullPath):
        self._FullPath = FullPath

    @property
    def CmdLine(self):
        r"""执行命令
        :rtype: str
        """
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def UserName(self):
        r"""用户名
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        r"""用户组
        :rtype: str
        """
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ProcFilePrivilege(self):
        r"""进程文件权限
        :rtype: str
        """
        return self._ProcFilePrivilege

    @ProcFilePrivilege.setter
    def ProcFilePrivilege(self, ProcFilePrivilege):
        self._ProcFilePrivilege = ProcFilePrivilege

    @property
    def ParentProcName(self):
        r"""父进程名
        :rtype: str
        """
        return self._ParentProcName

    @ParentProcName.setter
    def ParentProcName(self, ParentProcName):
        self._ParentProcName = ParentProcName

    @property
    def ParentProcUser(self):
        r"""父进程用户名
        :rtype: str
        """
        return self._ParentProcUser

    @ParentProcUser.setter
    def ParentProcUser(self, ParentProcUser):
        self._ParentProcUser = ParentProcUser

    @property
    def ParentProcGroup(self):
        r"""父进程用户组
        :rtype: str
        """
        return self._ParentProcGroup

    @ParentProcGroup.setter
    def ParentProcGroup(self, ParentProcGroup):
        self._ParentProcGroup = ParentProcGroup

    @property
    def ParentProcPath(self):
        r"""父进程路径
        :rtype: str
        """
        return self._ParentProcPath

    @ParentProcPath.setter
    def ParentProcPath(self, ParentProcPath):
        self._ParentProcPath = ParentProcPath

    @property
    def ProcTree(self):
        r"""进程树
        :rtype: str
        """
        return self._ProcTree

    @ProcTree.setter
    def ProcTree(self, ProcTree):
        self._ProcTree = ProcTree

    @property
    def Status(self):
        r"""处理状态：0-待处理 2-白名单 3-已处理 4-已忽略
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""发生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        r"""机器名
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Pid(self):
        r"""进程id
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Count(self):
        r"""告警数量
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    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")
        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 PrivilegeEventInfo(AbstractModel):
    r"""本地提权数据

    """

    def __init__(self):
        r"""
        :param _Id: 数据ID
        :type Id: int
        :param _Uuid: 主机安全uuid
        :type Uuid: str
        :param _Quuid: 主机uuid
        :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
        :param _Count: 告警数量
        :type Count: 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._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
        self._Count = None

    @property
    def Id(self):
        r"""数据ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机安全uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def FullPath(self):
        r"""进程路径
        :rtype: str
        """
        return self._FullPath

    @FullPath.setter
    def FullPath(self, FullPath):
        self._FullPath = FullPath

    @property
    def CmdLine(self):
        r"""执行命令
        :rtype: str
        """
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def UserName(self):
        r"""用户名
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        r"""用户组
        :rtype: str
        """
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ProcFilePrivilege(self):
        r"""进程文件权限
        :rtype: str
        """
        return self._ProcFilePrivilege

    @ProcFilePrivilege.setter
    def ProcFilePrivilege(self, ProcFilePrivilege):
        self._ProcFilePrivilege = ProcFilePrivilege

    @property
    def ParentProcName(self):
        r"""父进程名
        :rtype: str
        """
        return self._ParentProcName

    @ParentProcName.setter
    def ParentProcName(self, ParentProcName):
        self._ParentProcName = ParentProcName

    @property
    def ParentProcUser(self):
        r"""父进程用户名
        :rtype: str
        """
        return self._ParentProcUser

    @ParentProcUser.setter
    def ParentProcUser(self, ParentProcUser):
        self._ParentProcUser = ParentProcUser

    @property
    def ParentProcGroup(self):
        r"""父进程用户组
        :rtype: str
        """
        return self._ParentProcGroup

    @ParentProcGroup.setter
    def ParentProcGroup(self, ParentProcGroup):
        self._ParentProcGroup = ParentProcGroup

    @property
    def ParentProcPath(self):
        r"""父进程路径
        :rtype: str
        """
        return self._ParentProcPath

    @ParentProcPath.setter
    def ParentProcPath(self, ParentProcPath):
        self._ParentProcPath = ParentProcPath

    @property
    def PsTree(self):
        r"""进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :rtype: str
        """
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def Status(self):
        r"""处理状态：0-待处理 2-白名单 3-已处理 4-已忽略
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""发生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        r"""机器名
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def SuggestScheme(self):
        r"""建议方案
        :rtype: str
        """
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def HarmDescribe(self):
        r"""危害描述信息
        :rtype: str
        """
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def Tags(self):
        r"""标签
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def References(self):
        r"""参考链接
        :rtype: list of str
        """
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def MachineWanIp(self):
        r"""主机外网ip
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def NewCaps(self):
        r"""权限列表|隔开
        :rtype: str
        """
        return self._NewCaps

    @NewCaps.setter
    def NewCaps(self, NewCaps):
        self._NewCaps = NewCaps

    @property
    def MachineStatus(self):
        r"""主机在线状态 OFFLINE  ONLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def ModifyTime(self):
        r"""处理时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Count(self):
        r"""告警数量
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    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")
        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 PrivilegeRule(AbstractModel):
    r"""本地提权规则

    """

    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):
        r"""规则ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""客户端ID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def SMode(self):
        r"""是否S权限
        :rtype: int
        """
        return self._SMode

    @SMode.setter
    def SMode(self, SMode):
        self._SMode = SMode

    @property
    def Operator(self):
        r"""操作人
        :rtype: str
        """
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def IsGlobal(self):
        r"""是否全局规则
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        r"""状态(0: 有效 1: 无效)
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Hostip(self):
        r"""主机IP
        :rtype: str
        """
        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):
    r"""进程数据统计数据。

    """

    def __init__(self):
        r"""
        :param _ProcessName: 进程名。
        :type ProcessName: str
        :param _MachineNum: 主机数量。
        :type MachineNum: int
        """
        self._ProcessName = None
        self._MachineNum = None

    @property
    def ProcessName(self):
        r"""进程名。
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def MachineNum(self):
        r"""主机数量。
        :rtype: int
        """
        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):
    r"""产品试用状态查询接口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):
        r"""防护状态，1未防护，2防护中，3试用中，4已过期
        :rtype: int
        """
        return self._FWUserStatus

    @FWUserStatus.setter
    def FWUserStatus(self, FWUserStatus):
        self._FWUserStatus = FWUserStatus

    @property
    def CanApplyTrial(self):
        r"""是否可以申请试用，true可以申请
        :rtype: bool
        """
        return self._CanApplyTrial

    @CanApplyTrial.setter
    def CanApplyTrial(self, CanApplyTrial):
        self._CanApplyTrial = CanApplyTrial

    @property
    def CanNotApplyReason(self):
        r"""无法试用原因，可试用为空
        :rtype: str
        """
        return self._CanNotApplyReason

    @CanNotApplyReason.setter
    def CanNotApplyReason(self, CanNotApplyReason):
        self._CanNotApplyReason = CanNotApplyReason

    @property
    def LastTrialTime(self):
        r"""上次试用结束时间（不存在试用记录则为空）
        :rtype: str
        """
        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):
    r"""防护目录列表集

    """

    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: 首次开启防护时间
        :type FirstProtectTime: str
        :param _LatestProtectTime: 最近开启防护时间
        :type LatestProtectTime: str
        :param _ProtectFileType: 防护文件类型
        :type ProtectFileType: str
        :param _ProtectFilesCount: 防护文件总数
        :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):
        r"""网站名称
        :rtype: str
        """
        return self._DirName

    @DirName.setter
    def DirName(self, DirName):
        self._DirName = DirName

    @property
    def DirPath(self):
        r"""网站防护目录地址
        :rtype: str
        """
        return self._DirPath

    @DirPath.setter
    def DirPath(self, DirPath):
        self._DirPath = DirPath

    @property
    def RelatedServerNum(self):
        r"""关联服务器数
        :rtype: int
        """
        return self._RelatedServerNum

    @RelatedServerNum.setter
    def RelatedServerNum(self, RelatedServerNum):
        self._RelatedServerNum = RelatedServerNum

    @property
    def ProtectServerNum(self):
        r"""防护服务器数
        :rtype: int
        """
        return self._ProtectServerNum

    @ProtectServerNum.setter
    def ProtectServerNum(self, ProtectServerNum):
        self._ProtectServerNum = ProtectServerNum

    @property
    def NoProtectServerNum(self):
        r"""未防护服务器数
        :rtype: int
        """
        return self._NoProtectServerNum

    @NoProtectServerNum.setter
    def NoProtectServerNum(self, NoProtectServerNum):
        self._NoProtectServerNum = NoProtectServerNum

    @property
    def Id(self):
        r"""唯一ID
        :rtype: str
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def ProtectStatus(self):
        r"""防护状态
        :rtype: int
        """
        return self._ProtectStatus

    @ProtectStatus.setter
    def ProtectStatus(self, ProtectStatus):
        self._ProtectStatus = ProtectStatus

    @property
    def ProtectException(self):
        r"""防护异常
        :rtype: int
        """
        return self._ProtectException

    @ProtectException.setter
    def ProtectException(self, ProtectException):
        self._ProtectException = ProtectException

    @property
    def AutoRestoreSwitchStatus(self):
        r"""自动恢复开关 (Filters 过滤Quuid 时 返回) 默认0
        :rtype: int
        """
        return self._AutoRestoreSwitchStatus

    @AutoRestoreSwitchStatus.setter
    def AutoRestoreSwitchStatus(self, AutoRestoreSwitchStatus):
        self._AutoRestoreSwitchStatus = AutoRestoreSwitchStatus

    @property
    def FirstProtectTime(self):
        r"""首次开启防护时间
        :rtype: str
        """
        return self._FirstProtectTime

    @FirstProtectTime.setter
    def FirstProtectTime(self, FirstProtectTime):
        self._FirstProtectTime = FirstProtectTime

    @property
    def LatestProtectTime(self):
        r"""最近开启防护时间
        :rtype: str
        """
        return self._LatestProtectTime

    @LatestProtectTime.setter
    def LatestProtectTime(self, LatestProtectTime):
        self._LatestProtectTime = LatestProtectTime

    @property
    def ProtectFileType(self):
        r"""防护文件类型
        :rtype: str
        """
        return self._ProtectFileType

    @ProtectFileType.setter
    def ProtectFileType(self, ProtectFileType):
        self._ProtectFileType = ProtectFileType

    @property
    def ProtectFilesCount(self):
        r"""防护文件总数
        :rtype: int
        """
        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):
    r"""防护目录关联服务器列表信息

    """

    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: 主机额外信息
        :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):
        r"""唯一ID
        :rtype: str
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def HostName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def MachineOs(self):
        r"""服务器系统
        :rtype: str
        """
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def RelateDirNum(self):
        r"""关联目录数
        :rtype: int
        """
        return self._RelateDirNum

    @RelateDirNum.setter
    def RelateDirNum(self, RelateDirNum):
        self._RelateDirNum = RelateDirNum

    @property
    def ProtectStatus(self):
        r"""防护状态
        :rtype: int
        """
        return self._ProtectStatus

    @ProtectStatus.setter
    def ProtectStatus(self, ProtectStatus):
        self._ProtectStatus = ProtectStatus

    @property
    def ProtectSwitch(self):
        r"""防护开关
        :rtype: int
        """
        return self._ProtectSwitch

    @ProtectSwitch.setter
    def ProtectSwitch(self, ProtectSwitch):
        self._ProtectSwitch = ProtectSwitch

    @property
    def AutoRestoreSwitchStatus(self):
        r"""自动恢复开关
        :rtype: int
        """
        return self._AutoRestoreSwitchStatus

    @AutoRestoreSwitchStatus.setter
    def AutoRestoreSwitchStatus(self, AutoRestoreSwitchStatus):
        self._AutoRestoreSwitchStatus = AutoRestoreSwitchStatus

    @property
    def Quuid(self):
        r"""服务器唯一ID
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Authorization(self):
        r"""是否已经授权
        :rtype: bool
        """
        return self._Authorization

    @Authorization.setter
    def Authorization(self, Authorization):
        self._Authorization = Authorization

    @property
    def Exception(self):
        r"""异常状态
        :rtype: int
        """
        return self._Exception

    @Exception.setter
    def Exception(self, Exception):
        self._Exception = Exception

    @property
    def Progress(self):
        r"""过渡进度
        :rtype: int
        """
        return self._Progress

    @Progress.setter
    def Progress(self, Progress):
        self._Progress = Progress

    @property
    def ExceptionMessage(self):
        r"""异常信息
        :rtype: str
        """
        return self._ExceptionMessage

    @ExceptionMessage.setter
    def ExceptionMessage(self, ExceptionMessage):
        self._ExceptionMessage = ExceptionMessage

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""防护事件列表信息

    """

    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: 主机额外信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Quuid: 机器实例uuid
        :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):
        r"""服务器名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""服务器ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def EventDir(self):
        r"""事件地址
        :rtype: str
        """
        return self._EventDir

    @EventDir.setter
    def EventDir(self, EventDir):
        self._EventDir = EventDir

    @property
    def EventType(self):
        r"""事件类型 0-内容被修改恢复；1-权限被修改恢复；2-归属被修改恢复；3-被删除恢复；4-新增删除
        :rtype: int
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def EventStatus(self):
        r"""事件状态 1 已恢复 0 未恢复
        :rtype: int
        """
        return self._EventStatus

    @EventStatus.setter
    def EventStatus(self, EventStatus):
        self._EventStatus = EventStatus

    @property
    def CreateTime(self):
        r"""发现时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RestoreTime(self):
        r"""恢复时间
        :rtype: str
        """
        return self._RestoreTime

    @RestoreTime.setter
    def RestoreTime(self, RestoreTime):
        self._RestoreTime = RestoreTime

    @property
    def Id(self):
        r"""唯一ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def FileType(self):
        r"""文件类型 0-常规文件；1-目录；2-软链
        :rtype: int
        """
        return self._FileType

    @FileType.setter
    def FileType(self, FileType):
        self._FileType = FileType

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Quuid(self):
        r"""机器实例uuid
        :rtype: str
        """
        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):
    r"""防护机器信息

    """

    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):
        r"""机器唯一ID
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def ProtectSwitch(self):
        r"""防护开关 0  关闭 1开启
        :rtype: int
        """
        return self._ProtectSwitch

    @ProtectSwitch.setter
    def ProtectSwitch(self, ProtectSwitch):
        self._ProtectSwitch = ProtectSwitch

    @property
    def AutoRecovery(self):
        r"""自动恢复开关 0 关闭 1开启
        :rtype: int
        """
        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):
    r"""机器授权到期信息

    """

    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):
        r"""机器名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""机器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def SafeguardDirNum(self):
        r"""防护目录数
        :rtype: int
        """
        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):
    r"""授权机器信息

    """

    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):
        r"""机器名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""机器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def CreateTime(self):
        r"""开通时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ExpireTime(self):
        r"""到期时间
        :rtype: str
        """
        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 ProtectStat(AbstractModel):
    r"""防护信息统计

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Num: 数量
        :type Num: int
        """
        self._Name = None
        self._Num = None

    @property
    def Name(self):
        r"""名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Num(self):
        r"""数量
        :rtype: int
        """
        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):
    r"""主机快照备份列表

    """

    def __init__(self):
        r"""
        :param _BackupTime: 备份时间
        :type BackupTime: str
        :param _EventStatus: 勒索状态：0无告警, 1有告警
        :type EventStatus: int
        :param _BackupStatus: 备份状态：0备份中，1正常，2、3失败，4快照已过期，5快照数量超出限制，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):
        r"""备份时间
        :rtype: str
        """
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime

    @property
    def EventStatus(self):
        r"""勒索状态：0无告警, 1有告警
        :rtype: int
        """
        return self._EventStatus

    @EventStatus.setter
    def EventStatus(self, EventStatus):
        self._EventStatus = EventStatus

    @property
    def BackupStatus(self):
        r"""备份状态：0备份中，1正常，2、3失败，4快照已过期，5快照数量超出限制，9快照已删除
        :rtype: int
        """
        return self._BackupStatus

    @BackupStatus.setter
    def BackupStatus(self, BackupStatus):
        self._BackupStatus = BackupStatus

    @property
    def DiskCount(self):
        r"""备份磁盘数量
        :rtype: int
        """
        return self._DiskCount

    @DiskCount.setter
    def DiskCount(self, DiskCount):
        self._DiskCount = DiskCount

    @property
    def Disks(self):
        r"""硬盘信息，；分隔
        :rtype: str
        """
        return self._Disks

    @Disks.setter
    def Disks(self, Disks):
        self._Disks = Disks

    @property
    def SnapshotIds(self):
        r"""快照列表，；分隔
        :rtype: str
        """
        return self._SnapshotIds

    @SnapshotIds.setter
    def SnapshotIds(self, SnapshotIds):
        self._SnapshotIds = SnapshotIds

    @property
    def StrategyId(self):
        r"""策略id
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def StrategyStatus(self):
        r"""策略状态:0关闭，1开启，9已删除
        :rtype: int
        """
        return self._StrategyStatus

    @StrategyStatus.setter
    def StrategyStatus(self, StrategyStatus):
        self._StrategyStatus = StrategyStatus

    @property
    def StrategyName(self):
        r"""策略名称
        :rtype: str
        """
        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):
    r"""防勒索诱饵篡改事件

    """

    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):
        r"""事件id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""cvm uuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostName(self):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def Status(self):
        r"""事件状态 0待处理，1已处理，2已信任，3处理中，4已恢复备份
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def BaitFilePath(self):
        r"""被篡改文件路径
        :rtype: str
        """
        return self._BaitFilePath

    @BaitFilePath.setter
    def BaitFilePath(self, BaitFilePath):
        self._BaitFilePath = BaitFilePath

    @property
    def FilePath(self):
        r"""恶意文件路径
        :rtype: str
        """
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def Pid(self):
        r"""恶意进程id
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def PidParam(self):
        r"""恶意进程参数
        :rtype: str
        """
        return self._PidParam

    @PidParam.setter
    def PidParam(self, PidParam):
        self._PidParam = PidParam

    @property
    def FileSize(self):
        r"""恶意文件大小
        :rtype: int
        """
        return self._FileSize

    @FileSize.setter
    def FileSize(self, FileSize):
        self._FileSize = FileSize

    @property
    def FileMd5(self):
        r"""恶意文件md5
        :rtype: str
        """
        return self._FileMd5

    @FileMd5.setter
    def FileMd5(self, FileMd5):
        self._FileMd5 = FileMd5

    @property
    def Type(self):
        r"""事件类型：0加密勒索，1文件篡改
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def CreateTime(self):
        r"""事件发送时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def InstanceId(self):
        r"""cvm 实例id
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def ModifyTime(self):
        r"""事件修改事件
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def StrategyId(self):
        r"""策略id
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def StrategyName(self):
        r"""策略名称
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def HostIp(self):
        r"""主机外网ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        r"""主机内网ip
        :rtype: str
        """
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def PsTree(self):
        r"""进程树 base64 json
        :rtype: str
        """
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def ProcessStartTime(self):
        r"""进程启动时间
        :rtype: str
        """
        return self._ProcessStartTime

    @ProcessStartTime.setter
    def ProcessStartTime(self, ProcessStartTime):
        self._ProcessStartTime = ProcessStartTime

    @property
    def SnapshotNum(self):
        r"""主机拥有快照备份数
        :rtype: int
        """
        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):
    r"""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):
        r"""快照时间
        :rtype: str
        """
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def DiskInfo(self):
        r"""需要回滚的硬盘信息，硬盘直接用;分隔，留空为全部已快照磁盘： disk-id1|disk-name1;disk-id2|disk-name2
        :rtype: str
        """
        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):
    r"""RansomDefenseRollback返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RansomDefenseRollbackTask(AbstractModel):
    r"""防勒索回滚任务

    """

    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`
        :param _InstanceId: 主机示例ID
        :type InstanceId: str
        :param _MachineType: 主机类型
        :type MachineType: str
        """
        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
        self._InstanceId = None
        self._MachineType = None

    @property
    def Id(self):
        r"""任务ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Status(self):
        r"""回滚任务状态：0进行中，1成功，2失败
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Disks(self):
        r"""硬盘id列表，;分隔
        :rtype: str
        """
        return self._Disks

    @Disks.setter
    def Disks(self, Disks):
        self._Disks = Disks

    @property
    def CreateTime(self):
        r"""操作时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def BackupTime(self):
        r"""快照时间
        :rtype: str
        """
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime

    @property
    def ModifyTime(self):
        r"""Status!=0时为完成时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RegionInfo(self):
        r"""可用区信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        """
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def InstanceId(self):
        r"""主机示例ID
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def MachineType(self):
        r"""主机类型
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType


    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"))
        self._InstanceId = params.get("InstanceId")
        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 RansomDefenseStrategy(AbstractModel):
    r"""主机列表查询接口相应数据HostList的TagList节点

    """

    def __init__(self):
        r"""
        :param _Id: 策略id
        :type Id: int
        :param _Uin: 操作uin
        :type Uin: str
        :param _Name: 策略名称
        :type Name: str
        :param _Description: 策略备注
        :type Description: str
        :param _Status: 开启状态：0关闭，1开启
        :type Status: int
        :param _IsAll: 是否对所有主机生效
        :type IsAll: int
        :param _IncludeDir: 包含目录，用;分隔
        :type IncludeDir: str
        :param _ExcludeDir: 包含目录，用;分隔
        :type ExcludeDir: str
        :param _BackupType: 备份模式： 0按周，1按天，2不备份
        :type BackupType: int
        :param _Weekday: 备份星期天数（1-7）：1;2;3;4
        :type Weekday: str
        :param _Hour: 备份执行时间点(0-23): 11:00;12:00
        :type Hour: str
        :param _SaveDay: 保存天数，0永久保存
        :type SaveDay: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 最近修改时间
        :type ModifyTime: str
        :param _MachineCount: 绑定机器数
        :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):
        r"""策略id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uin(self):
        r"""操作uin
        :rtype: str
        """
        return self._Uin

    @Uin.setter
    def Uin(self, Uin):
        self._Uin = Uin

    @property
    def Name(self):
        r"""策略名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Description(self):
        r"""策略备注
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Status(self):
        r"""开启状态：0关闭，1开启
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IsAll(self):
        r"""是否对所有主机生效
        :rtype: int
        """
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def IncludeDir(self):
        r"""包含目录，用;分隔
        :rtype: str
        """
        return self._IncludeDir

    @IncludeDir.setter
    def IncludeDir(self, IncludeDir):
        self._IncludeDir = IncludeDir

    @property
    def ExcludeDir(self):
        r"""包含目录，用;分隔
        :rtype: str
        """
        return self._ExcludeDir

    @ExcludeDir.setter
    def ExcludeDir(self, ExcludeDir):
        self._ExcludeDir = ExcludeDir

    @property
    def BackupType(self):
        r"""备份模式： 0按周，1按天，2不备份
        :rtype: int
        """
        return self._BackupType

    @BackupType.setter
    def BackupType(self, BackupType):
        self._BackupType = BackupType

    @property
    def Weekday(self):
        r"""备份星期天数（1-7）：1;2;3;4
        :rtype: str
        """
        return self._Weekday

    @Weekday.setter
    def Weekday(self, Weekday):
        self._Weekday = Weekday

    @property
    def Hour(self):
        r"""备份执行时间点(0-23): 11:00;12:00
        :rtype: str
        """
        return self._Hour

    @Hour.setter
    def Hour(self, Hour):
        self._Hour = Hour

    @property
    def SaveDay(self):
        r"""保存天数，0永久保存
        :rtype: int
        """
        return self._SaveDay

    @SaveDay.setter
    def SaveDay(self, SaveDay):
        self._SaveDay = SaveDay

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""最近修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def MachineCount(self):
        r"""绑定机器数
        :rtype: int
        """
        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):
    r"""主机列表查询接口相应数据HostList的TagList节点

    """

    def __init__(self):
        r"""
        :param _Id: 策略id
        :type Id: int
        :param _Uin: 操作uin
        :type Uin: str
        :param _Name: 策略名称
        :type Name: str
        :param _Description: 策略备注
        :type Description: str
        :param _Status: 开启状态：0关闭，1开启
        :type Status: int
        :param _IsAll: 是否对所有主机生效
        :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;3;4
        :type Weekday: str
        :param _Hour: 备份执行时间点(0-23): 11:00;12:00
        :type Hour: str
        :param _SaveDay: 保存天数，0永久保存
        :type SaveDay: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 最近修改时间
        :type ModifyTime: str
        :param _MachineCount: 绑定机器数
        :type MachineCount: int
        :param _EventCount: 策略关联事件数
        :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):
        r"""策略id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uin(self):
        r"""操作uin
        :rtype: str
        """
        return self._Uin

    @Uin.setter
    def Uin(self, Uin):
        self._Uin = Uin

    @property
    def Name(self):
        r"""策略名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Description(self):
        r"""策略备注
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Status(self):
        r"""开启状态：0关闭，1开启
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IsAll(self):
        r"""是否对所有主机生效
        :rtype: int
        """
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def IncludeDir(self):
        r"""包含目录，用;分隔
        :rtype: str
        """
        return self._IncludeDir

    @IncludeDir.setter
    def IncludeDir(self, IncludeDir):
        self._IncludeDir = IncludeDir

    @property
    def ExcludeDir(self):
        r"""包含目录，用;分隔
        :rtype: str
        """
        return self._ExcludeDir

    @ExcludeDir.setter
    def ExcludeDir(self, ExcludeDir):
        self._ExcludeDir = ExcludeDir

    @property
    def BackupType(self):
        r"""备份模式： 0按周，1按天
        :rtype: int
        """
        return self._BackupType

    @BackupType.setter
    def BackupType(self, BackupType):
        self._BackupType = BackupType

    @property
    def Weekday(self):
        r"""备份星期天数（1-7）：1;2;3;4
        :rtype: str
        """
        return self._Weekday

    @Weekday.setter
    def Weekday(self, Weekday):
        self._Weekday = Weekday

    @property
    def Hour(self):
        r"""备份执行时间点(0-23): 11:00;12:00
        :rtype: str
        """
        return self._Hour

    @Hour.setter
    def Hour(self, Hour):
        self._Hour = Hour

    @property
    def SaveDay(self):
        r"""保存天数，0永久保存
        :rtype: int
        """
        return self._SaveDay

    @SaveDay.setter
    def SaveDay(self, SaveDay):
        self._SaveDay = SaveDay

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""最近修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def MachineCount(self):
        r"""绑定机器数
        :rtype: int
        """
        return self._MachineCount

    @MachineCount.setter
    def MachineCount(self, MachineCount):
        self._MachineCount = MachineCount

    @property
    def EventCount(self):
        r"""策略关联事件数
        :rtype: int
        """
        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):
    r"""防勒索策略绑定主机备份详情

    """

    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
        :type MachineWanIp: str
        :param _CloudTags: 云标签
        :type CloudTags: list of Tag
        :param _RegionInfo: 可用区信息
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        :param _Tag: 主机安全标签
        :type Tag: list of MachineTag
        :param _Status: 防护状态：0关闭，1开启
        :type Status: int
        :param _StrategyId: 策略id，为0时未绑定策略
        :type StrategyId: int
        :param _DiskInfo: 硬盘信息，为空时所有硬盘生效：
;分割 diskId1|diskName1;diskId2|diskName2
        :type DiskInfo: str
        :param _StrategyName: 策略名称
        :type StrategyName: str
        :param _BackupCount: 备份数量
        :type BackupCount: int
        :param _LastBackupStatus: 最近一次备份状态：0备份中，1正常，2失败，9暂无备份
        :type LastBackupStatus: int
        :param _LastBackupMessage: 最近一次备份失败原因
        :type LastBackupMessage: str
        :param _LastBackupTime: 最近一次备份时间
        :type LastBackupTime: str
        :param _RollBackPercent: 最近一次回滚进度百分比
        :type RollBackPercent: int
        :param _RollBackStatus: 最近一次回滚状态：0进行中，1成功，2失败
        :type RollBackStatus: int
        :param _BackupSuccessCount: 备份成功次数
        :type BackupSuccessCount: int
        :param _HostVersion: 版本信息：0-基础版 1-专业版 2-旗舰版 3-轻量版
        :type HostVersion: int
        :param _MachineType: 机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :type MachineType: 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._StrategyName = None
        self._BackupCount = None
        self._LastBackupStatus = None
        self._LastBackupMessage = None
        self._LastBackupTime = None
        self._RollBackPercent = None
        self._RollBackStatus = None
        self._BackupSuccessCount = None
        self._HostVersion = None
        self._MachineType = None

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def InstanceId(self):
        r"""主机实例id
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def MachineIp(self):
        r"""内网ip
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        r"""外网ip
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def CloudTags(self):
        r"""云标签
        :rtype: list of Tag
        """
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def RegionInfo(self):
        r"""可用区信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        """
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def Tag(self):
        r"""主机安全标签
        :rtype: list of MachineTag
        """
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Status(self):
        r"""防护状态：0关闭，1开启
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StrategyId(self):
        r"""策略id，为0时未绑定策略
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def DiskInfo(self):
        r"""硬盘信息，为空时所有硬盘生效：
;分割 diskId1|diskName1;diskId2|diskName2
        :rtype: str
        """
        return self._DiskInfo

    @DiskInfo.setter
    def DiskInfo(self, DiskInfo):
        self._DiskInfo = DiskInfo

    @property
    def StrategyName(self):
        r"""策略名称
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def BackupCount(self):
        r"""备份数量
        :rtype: int
        """
        return self._BackupCount

    @BackupCount.setter
    def BackupCount(self, BackupCount):
        self._BackupCount = BackupCount

    @property
    def LastBackupStatus(self):
        r"""最近一次备份状态：0备份中，1正常，2失败，9暂无备份
        :rtype: int
        """
        return self._LastBackupStatus

    @LastBackupStatus.setter
    def LastBackupStatus(self, LastBackupStatus):
        self._LastBackupStatus = LastBackupStatus

    @property
    def LastBackupMessage(self):
        r"""最近一次备份失败原因
        :rtype: str
        """
        return self._LastBackupMessage

    @LastBackupMessage.setter
    def LastBackupMessage(self, LastBackupMessage):
        self._LastBackupMessage = LastBackupMessage

    @property
    def LastBackupTime(self):
        r"""最近一次备份时间
        :rtype: str
        """
        return self._LastBackupTime

    @LastBackupTime.setter
    def LastBackupTime(self, LastBackupTime):
        self._LastBackupTime = LastBackupTime

    @property
    def RollBackPercent(self):
        r"""最近一次回滚进度百分比
        :rtype: int
        """
        return self._RollBackPercent

    @RollBackPercent.setter
    def RollBackPercent(self, RollBackPercent):
        self._RollBackPercent = RollBackPercent

    @property
    def RollBackStatus(self):
        r"""最近一次回滚状态：0进行中，1成功，2失败
        :rtype: int
        """
        return self._RollBackStatus

    @RollBackStatus.setter
    def RollBackStatus(self, RollBackStatus):
        self._RollBackStatus = RollBackStatus

    @property
    def BackupSuccessCount(self):
        r"""备份成功次数
        :rtype: int
        """
        return self._BackupSuccessCount

    @BackupSuccessCount.setter
    def BackupSuccessCount(self, BackupSuccessCount):
        self._BackupSuccessCount = BackupSuccessCount

    @property
    def HostVersion(self):
        r"""版本信息：0-基础版 1-专业版 2-旗舰版 3-轻量版
        :rtype: int
        """
        return self._HostVersion

    @HostVersion.setter
    def HostVersion(self, HostVersion):
        self._HostVersion = HostVersion

    @property
    def MachineType(self):
        r"""机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType


    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")
        self._HostVersion = params.get("HostVersion")
        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 RansomDefenseStrategyMachineDetail(AbstractModel):
    r"""防勒索主机列表

    """

    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
        :type MachineWanIp: str
        :param _CloudTags: 云标签
        :type CloudTags: list of Tag
        :param _RegionInfo: 可用区信息
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        :param _Tag: 主机安全标签
        :type Tag: list of MachineTag
        :param _Status: 防护状态：0关闭，1开启
        :type Status: int
        :param _StrategyId: 策略id，为0时未绑定策略
        :type StrategyId: int
        :param _DiskInfo: 硬盘信息，为空时所有硬盘生效：
;分割 diskId1|diskName1;diskId2|diskName2
        :type DiskInfo: str
        :param _HostVersion: 版本信息：0-基础版 1-专业版 2-旗舰版 3-轻量版
        :type HostVersion: int
        :param _StrategyName: 策略名称
        :type StrategyName: str
        :param _MachineType: 机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :type MachineType: 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
        self._MachineType = None

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def InstanceId(self):
        r"""主机实例id
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def MachineIp(self):
        r"""内网ip
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        r"""外网ip
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def CloudTags(self):
        r"""云标签
        :rtype: list of Tag
        """
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def RegionInfo(self):
        r"""可用区信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        """
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def Tag(self):
        r"""主机安全标签
        :rtype: list of MachineTag
        """
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Status(self):
        r"""防护状态：0关闭，1开启
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StrategyId(self):
        r"""策略id，为0时未绑定策略
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def DiskInfo(self):
        r"""硬盘信息，为空时所有硬盘生效：
;分割 diskId1|diskName1;diskId2|diskName2
        :rtype: str
        """
        return self._DiskInfo

    @DiskInfo.setter
    def DiskInfo(self, DiskInfo):
        self._DiskInfo = DiskInfo

    @property
    def HostVersion(self):
        r"""版本信息：0-基础版 1-专业版 2-旗舰版 3-轻量版
        :rtype: int
        """
        return self._HostVersion

    @HostVersion.setter
    def HostVersion(self, HostVersion):
        self._HostVersion = HostVersion

    @property
    def StrategyName(self):
        r"""策略名称
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def MachineType(self):
        r"""机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType


    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")
        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 RansomDefenseStrategyMachineInfo(AbstractModel):
    r"""防勒索机器硬盘配置

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _DiskInfo: 指定硬盘列表，为空时表示所有硬盘：disk_id1|disk_name1;disk_id2|disk_name2
        :type DiskInfo: str
        """
        self._Uuid = None
        self._DiskInfo = None

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def DiskInfo(self):
        r"""指定硬盘列表，为空时表示所有硬盘：disk_id1|disk_name1;disk_id2|disk_name2
        :rtype: str
        """
        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 RaspAttackTypeListItem(AbstractModel):
    r"""应用防护白名单攻击类型列表

    """

    def __init__(self):
        r"""
        :param _AttackTypeName: 攻击类型名称
        :type AttackTypeName: str
        :param _AttackTypeID: 攻击类型ID
        :type AttackTypeID: int
        :param _Source: 漏洞对应的功能类型，rasp:漏洞防御,memshell_inject:内存马注入
        :type Source: str
        """
        self._AttackTypeName = None
        self._AttackTypeID = None
        self._Source = None

    @property
    def AttackTypeName(self):
        r"""攻击类型名称
        :rtype: str
        """
        return self._AttackTypeName

    @AttackTypeName.setter
    def AttackTypeName(self, AttackTypeName):
        self._AttackTypeName = AttackTypeName

    @property
    def AttackTypeID(self):
        r"""攻击类型ID
        :rtype: int
        """
        return self._AttackTypeID

    @AttackTypeID.setter
    def AttackTypeID(self, AttackTypeID):
        self._AttackTypeID = AttackTypeID

    @property
    def Source(self):
        r"""漏洞对应的功能类型，rasp:漏洞防御,memshell_inject:内存马注入
        :rtype: str
        """
        return self._Source

    @Source.setter
    def Source(self, Source):
        self._Source = Source


    def _deserialize(self, params):
        self._AttackTypeName = params.get("AttackTypeName")
        self._AttackTypeID = params.get("AttackTypeID")
        self._Source = params.get("Source")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RaspEvent(AbstractModel):
    r"""应用防护事件

    """

    def __init__(self):
        r"""
        :param _Id: 漏洞事件id
        :type Id: int
        :param _Uuid: 机器uuid
        :type Uuid: str
        :param _Quuid: 机器quuid
        :type Quuid: str
        :param _Alias: 主机名
        :type Alias: str
        :param _InstanceID: 实例id
        :type InstanceID: str
        :param _PrivateIp: 内网ip
        :type PrivateIp: str
        :param _PublicIp: 公网ip
        :type PublicIp: str
        :param _VulId: 漏洞ID
        :type VulId: int
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _CveId: cve编号
        :type CveId: str
        :param _SourceIp: 攻击源ip
        :type SourceIp: str
        :param _City: 攻击源ip地址所在城市
        :type City: str
        :param _AttackPort: 被攻击的端口
        :type AttackPort: int
        :param _CreateTime: 首次攻击时间
        :type CreateTime: str
        :param _MergeTime: 最近攻击时间
        :type MergeTime: str
        :param _Count: 攻击次数
        :type Count: int
        :param _Status: 状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除 5: 已加白
        :type Status: int
        :param _AttackTypeName: 应用攻击类型
        :type AttackTypeName: str
        :param _AttackType: 应用攻击类型id
        :type AttackType: int
        :param _NodeName: 节点名称
        :type NodeName: str
        :param _NodeId: 节点id
        :type NodeId: str
        :param _ContainerName: 容器名称
        :type ContainerName: str
        :param _ContainerId: 容器id
        :type ContainerId: str
        :param _ContainerStatus: 容器运行状态
        :type ContainerStatus: str
        :param _ContainerNetStatus: 容器隔离状态
        :type ContainerNetStatus: str
        :param _ImageId: 镜像ID
        :type ImageId: str
        :param _ImageName: 镜像名称
        :type ImageName: str
        :param _PodName: pod名称
        :type PodName: str
        :param _PodIp: podip
        :type PodIp: str
        :param _ClusterName: 集群名称
        :type ClusterName: str
        :param _ClusterId: 集群id
        :type ClusterId: str
        :param _RaspDetail: 事件详情，包括poc
        :type RaspDetail: str
        :param _NodeType: 普通节点：NORMAL
超级节点：SUPER
        :type NodeType: str
        :param _EventType: 事件类型 1:攻击时间 2:防御成功
        :type EventType: int
        :param _NodeUniqueID: 超级节点的唯一id
        :type NodeUniqueID: str
        :param _PocID: poc id
        :type PocID: str
        :param _Url: 请求url
        :type Url: str
        :param _Poc: 恶意特征
        :type Poc: str
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._Alias = None
        self._InstanceID = None
        self._PrivateIp = None
        self._PublicIp = None
        self._VulId = None
        self._VulName = None
        self._CveId = None
        self._SourceIp = None
        self._City = None
        self._AttackPort = None
        self._CreateTime = None
        self._MergeTime = None
        self._Count = None
        self._Status = None
        self._AttackTypeName = None
        self._AttackType = None
        self._NodeName = None
        self._NodeId = None
        self._ContainerName = None
        self._ContainerId = None
        self._ContainerStatus = None
        self._ContainerNetStatus = None
        self._ImageId = None
        self._ImageName = None
        self._PodName = None
        self._PodIp = None
        self._ClusterName = None
        self._ClusterId = None
        self._RaspDetail = None
        self._NodeType = None
        self._EventType = None
        self._NodeUniqueID = None
        self._PocID = None
        self._Url = None
        self._Poc = None

    @property
    def Id(self):
        r"""漏洞事件id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""机器uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""机器quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        r"""主机名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def InstanceID(self):
        r"""实例id
        :rtype: str
        """
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def PrivateIp(self):
        r"""内网ip
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        r"""公网ip
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def VulId(self):
        r"""漏洞ID
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def CveId(self):
        r"""cve编号
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def SourceIp(self):
        r"""攻击源ip
        :rtype: str
        """
        return self._SourceIp

    @SourceIp.setter
    def SourceIp(self, SourceIp):
        self._SourceIp = SourceIp

    @property
    def City(self):
        r"""攻击源ip地址所在城市
        :rtype: str
        """
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def AttackPort(self):
        r"""被攻击的端口
        :rtype: int
        """
        return self._AttackPort

    @AttackPort.setter
    def AttackPort(self, AttackPort):
        self._AttackPort = AttackPort

    @property
    def CreateTime(self):
        r"""首次攻击时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MergeTime(self):
        r"""最近攻击时间
        :rtype: str
        """
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Count(self):
        r"""攻击次数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Status(self):
        r"""状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除 5: 已加白
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def AttackTypeName(self):
        r"""应用攻击类型
        :rtype: str
        """
        return self._AttackTypeName

    @AttackTypeName.setter
    def AttackTypeName(self, AttackTypeName):
        self._AttackTypeName = AttackTypeName

    @property
    def AttackType(self):
        r"""应用攻击类型id
        :rtype: int
        """
        return self._AttackType

    @AttackType.setter
    def AttackType(self, AttackType):
        self._AttackType = AttackType

    @property
    def NodeName(self):
        r"""节点名称
        :rtype: str
        """
        return self._NodeName

    @NodeName.setter
    def NodeName(self, NodeName):
        self._NodeName = NodeName

    @property
    def NodeId(self):
        r"""节点id
        :rtype: str
        """
        return self._NodeId

    @NodeId.setter
    def NodeId(self, NodeId):
        self._NodeId = NodeId

    @property
    def ContainerName(self):
        r"""容器名称
        :rtype: str
        """
        return self._ContainerName

    @ContainerName.setter
    def ContainerName(self, ContainerName):
        self._ContainerName = ContainerName

    @property
    def ContainerId(self):
        r"""容器id
        :rtype: str
        """
        return self._ContainerId

    @ContainerId.setter
    def ContainerId(self, ContainerId):
        self._ContainerId = ContainerId

    @property
    def ContainerStatus(self):
        r"""容器运行状态
        :rtype: str
        """
        return self._ContainerStatus

    @ContainerStatus.setter
    def ContainerStatus(self, ContainerStatus):
        self._ContainerStatus = ContainerStatus

    @property
    def ContainerNetStatus(self):
        r"""容器隔离状态
        :rtype: str
        """
        return self._ContainerNetStatus

    @ContainerNetStatus.setter
    def ContainerNetStatus(self, ContainerNetStatus):
        self._ContainerNetStatus = ContainerNetStatus

    @property
    def ImageId(self):
        r"""镜像ID
        :rtype: str
        """
        return self._ImageId

    @ImageId.setter
    def ImageId(self, ImageId):
        self._ImageId = ImageId

    @property
    def ImageName(self):
        r"""镜像名称
        :rtype: str
        """
        return self._ImageName

    @ImageName.setter
    def ImageName(self, ImageName):
        self._ImageName = ImageName

    @property
    def PodName(self):
        r"""pod名称
        :rtype: str
        """
        return self._PodName

    @PodName.setter
    def PodName(self, PodName):
        self._PodName = PodName

    @property
    def PodIp(self):
        r"""podip
        :rtype: str
        """
        return self._PodIp

    @PodIp.setter
    def PodIp(self, PodIp):
        self._PodIp = PodIp

    @property
    def ClusterName(self):
        r"""集群名称
        :rtype: str
        """
        return self._ClusterName

    @ClusterName.setter
    def ClusterName(self, ClusterName):
        self._ClusterName = ClusterName

    @property
    def ClusterId(self):
        r"""集群id
        :rtype: str
        """
        return self._ClusterId

    @ClusterId.setter
    def ClusterId(self, ClusterId):
        self._ClusterId = ClusterId

    @property
    def RaspDetail(self):
        r"""事件详情，包括poc
        :rtype: str
        """
        return self._RaspDetail

    @RaspDetail.setter
    def RaspDetail(self, RaspDetail):
        self._RaspDetail = RaspDetail

    @property
    def NodeType(self):
        r"""普通节点：NORMAL
超级节点：SUPER
        :rtype: str
        """
        return self._NodeType

    @NodeType.setter
    def NodeType(self, NodeType):
        self._NodeType = NodeType

    @property
    def EventType(self):
        r"""事件类型 1:攻击时间 2:防御成功
        :rtype: int
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def NodeUniqueID(self):
        r"""超级节点的唯一id
        :rtype: str
        """
        return self._NodeUniqueID

    @NodeUniqueID.setter
    def NodeUniqueID(self, NodeUniqueID):
        self._NodeUniqueID = NodeUniqueID

    @property
    def PocID(self):
        r"""poc id
        :rtype: str
        """
        return self._PocID

    @PocID.setter
    def PocID(self, PocID):
        self._PocID = PocID

    @property
    def Url(self):
        r"""请求url
        :rtype: str
        """
        return self._Url

    @Url.setter
    def Url(self, Url):
        self._Url = Url

    @property
    def Poc(self):
        r"""恶意特征
        :rtype: str
        """
        return self._Poc

    @Poc.setter
    def Poc(self, Poc):
        self._Poc = Poc


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Alias = params.get("Alias")
        self._InstanceID = params.get("InstanceID")
        self._PrivateIp = params.get("PrivateIp")
        self._PublicIp = params.get("PublicIp")
        self._VulId = params.get("VulId")
        self._VulName = params.get("VulName")
        self._CveId = params.get("CveId")
        self._SourceIp = params.get("SourceIp")
        self._City = params.get("City")
        self._AttackPort = params.get("AttackPort")
        self._CreateTime = params.get("CreateTime")
        self._MergeTime = params.get("MergeTime")
        self._Count = params.get("Count")
        self._Status = params.get("Status")
        self._AttackTypeName = params.get("AttackTypeName")
        self._AttackType = params.get("AttackType")
        self._NodeName = params.get("NodeName")
        self._NodeId = params.get("NodeId")
        self._ContainerName = params.get("ContainerName")
        self._ContainerId = params.get("ContainerId")
        self._ContainerStatus = params.get("ContainerStatus")
        self._ContainerNetStatus = params.get("ContainerNetStatus")
        self._ImageId = params.get("ImageId")
        self._ImageName = params.get("ImageName")
        self._PodName = params.get("PodName")
        self._PodIp = params.get("PodIp")
        self._ClusterName = params.get("ClusterName")
        self._ClusterId = params.get("ClusterId")
        self._RaspDetail = params.get("RaspDetail")
        self._NodeType = params.get("NodeType")
        self._EventType = params.get("EventType")
        self._NodeUniqueID = params.get("NodeUniqueID")
        self._PocID = params.get("PocID")
        self._Url = params.get("Url")
        self._Poc = params.get("Poc")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RaspEventDetail(AbstractModel):
    r"""应用防护事件详情

    """

    def __init__(self):
        r"""
        :param _Id: 漏洞事件id
注意：此字段可能返回 null，表示取不到有效值。
        :type Id: int
        :param _Status: 状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除 5: 已加白
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _Quuid: 机器quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _Alias: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type Alias: str
        :param _InstanceID: 实例id
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceID: str
        :param _PrivateIp: 内网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type PrivateIp: str
        :param _PublicIp: 公网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type PublicIp: str
        :param _HostTags: 资产tag
注意：此字段可能返回 null，表示取不到有效值。
        :type HostTags: list of str
        :param _CreateTime: 首次攻击时间
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        :param _MergeTime: 最近攻击时间
注意：此字段可能返回 null，表示取不到有效值。
        :type MergeTime: str
        :param _AttackTypeName: 应用攻击类型
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackTypeName: str
        :param _AttackType: 应用攻击类型id
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackType: int
        :param _Url: 请求url
注意：此字段可能返回 null，表示取不到有效值。
        :type Url: str
        :param _VulName: 漏洞名称
注意：此字段可能返回 null，表示取不到有效值。
        :type VulName: str
        :param _Count: 攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type Count: int
        :param _CveId: cve编号
注意：此字段可能返回 null，表示取不到有效值。
        :type CveId: str
        :param _SourceIp: 攻击源ip
注意：此字段可能返回 null，表示取不到有效值。
        :type SourceIp: str
        :param _City: 攻击源ip地址所在城市
注意：此字段可能返回 null，表示取不到有效值。
        :type City: str
        :param _AttackPort: 被攻击的端口
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackPort: int
        :param _Description: 漏洞描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _Fix: 修复方式
注意：此字段可能返回 null，表示取不到有效值。
        :type Fix: str
        :param _NetworkPayload: 请求内容
注意：此字段可能返回 null，表示取不到有效值。
        :type NetworkPayload: str
        :param _NodeName: 节点名称
注意：此字段可能返回 null，表示取不到有效值。
        :type NodeName: str
        :param _NodeId: 节点id
注意：此字段可能返回 null，表示取不到有效值。
        :type NodeId: str
        :param _ContainerName: 容器名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ContainerName: str
        :param _ContainerId: 容器id
注意：此字段可能返回 null，表示取不到有效值。
        :type ContainerId: str
        :param _ContainerStatus: 容器运行状态
注意：此字段可能返回 null，表示取不到有效值。
        :type ContainerStatus: str
        :param _ContainerNetStatus: 容器隔离状态
注意：此字段可能返回 null，表示取不到有效值。
        :type ContainerNetStatus: str
        :param _ImageId: 镜像ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ImageId: str
        :param _ImageName: 镜像名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ImageName: str
        :param _PodName: pod名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PodName: str
        :param _PodIp: podip
注意：此字段可能返回 null，表示取不到有效值。
        :type PodIp: str
        :param _ClusterName: 集群名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ClusterName: str
        :param _ClusterId: 集群id
注意：此字段可能返回 null，表示取不到有效值。
        :type ClusterId: str
        :param _Pid: 进程id
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: int
        :param _MainClass: 关联进程主类名
注意：此字段可能返回 null，表示取不到有效值。
        :type MainClass: str
        :param _StackTrace: 堆栈信息
注意：此字段可能返回 null，表示取不到有效值。
        :type StackTrace: str
        :param _RaspDetail: 漏洞ID相关的事件详情(json array格式 rasp特有)
注意：此字段可能返回 null，表示取不到有效值。
        :type RaspDetail: str
        :param _EventType: 入侵状态： 1 攻击事件，2 防御成功
        :type EventType: int
        """
        self._Id = None
        self._Status = None
        self._Quuid = None
        self._Alias = None
        self._InstanceID = None
        self._PrivateIp = None
        self._PublicIp = None
        self._HostTags = None
        self._CreateTime = None
        self._MergeTime = None
        self._AttackTypeName = None
        self._AttackType = None
        self._Url = None
        self._VulName = None
        self._Count = None
        self._CveId = None
        self._SourceIp = None
        self._City = None
        self._AttackPort = None
        self._Description = None
        self._Fix = None
        self._NetworkPayload = None
        self._NodeName = None
        self._NodeId = None
        self._ContainerName = None
        self._ContainerId = None
        self._ContainerStatus = None
        self._ContainerNetStatus = None
        self._ImageId = None
        self._ImageName = None
        self._PodName = None
        self._PodIp = None
        self._ClusterName = None
        self._ClusterId = None
        self._Pid = None
        self._MainClass = None
        self._StackTrace = None
        self._RaspDetail = None
        self._EventType = None

    @property
    def Id(self):
        r"""漏洞事件id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Status(self):
        r"""状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除 5: 已加白
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Quuid(self):
        r"""机器quuid
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        r"""主机名
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def InstanceID(self):
        r"""实例id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def PrivateIp(self):
        r"""内网ip
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        r"""公网ip
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def HostTags(self):
        r"""资产tag
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: list of str
        """
        return self._HostTags

    @HostTags.setter
    def HostTags(self, HostTags):
        self._HostTags = HostTags

    @property
    def CreateTime(self):
        r"""首次攻击时间
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MergeTime(self):
        r"""最近攻击时间
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def AttackTypeName(self):
        r"""应用攻击类型
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._AttackTypeName

    @AttackTypeName.setter
    def AttackTypeName(self, AttackTypeName):
        self._AttackTypeName = AttackTypeName

    @property
    def AttackType(self):
        r"""应用攻击类型id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._AttackType

    @AttackType.setter
    def AttackType(self, AttackType):
        self._AttackType = AttackType

    @property
    def Url(self):
        r"""请求url
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Url

    @Url.setter
    def Url(self, Url):
        self._Url = Url

    @property
    def VulName(self):
        r"""漏洞名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def Count(self):
        r"""攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def CveId(self):
        r"""cve编号
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def SourceIp(self):
        r"""攻击源ip
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._SourceIp

    @SourceIp.setter
    def SourceIp(self, SourceIp):
        self._SourceIp = SourceIp

    @property
    def City(self):
        r"""攻击源ip地址所在城市
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def AttackPort(self):
        r"""被攻击的端口
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._AttackPort

    @AttackPort.setter
    def AttackPort(self, AttackPort):
        self._AttackPort = AttackPort

    @property
    def Description(self):
        r"""漏洞描述
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Fix(self):
        r"""修复方式
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Fix

    @Fix.setter
    def Fix(self, Fix):
        self._Fix = Fix

    @property
    def NetworkPayload(self):
        r"""请求内容
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._NetworkPayload

    @NetworkPayload.setter
    def NetworkPayload(self, NetworkPayload):
        self._NetworkPayload = NetworkPayload

    @property
    def NodeName(self):
        r"""节点名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._NodeName

    @NodeName.setter
    def NodeName(self, NodeName):
        self._NodeName = NodeName

    @property
    def NodeId(self):
        r"""节点id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._NodeId

    @NodeId.setter
    def NodeId(self, NodeId):
        self._NodeId = NodeId

    @property
    def ContainerName(self):
        r"""容器名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ContainerName

    @ContainerName.setter
    def ContainerName(self, ContainerName):
        self._ContainerName = ContainerName

    @property
    def ContainerId(self):
        r"""容器id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ContainerId

    @ContainerId.setter
    def ContainerId(self, ContainerId):
        self._ContainerId = ContainerId

    @property
    def ContainerStatus(self):
        r"""容器运行状态
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ContainerStatus

    @ContainerStatus.setter
    def ContainerStatus(self, ContainerStatus):
        self._ContainerStatus = ContainerStatus

    @property
    def ContainerNetStatus(self):
        r"""容器隔离状态
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ContainerNetStatus

    @ContainerNetStatus.setter
    def ContainerNetStatus(self, ContainerNetStatus):
        self._ContainerNetStatus = ContainerNetStatus

    @property
    def ImageId(self):
        r"""镜像ID
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ImageId

    @ImageId.setter
    def ImageId(self, ImageId):
        self._ImageId = ImageId

    @property
    def ImageName(self):
        r"""镜像名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ImageName

    @ImageName.setter
    def ImageName(self, ImageName):
        self._ImageName = ImageName

    @property
    def PodName(self):
        r"""pod名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PodName

    @PodName.setter
    def PodName(self, PodName):
        self._PodName = PodName

    @property
    def PodIp(self):
        r"""podip
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PodIp

    @PodIp.setter
    def PodIp(self, PodIp):
        self._PodIp = PodIp

    @property
    def ClusterName(self):
        r"""集群名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ClusterName

    @ClusterName.setter
    def ClusterName(self, ClusterName):
        self._ClusterName = ClusterName

    @property
    def ClusterId(self):
        r"""集群id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ClusterId

    @ClusterId.setter
    def ClusterId(self, ClusterId):
        self._ClusterId = ClusterId

    @property
    def Pid(self):
        r"""进程id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def MainClass(self):
        r"""关联进程主类名
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._MainClass

    @MainClass.setter
    def MainClass(self, MainClass):
        self._MainClass = MainClass

    @property
    def StackTrace(self):
        r"""堆栈信息
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._StackTrace

    @StackTrace.setter
    def StackTrace(self, StackTrace):
        self._StackTrace = StackTrace

    @property
    def RaspDetail(self):
        r"""漏洞ID相关的事件详情(json array格式 rasp特有)
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._RaspDetail

    @RaspDetail.setter
    def RaspDetail(self, RaspDetail):
        self._RaspDetail = RaspDetail

    @property
    def EventType(self):
        r"""入侵状态： 1 攻击事件，2 防御成功
        :rtype: int
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Status = params.get("Status")
        self._Quuid = params.get("Quuid")
        self._Alias = params.get("Alias")
        self._InstanceID = params.get("InstanceID")
        self._PrivateIp = params.get("PrivateIp")
        self._PublicIp = params.get("PublicIp")
        self._HostTags = params.get("HostTags")
        self._CreateTime = params.get("CreateTime")
        self._MergeTime = params.get("MergeTime")
        self._AttackTypeName = params.get("AttackTypeName")
        self._AttackType = params.get("AttackType")
        self._Url = params.get("Url")
        self._VulName = params.get("VulName")
        self._Count = params.get("Count")
        self._CveId = params.get("CveId")
        self._SourceIp = params.get("SourceIp")
        self._City = params.get("City")
        self._AttackPort = params.get("AttackPort")
        self._Description = params.get("Description")
        self._Fix = params.get("Fix")
        self._NetworkPayload = params.get("NetworkPayload")
        self._NodeName = params.get("NodeName")
        self._NodeId = params.get("NodeId")
        self._ContainerName = params.get("ContainerName")
        self._ContainerId = params.get("ContainerId")
        self._ContainerStatus = params.get("ContainerStatus")
        self._ContainerNetStatus = params.get("ContainerNetStatus")
        self._ImageId = params.get("ImageId")
        self._ImageName = params.get("ImageName")
        self._PodName = params.get("PodName")
        self._PodIp = params.get("PodIp")
        self._ClusterName = params.get("ClusterName")
        self._ClusterId = params.get("ClusterId")
        self._Pid = params.get("Pid")
        self._MainClass = params.get("MainClass")
        self._StackTrace = params.get("StackTrace")
        self._RaspDetail = params.get("RaspDetail")
        self._EventType = params.get("EventType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RaspEventOverview(AbstractModel):
    r"""应用防御概览信息

    """

    def __init__(self):
        r"""
        :param _DefenceVuls: 可防御漏洞数
        :type DefenceVuls: int
        :param _PreciseDefenseVuls: 可精准防御漏洞数
        :type PreciseDefenseVuls: int
        :param _UnhandledRaspEvents: 未处理的应用防御事件数
        :type UnhandledRaspEvents: int
        :param _UnhandledMemShellScanEvents: 未处理的内存马扫描事件数
        :type UnhandledMemShellScanEvents: int
        :param _UnhandledMemShellInjectEvents: 未处理的内存马注入事件数
        :type UnhandledMemShellInjectEvents: int
        :param _UnHandledEvents: 每日未处理事件趋势
        :type UnHandledEvents: list of int
        :param _RaspAttackCounts: 每日漏洞检测事件趋势
        :type RaspAttackCounts: list of int
        :param _RaspDefendCounts: 每日漏洞防御事件趋势
        :type RaspDefendCounts: list of int
        :param _MemShellAttackCounts: 每日内存马检测事件趋势
        :type MemShellAttackCounts: list of int
        :param _MemShellDefendCounts: 每日内存马防御事件趋势
        :type MemShellDefendCounts: list of int
        :param _Date: 日期
        :type Date: list of str
        :param _ProtectAssetOpenCount: 开通RASP防护开关资产数
        :type ProtectAssetOpenCount: int
        :param _ProtectAssetCount: 全部资产数
        :type ProtectAssetCount: int
        :param _UltimateAssetCount: 绑定了旗舰版的资产防护数
        :type UltimateAssetCount: int
        :param _RaspAssetCount: 绑定了重保防护包的资产数
        :type RaspAssetCount: int
        :param _NotProtectAssetCount: 未授权的资产数
        :type NotProtectAssetCount: int
        :param _RecentUnhandledEvents: 近7天未处理事件数
        :type RecentUnhandledEvents: int
        :param _RaspDefendCount: 防御成功的总次数
        :type RaspDefendCount: int
        """
        self._DefenceVuls = None
        self._PreciseDefenseVuls = None
        self._UnhandledRaspEvents = None
        self._UnhandledMemShellScanEvents = None
        self._UnhandledMemShellInjectEvents = None
        self._UnHandledEvents = None
        self._RaspAttackCounts = None
        self._RaspDefendCounts = None
        self._MemShellAttackCounts = None
        self._MemShellDefendCounts = None
        self._Date = None
        self._ProtectAssetOpenCount = None
        self._ProtectAssetCount = None
        self._UltimateAssetCount = None
        self._RaspAssetCount = None
        self._NotProtectAssetCount = None
        self._RecentUnhandledEvents = None
        self._RaspDefendCount = None

    @property
    def DefenceVuls(self):
        r"""可防御漏洞数
        :rtype: int
        """
        return self._DefenceVuls

    @DefenceVuls.setter
    def DefenceVuls(self, DefenceVuls):
        self._DefenceVuls = DefenceVuls

    @property
    def PreciseDefenseVuls(self):
        r"""可精准防御漏洞数
        :rtype: int
        """
        return self._PreciseDefenseVuls

    @PreciseDefenseVuls.setter
    def PreciseDefenseVuls(self, PreciseDefenseVuls):
        self._PreciseDefenseVuls = PreciseDefenseVuls

    @property
    def UnhandledRaspEvents(self):
        r"""未处理的应用防御事件数
        :rtype: int
        """
        return self._UnhandledRaspEvents

    @UnhandledRaspEvents.setter
    def UnhandledRaspEvents(self, UnhandledRaspEvents):
        self._UnhandledRaspEvents = UnhandledRaspEvents

    @property
    def UnhandledMemShellScanEvents(self):
        r"""未处理的内存马扫描事件数
        :rtype: int
        """
        return self._UnhandledMemShellScanEvents

    @UnhandledMemShellScanEvents.setter
    def UnhandledMemShellScanEvents(self, UnhandledMemShellScanEvents):
        self._UnhandledMemShellScanEvents = UnhandledMemShellScanEvents

    @property
    def UnhandledMemShellInjectEvents(self):
        r"""未处理的内存马注入事件数
        :rtype: int
        """
        return self._UnhandledMemShellInjectEvents

    @UnhandledMemShellInjectEvents.setter
    def UnhandledMemShellInjectEvents(self, UnhandledMemShellInjectEvents):
        self._UnhandledMemShellInjectEvents = UnhandledMemShellInjectEvents

    @property
    def UnHandledEvents(self):
        r"""每日未处理事件趋势
        :rtype: list of int
        """
        return self._UnHandledEvents

    @UnHandledEvents.setter
    def UnHandledEvents(self, UnHandledEvents):
        self._UnHandledEvents = UnHandledEvents

    @property
    def RaspAttackCounts(self):
        r"""每日漏洞检测事件趋势
        :rtype: list of int
        """
        return self._RaspAttackCounts

    @RaspAttackCounts.setter
    def RaspAttackCounts(self, RaspAttackCounts):
        self._RaspAttackCounts = RaspAttackCounts

    @property
    def RaspDefendCounts(self):
        r"""每日漏洞防御事件趋势
        :rtype: list of int
        """
        return self._RaspDefendCounts

    @RaspDefendCounts.setter
    def RaspDefendCounts(self, RaspDefendCounts):
        self._RaspDefendCounts = RaspDefendCounts

    @property
    def MemShellAttackCounts(self):
        r"""每日内存马检测事件趋势
        :rtype: list of int
        """
        return self._MemShellAttackCounts

    @MemShellAttackCounts.setter
    def MemShellAttackCounts(self, MemShellAttackCounts):
        self._MemShellAttackCounts = MemShellAttackCounts

    @property
    def MemShellDefendCounts(self):
        r"""每日内存马防御事件趋势
        :rtype: list of int
        """
        return self._MemShellDefendCounts

    @MemShellDefendCounts.setter
    def MemShellDefendCounts(self, MemShellDefendCounts):
        self._MemShellDefendCounts = MemShellDefendCounts

    @property
    def Date(self):
        r"""日期
        :rtype: list of str
        """
        return self._Date

    @Date.setter
    def Date(self, Date):
        self._Date = Date

    @property
    def ProtectAssetOpenCount(self):
        r"""开通RASP防护开关资产数
        :rtype: int
        """
        return self._ProtectAssetOpenCount

    @ProtectAssetOpenCount.setter
    def ProtectAssetOpenCount(self, ProtectAssetOpenCount):
        self._ProtectAssetOpenCount = ProtectAssetOpenCount

    @property
    def ProtectAssetCount(self):
        r"""全部资产数
        :rtype: int
        """
        return self._ProtectAssetCount

    @ProtectAssetCount.setter
    def ProtectAssetCount(self, ProtectAssetCount):
        self._ProtectAssetCount = ProtectAssetCount

    @property
    def UltimateAssetCount(self):
        r"""绑定了旗舰版的资产防护数
        :rtype: int
        """
        return self._UltimateAssetCount

    @UltimateAssetCount.setter
    def UltimateAssetCount(self, UltimateAssetCount):
        self._UltimateAssetCount = UltimateAssetCount

    @property
    def RaspAssetCount(self):
        r"""绑定了重保防护包的资产数
        :rtype: int
        """
        return self._RaspAssetCount

    @RaspAssetCount.setter
    def RaspAssetCount(self, RaspAssetCount):
        self._RaspAssetCount = RaspAssetCount

    @property
    def NotProtectAssetCount(self):
        r"""未授权的资产数
        :rtype: int
        """
        return self._NotProtectAssetCount

    @NotProtectAssetCount.setter
    def NotProtectAssetCount(self, NotProtectAssetCount):
        self._NotProtectAssetCount = NotProtectAssetCount

    @property
    def RecentUnhandledEvents(self):
        r"""近7天未处理事件数
        :rtype: int
        """
        return self._RecentUnhandledEvents

    @RecentUnhandledEvents.setter
    def RecentUnhandledEvents(self, RecentUnhandledEvents):
        self._RecentUnhandledEvents = RecentUnhandledEvents

    @property
    def RaspDefendCount(self):
        r"""防御成功的总次数
        :rtype: int
        """
        return self._RaspDefendCount

    @RaspDefendCount.setter
    def RaspDefendCount(self, RaspDefendCount):
        self._RaspDefendCount = RaspDefendCount


    def _deserialize(self, params):
        self._DefenceVuls = params.get("DefenceVuls")
        self._PreciseDefenseVuls = params.get("PreciseDefenseVuls")
        self._UnhandledRaspEvents = params.get("UnhandledRaspEvents")
        self._UnhandledMemShellScanEvents = params.get("UnhandledMemShellScanEvents")
        self._UnhandledMemShellInjectEvents = params.get("UnhandledMemShellInjectEvents")
        self._UnHandledEvents = params.get("UnHandledEvents")
        self._RaspAttackCounts = params.get("RaspAttackCounts")
        self._RaspDefendCounts = params.get("RaspDefendCounts")
        self._MemShellAttackCounts = params.get("MemShellAttackCounts")
        self._MemShellDefendCounts = params.get("MemShellDefendCounts")
        self._Date = params.get("Date")
        self._ProtectAssetOpenCount = params.get("ProtectAssetOpenCount")
        self._ProtectAssetCount = params.get("ProtectAssetCount")
        self._UltimateAssetCount = params.get("UltimateAssetCount")
        self._RaspAssetCount = params.get("RaspAssetCount")
        self._NotProtectAssetCount = params.get("NotProtectAssetCount")
        self._RecentUnhandledEvents = params.get("RecentUnhandledEvents")
        self._RaspDefendCount = params.get("RaspDefendCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RaspEventOverviewRequest(AbstractModel):
    r"""RaspEventOverview请求参数结构体

    """


class RaspEventOverviewResponse(AbstractModel):
    r"""RaspEventOverview返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Overview: 应用防御概览信息
        :type Overview: :class:`tencentcloud.cwp.v20180228.models.RaspEventOverview`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Overview = None
        self._RequestId = None

    @property
    def Overview(self):
        r"""应用防御概览信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.RaspEventOverview`
        """
        return self._Overview

    @Overview.setter
    def Overview(self, Overview):
        self._Overview = Overview

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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 = RaspEventOverview()
            self._Overview._deserialize(params.get("Overview"))
        self._RequestId = params.get("RequestId")


class RaspLicenseList(AbstractModel):
    r"""重保授权包列表对象

    """

    def __init__(self):
        r"""
        :param _QUUID: 机器唯一ID
        :type QUUID: str
        :param _InstanceName: 实例名称
        :type InstanceName: str
        :param _InstanceId: 实例ID
        :type InstanceId: str
        :param _PublicIP: 公网IP
        :type PublicIP: str
        :param _PrivateIP: 内网IP
        :type PrivateIP: str
        :param _Tags: 云标签信息
        :type Tags: list of Tags
        :param _ProtectionVersion: 防护版本信息
- CriticalProtection 重保防护包
- Pro 容器安全-专业版
- Ultimate 主机安全-旗舰版
        :type ProtectionVersion: list of str
        :param _ConfigurationSetting: 防护设置
- 0 未配置
- 1 已配置
        :type ConfigurationSetting: int
        :param _Enable: 总开关
- 0 未开启
- 1已开启
        :type Enable: int
        :param _VulDefEnable: 漏洞防御开关
- 0 未开启
- 1 开启
        :type VulDefEnable: int
        :param _VulDefMode: 漏洞防御模式
- 0 标准
- 1 重保
        :type VulDefMode: int
        :param _VulDefAction: 漏洞防御动作
- 0 仅检测
- 1 检测+防御
        :type VulDefAction: int
        :param _MemShellDefEnable: 内存马防御开关
- 0 未开启
- 1 开启
        :type MemShellDefEnable: int
        :param _SafeInject: 更多防护
- 0 不注入会重启的进程 
- 1 注入会重启的进程
        :type SafeInject: int
        :param _PerformanceLimit: 性能阈值配置开关
- 0 未开启
- 1 开启
        :type PerformanceLimit: int
        :param _PerformanceLimitCpu: CPU阈值,取值1-99
        :type PerformanceLimitCpu: int
        :param _PerformanceLimitMem: 内存阈值,取值1-99
        :type PerformanceLimitMem: int
        :param _PerformanceLimitMemAmount: 内存剩余阈值
        :type PerformanceLimitMemAmount: int
        :param _RaspException: 插件状态
- 0 使用正常
- 1 存在异常
- 2 未使用
        :type RaspException: int
        :param _LatestUpdateTime: 最近更新时间
        :type LatestUpdateTime: str
        :param _ClusterName: 集群ID,仅容器资产有值
        :type ClusterName: str
        :param _ClusterId: 集群名称,仅容器资产有值
        :type ClusterId: str
        :param _OrderDetail: 订单信息
        :type OrderDetail: :class:`tencentcloud.cwp.v20180228.models.OrderDetail`
        :param _IsUnBind: 是否允许解绑,fasle 不允许 true 允许
        :type IsUnBind: bool
        :param _UUID: uuid 机器唯一ID,仅AssetType = CWP 时有值
        :type UUID: str
        :param _Reason: 无注入/注入失败原因
        :type Reason: str
        """
        self._QUUID = None
        self._InstanceName = None
        self._InstanceId = None
        self._PublicIP = None
        self._PrivateIP = None
        self._Tags = None
        self._ProtectionVersion = None
        self._ConfigurationSetting = None
        self._Enable = None
        self._VulDefEnable = None
        self._VulDefMode = None
        self._VulDefAction = None
        self._MemShellDefEnable = None
        self._SafeInject = None
        self._PerformanceLimit = None
        self._PerformanceLimitCpu = None
        self._PerformanceLimitMem = None
        self._PerformanceLimitMemAmount = None
        self._RaspException = None
        self._LatestUpdateTime = None
        self._ClusterName = None
        self._ClusterId = None
        self._OrderDetail = None
        self._IsUnBind = None
        self._UUID = None
        self._Reason = None

    @property
    def QUUID(self):
        r"""机器唯一ID
        :rtype: str
        """
        return self._QUUID

    @QUUID.setter
    def QUUID(self, QUUID):
        self._QUUID = QUUID

    @property
    def InstanceName(self):
        r"""实例名称
        :rtype: str
        """
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def InstanceId(self):
        r"""实例ID
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def PublicIP(self):
        r"""公网IP
        :rtype: str
        """
        return self._PublicIP

    @PublicIP.setter
    def PublicIP(self, PublicIP):
        self._PublicIP = PublicIP

    @property
    def PrivateIP(self):
        r"""内网IP
        :rtype: str
        """
        return self._PrivateIP

    @PrivateIP.setter
    def PrivateIP(self, PrivateIP):
        self._PrivateIP = PrivateIP

    @property
    def Tags(self):
        r"""云标签信息
        :rtype: list of Tags
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def ProtectionVersion(self):
        r"""防护版本信息
- CriticalProtection 重保防护包
- Pro 容器安全-专业版
- Ultimate 主机安全-旗舰版
        :rtype: list of str
        """
        return self._ProtectionVersion

    @ProtectionVersion.setter
    def ProtectionVersion(self, ProtectionVersion):
        self._ProtectionVersion = ProtectionVersion

    @property
    def ConfigurationSetting(self):
        r"""防护设置
- 0 未配置
- 1 已配置
        :rtype: int
        """
        return self._ConfigurationSetting

    @ConfigurationSetting.setter
    def ConfigurationSetting(self, ConfigurationSetting):
        self._ConfigurationSetting = ConfigurationSetting

    @property
    def Enable(self):
        r"""总开关
- 0 未开启
- 1已开启
        :rtype: int
        """
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def VulDefEnable(self):
        r"""漏洞防御开关
- 0 未开启
- 1 开启
        :rtype: int
        """
        return self._VulDefEnable

    @VulDefEnable.setter
    def VulDefEnable(self, VulDefEnable):
        self._VulDefEnable = VulDefEnable

    @property
    def VulDefMode(self):
        r"""漏洞防御模式
- 0 标准
- 1 重保
        :rtype: int
        """
        return self._VulDefMode

    @VulDefMode.setter
    def VulDefMode(self, VulDefMode):
        self._VulDefMode = VulDefMode

    @property
    def VulDefAction(self):
        r"""漏洞防御动作
- 0 仅检测
- 1 检测+防御
        :rtype: int
        """
        return self._VulDefAction

    @VulDefAction.setter
    def VulDefAction(self, VulDefAction):
        self._VulDefAction = VulDefAction

    @property
    def MemShellDefEnable(self):
        r"""内存马防御开关
- 0 未开启
- 1 开启
        :rtype: int
        """
        return self._MemShellDefEnable

    @MemShellDefEnable.setter
    def MemShellDefEnable(self, MemShellDefEnable):
        self._MemShellDefEnable = MemShellDefEnable

    @property
    def SafeInject(self):
        r"""更多防护
- 0 不注入会重启的进程 
- 1 注入会重启的进程
        :rtype: int
        """
        return self._SafeInject

    @SafeInject.setter
    def SafeInject(self, SafeInject):
        self._SafeInject = SafeInject

    @property
    def PerformanceLimit(self):
        r"""性能阈值配置开关
- 0 未开启
- 1 开启
        :rtype: int
        """
        return self._PerformanceLimit

    @PerformanceLimit.setter
    def PerformanceLimit(self, PerformanceLimit):
        self._PerformanceLimit = PerformanceLimit

    @property
    def PerformanceLimitCpu(self):
        r"""CPU阈值,取值1-99
        :rtype: int
        """
        return self._PerformanceLimitCpu

    @PerformanceLimitCpu.setter
    def PerformanceLimitCpu(self, PerformanceLimitCpu):
        self._PerformanceLimitCpu = PerformanceLimitCpu

    @property
    def PerformanceLimitMem(self):
        r"""内存阈值,取值1-99
        :rtype: int
        """
        return self._PerformanceLimitMem

    @PerformanceLimitMem.setter
    def PerformanceLimitMem(self, PerformanceLimitMem):
        self._PerformanceLimitMem = PerformanceLimitMem

    @property
    def PerformanceLimitMemAmount(self):
        r"""内存剩余阈值
        :rtype: int
        """
        return self._PerformanceLimitMemAmount

    @PerformanceLimitMemAmount.setter
    def PerformanceLimitMemAmount(self, PerformanceLimitMemAmount):
        self._PerformanceLimitMemAmount = PerformanceLimitMemAmount

    @property
    def RaspException(self):
        r"""插件状态
- 0 使用正常
- 1 存在异常
- 2 未使用
        :rtype: int
        """
        return self._RaspException

    @RaspException.setter
    def RaspException(self, RaspException):
        self._RaspException = RaspException

    @property
    def LatestUpdateTime(self):
        r"""最近更新时间
        :rtype: str
        """
        return self._LatestUpdateTime

    @LatestUpdateTime.setter
    def LatestUpdateTime(self, LatestUpdateTime):
        self._LatestUpdateTime = LatestUpdateTime

    @property
    def ClusterName(self):
        r"""集群ID,仅容器资产有值
        :rtype: str
        """
        return self._ClusterName

    @ClusterName.setter
    def ClusterName(self, ClusterName):
        self._ClusterName = ClusterName

    @property
    def ClusterId(self):
        r"""集群名称,仅容器资产有值
        :rtype: str
        """
        return self._ClusterId

    @ClusterId.setter
    def ClusterId(self, ClusterId):
        self._ClusterId = ClusterId

    @property
    def OrderDetail(self):
        r"""订单信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.OrderDetail`
        """
        return self._OrderDetail

    @OrderDetail.setter
    def OrderDetail(self, OrderDetail):
        self._OrderDetail = OrderDetail

    @property
    def IsUnBind(self):
        r"""是否允许解绑,fasle 不允许 true 允许
        :rtype: bool
        """
        return self._IsUnBind

    @IsUnBind.setter
    def IsUnBind(self, IsUnBind):
        self._IsUnBind = IsUnBind

    @property
    def UUID(self):
        r"""uuid 机器唯一ID,仅AssetType = CWP 时有值
        :rtype: str
        """
        return self._UUID

    @UUID.setter
    def UUID(self, UUID):
        self._UUID = UUID

    @property
    def Reason(self):
        r"""无注入/注入失败原因
        :rtype: str
        """
        return self._Reason

    @Reason.setter
    def Reason(self, Reason):
        self._Reason = Reason


    def _deserialize(self, params):
        self._QUUID = params.get("QUUID")
        self._InstanceName = params.get("InstanceName")
        self._InstanceId = params.get("InstanceId")
        self._PublicIP = params.get("PublicIP")
        self._PrivateIP = params.get("PrivateIP")
        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._ProtectionVersion = params.get("ProtectionVersion")
        self._ConfigurationSetting = params.get("ConfigurationSetting")
        self._Enable = params.get("Enable")
        self._VulDefEnable = params.get("VulDefEnable")
        self._VulDefMode = params.get("VulDefMode")
        self._VulDefAction = params.get("VulDefAction")
        self._MemShellDefEnable = params.get("MemShellDefEnable")
        self._SafeInject = params.get("SafeInject")
        self._PerformanceLimit = params.get("PerformanceLimit")
        self._PerformanceLimitCpu = params.get("PerformanceLimitCpu")
        self._PerformanceLimitMem = params.get("PerformanceLimitMem")
        self._PerformanceLimitMemAmount = params.get("PerformanceLimitMemAmount")
        self._RaspException = params.get("RaspException")
        self._LatestUpdateTime = params.get("LatestUpdateTime")
        self._ClusterName = params.get("ClusterName")
        self._ClusterId = params.get("ClusterId")
        if params.get("OrderDetail") is not None:
            self._OrderDetail = OrderDetail()
            self._OrderDetail._deserialize(params.get("OrderDetail"))
        self._IsUnBind = params.get("IsUnBind")
        self._UUID = params.get("UUID")
        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 RaspLicensePlugin(AbstractModel):
    r"""重保防护授权插件详情

    """

    def __init__(self):
        r"""
        :param _PID: java进程pid
        :type PID: int
        :param _MainClass: java主类
        :type MainClass: str
        :param _Status: 0: 注入中, 1: 注入成功, 2: 插件超时, 3: 插件退出, 4: 注入失败
        :type Status: int
        :param _ErrorLog: 错误详情
        :type ErrorLog: str
        :param _Reason: 注入失败原因
        :type Reason: str
        :param _InjectTime: 注入时间
        :type InjectTime: str
        """
        self._PID = None
        self._MainClass = None
        self._Status = None
        self._ErrorLog = None
        self._Reason = None
        self._InjectTime = None

    @property
    def PID(self):
        r"""java进程pid
        :rtype: int
        """
        return self._PID

    @PID.setter
    def PID(self, PID):
        self._PID = PID

    @property
    def MainClass(self):
        r"""java主类
        :rtype: str
        """
        return self._MainClass

    @MainClass.setter
    def MainClass(self, MainClass):
        self._MainClass = MainClass

    @property
    def Status(self):
        r"""0: 注入中, 1: 注入成功, 2: 插件超时, 3: 插件退出, 4: 注入失败
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ErrorLog(self):
        r"""错误详情
        :rtype: str
        """
        return self._ErrorLog

    @ErrorLog.setter
    def ErrorLog(self, ErrorLog):
        self._ErrorLog = ErrorLog

    @property
    def Reason(self):
        r"""注入失败原因
        :rtype: str
        """
        return self._Reason

    @Reason.setter
    def Reason(self, Reason):
        self._Reason = Reason

    @property
    def InjectTime(self):
        r"""注入时间
        :rtype: str
        """
        return self._InjectTime

    @InjectTime.setter
    def InjectTime(self, InjectTime):
        self._InjectTime = InjectTime


    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._Reason = params.get("Reason")
        self._InjectTime = params.get("InjectTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RaspMemShellDetail(AbstractModel):
    r"""java内存马事件信息

    """

    def __init__(self):
        r"""
        :param _Id: 事件ID
注意：此字段可能返回 null，表示取不到有效值。
        :type Id: int
        :param _Quuid: 服务器quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _Alias: 服务器名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Alias: str
        :param _InstanceID: 实例id
        :type InstanceID: str
        :param _PrivateIp: 内网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type PrivateIp: str
        :param _PublicIp: 公网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type PublicIp: str
        :param _HostTags: 主机tag
注意：此字段可能返回 null，表示取不到有效值。
        :type HostTags: list of str
        :param _Type: 内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
注意：此字段可能返回 null，表示取不到有效值。
        :type Type: int
        :param _Status: 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _ClassLoaderName: 所属的类加载器
注意：此字段可能返回 null，表示取不到有效值。
        :type ClassLoaderName: str
        :param _SuperClassName: 父类名
注意：此字段可能返回 null，表示取不到有效值。
        :type SuperClassName: str
        :param _Interfaces: 继承的接口
注意：此字段可能返回 null，表示取不到有效值。
        :type Interfaces: str
        :param _Annotations: 注释
注意：此字段可能返回 null，表示取不到有效值。
        :type Annotations: str
        :param _ClassName: 类名
注意：此字段可能返回 null，表示取不到有效值。
        :type ClassName: str
        :param _Md5: 类文件md5
注意：此字段可能返回 null，表示取不到有效值。
        :type Md5: str
        :param _Pid: 进程pid
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: int
        :param _Exe: java进程路径
注意：此字段可能返回 null，表示取不到有效值。
        :type Exe: str
        :param _Args: java进程命令行参数
注意：此字段可能返回 null，表示取不到有效值。
        :type Args: str
        :param _ClassContent: java内存马二进制代码(base64)
注意：此字段可能返回 null，表示取不到有效值。
        :type ClassContent: str
        :param _ClassContentPretty: java内存马反编译代码
注意：此字段可能返回 null，表示取不到有效值。
        :type ClassContentPretty: str
        :param _EventDescription: 事件描述
注意：此字段可能返回 null，表示取不到有效值。
        :type EventDescription: str
        :param _SecurityAdvice: 安全建议
注意：此字段可能返回 null，表示取不到有效值。
        :type SecurityAdvice: str
        :param _CreateTime: 首次发现时间
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        :param _RecentFoundTime: 最近检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type RecentFoundTime: str
        :param _NodeName: 节点名称
注意：此字段可能返回 null，表示取不到有效值。
        :type NodeName: str
        :param _NodeId: 节点id
注意：此字段可能返回 null，表示取不到有效值。
        :type NodeId: str
        :param _ContainerName: 容器名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ContainerName: str
        :param _ContainerId: 容器id
注意：此字段可能返回 null，表示取不到有效值。
        :type ContainerId: str
        :param _ContainerStatus: 容器运行状态
注意：此字段可能返回 null，表示取不到有效值。
        :type ContainerStatus: str
        :param _ContainerNetStatus: 容器隔离状态
注意：此字段可能返回 null，表示取不到有效值。
        :type ContainerNetStatus: str
        :param _ImageId: 镜像ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ImageId: str
        :param _ImageName: 镜像名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ImageName: str
        :param _PodName: pod名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PodName: str
        :param _PodIp: podip
注意：此字段可能返回 null，表示取不到有效值。
        :type PodIp: str
        :param _ClusterName: 集群名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ClusterName: str
        :param _ClusterId: 集群id
注意：此字段可能返回 null，表示取不到有效值。
        :type ClusterId: str
        """
        self._Id = None
        self._Quuid = None
        self._Alias = None
        self._InstanceID = None
        self._PrivateIp = None
        self._PublicIp = None
        self._HostTags = None
        self._Type = None
        self._Status = None
        self._ClassLoaderName = None
        self._SuperClassName = None
        self._Interfaces = None
        self._Annotations = None
        self._ClassName = None
        self._Md5 = None
        self._Pid = None
        self._Exe = None
        self._Args = None
        self._ClassContent = None
        self._ClassContentPretty = None
        self._EventDescription = None
        self._SecurityAdvice = None
        self._CreateTime = None
        self._RecentFoundTime = None
        self._NodeName = None
        self._NodeId = None
        self._ContainerName = None
        self._ContainerId = None
        self._ContainerStatus = None
        self._ContainerNetStatus = None
        self._ImageId = None
        self._ImageName = None
        self._PodName = None
        self._PodIp = None
        self._ClusterName = None
        self._ClusterId = None

    @property
    def Id(self):
        r"""事件ID
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        r"""服务器quuid
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        r"""服务器名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def InstanceID(self):
        r"""实例id
        :rtype: str
        """
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def PrivateIp(self):
        r"""内网ip
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        r"""公网ip
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def HostTags(self):
        r"""主机tag
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: list of str
        """
        return self._HostTags

    @HostTags.setter
    def HostTags(self, HostTags):
        self._HostTags = HostTags

    @property
    def Type(self):
        r"""内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Status(self):
        r"""处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ClassLoaderName(self):
        r"""所属的类加载器
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ClassLoaderName

    @ClassLoaderName.setter
    def ClassLoaderName(self, ClassLoaderName):
        self._ClassLoaderName = ClassLoaderName

    @property
    def SuperClassName(self):
        r"""父类名
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._SuperClassName

    @SuperClassName.setter
    def SuperClassName(self, SuperClassName):
        self._SuperClassName = SuperClassName

    @property
    def Interfaces(self):
        r"""继承的接口
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Interfaces

    @Interfaces.setter
    def Interfaces(self, Interfaces):
        self._Interfaces = Interfaces

    @property
    def Annotations(self):
        r"""注释
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Annotations

    @Annotations.setter
    def Annotations(self, Annotations):
        self._Annotations = Annotations

    @property
    def ClassName(self):
        r"""类名
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ClassName

    @ClassName.setter
    def ClassName(self, ClassName):
        self._ClassName = ClassName

    @property
    def Md5(self):
        r"""类文件md5
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def Pid(self):
        r"""进程pid
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Exe(self):
        r"""java进程路径
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def Args(self):
        r"""java进程命令行参数
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Args

    @Args.setter
    def Args(self, Args):
        self._Args = Args

    @property
    def ClassContent(self):
        r"""java内存马二进制代码(base64)
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ClassContent

    @ClassContent.setter
    def ClassContent(self, ClassContent):
        self._ClassContent = ClassContent

    @property
    def ClassContentPretty(self):
        r"""java内存马反编译代码
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ClassContentPretty

    @ClassContentPretty.setter
    def ClassContentPretty(self, ClassContentPretty):
        self._ClassContentPretty = ClassContentPretty

    @property
    def EventDescription(self):
        r"""事件描述
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._EventDescription

    @EventDescription.setter
    def EventDescription(self, EventDescription):
        self._EventDescription = EventDescription

    @property
    def SecurityAdvice(self):
        r"""安全建议
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._SecurityAdvice

    @SecurityAdvice.setter
    def SecurityAdvice(self, SecurityAdvice):
        self._SecurityAdvice = SecurityAdvice

    @property
    def CreateTime(self):
        r"""首次发现时间
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RecentFoundTime(self):
        r"""最近检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._RecentFoundTime

    @RecentFoundTime.setter
    def RecentFoundTime(self, RecentFoundTime):
        self._RecentFoundTime = RecentFoundTime

    @property
    def NodeName(self):
        r"""节点名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._NodeName

    @NodeName.setter
    def NodeName(self, NodeName):
        self._NodeName = NodeName

    @property
    def NodeId(self):
        r"""节点id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._NodeId

    @NodeId.setter
    def NodeId(self, NodeId):
        self._NodeId = NodeId

    @property
    def ContainerName(self):
        r"""容器名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ContainerName

    @ContainerName.setter
    def ContainerName(self, ContainerName):
        self._ContainerName = ContainerName

    @property
    def ContainerId(self):
        r"""容器id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ContainerId

    @ContainerId.setter
    def ContainerId(self, ContainerId):
        self._ContainerId = ContainerId

    @property
    def ContainerStatus(self):
        r"""容器运行状态
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ContainerStatus

    @ContainerStatus.setter
    def ContainerStatus(self, ContainerStatus):
        self._ContainerStatus = ContainerStatus

    @property
    def ContainerNetStatus(self):
        r"""容器隔离状态
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ContainerNetStatus

    @ContainerNetStatus.setter
    def ContainerNetStatus(self, ContainerNetStatus):
        self._ContainerNetStatus = ContainerNetStatus

    @property
    def ImageId(self):
        r"""镜像ID
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ImageId

    @ImageId.setter
    def ImageId(self, ImageId):
        self._ImageId = ImageId

    @property
    def ImageName(self):
        r"""镜像名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ImageName

    @ImageName.setter
    def ImageName(self, ImageName):
        self._ImageName = ImageName

    @property
    def PodName(self):
        r"""pod名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PodName

    @PodName.setter
    def PodName(self, PodName):
        self._PodName = PodName

    @property
    def PodIp(self):
        r"""podip
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PodIp

    @PodIp.setter
    def PodIp(self, PodIp):
        self._PodIp = PodIp

    @property
    def ClusterName(self):
        r"""集群名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ClusterName

    @ClusterName.setter
    def ClusterName(self, ClusterName):
        self._ClusterName = ClusterName

    @property
    def ClusterId(self):
        r"""集群id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._ClusterId

    @ClusterId.setter
    def ClusterId(self, ClusterId):
        self._ClusterId = ClusterId


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Quuid = params.get("Quuid")
        self._Alias = params.get("Alias")
        self._InstanceID = params.get("InstanceID")
        self._PrivateIp = params.get("PrivateIp")
        self._PublicIp = params.get("PublicIp")
        self._HostTags = params.get("HostTags")
        self._Type = params.get("Type")
        self._Status = params.get("Status")
        self._ClassLoaderName = params.get("ClassLoaderName")
        self._SuperClassName = params.get("SuperClassName")
        self._Interfaces = params.get("Interfaces")
        self._Annotations = params.get("Annotations")
        self._ClassName = params.get("ClassName")
        self._Md5 = params.get("Md5")
        self._Pid = params.get("Pid")
        self._Exe = params.get("Exe")
        self._Args = params.get("Args")
        self._ClassContent = params.get("ClassContent")
        self._ClassContentPretty = params.get("ClassContentPretty")
        self._EventDescription = params.get("EventDescription")
        self._SecurityAdvice = params.get("SecurityAdvice")
        self._CreateTime = params.get("CreateTime")
        self._RecentFoundTime = params.get("RecentFoundTime")
        self._NodeName = params.get("NodeName")
        self._NodeId = params.get("NodeId")
        self._ContainerName = params.get("ContainerName")
        self._ContainerId = params.get("ContainerId")
        self._ContainerStatus = params.get("ContainerStatus")
        self._ContainerNetStatus = params.get("ContainerNetStatus")
        self._ImageId = params.get("ImageId")
        self._ImageName = params.get("ImageName")
        self._PodName = params.get("PodName")
        self._PodIp = params.get("PodIp")
        self._ClusterName = params.get("ClusterName")
        self._ClusterId = params.get("ClusterId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RaspMemShellEvent(AbstractModel):
    r"""java内存马事件信息

    """

    def __init__(self):
        r"""
        :param _Id: 事件ID
        :type Id: int
        :param _Quuid: 服务器quuid
        :type Quuid: str
        :param _Alias: 服务器名称
        :type Alias: str
        :param _HostIp: 服务器IP
        :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 _Md5: 类文件md5
        :type Md5: str
        :param _ClassName: 类名
        :type ClassName: str
        :param _SuperClassName: 父类名
        :type SuperClassName: str
        :param _Interfaces: 继承的接口
        :type Interfaces: str
        :param _Annotations: 注释
        :type Annotations: str
        :param _LoaderClassName: 所属的类加载器
        :type LoaderClassName: str
        :param _Pid: 进程pid
        :type Pid: int
        :param _Exe: java进程路径
        :type Exe: str
        :param _Args: java进程命令行参数
        :type Args: str
        :param _NodeName: 节点名称
        :type NodeName: str
        :param _NodeId: 节点id
        :type NodeId: str
        :param _ContainerName: 容器名称
        :type ContainerName: str
        :param _ContainerId: 容器id
        :type ContainerId: str
        :param _ContainerStatus: 容器运行状态
        :type ContainerStatus: str
        :param _ContainerNetStatus: 容器隔离状态
        :type ContainerNetStatus: str
        :param _ImageId: 镜像ID
        :type ImageId: str
        :param _ImageName: 镜像名称
        :type ImageName: str
        :param _PodName: pod名称
        :type PodName: str
        :param _PodIp: podip
        :type PodIp: str
        :param _ClusterName: 集群名称
        :type ClusterName: str
        :param _ClusterId: 集群id
        :type ClusterId: str
        :param _InstanceID: 和节点id一样，前端可以不用这个
        :type InstanceID: str
        :param _HostInnerIP: 服务器内网ip
        :type HostInnerIP: str
        :param _HostPublicIP: 服务器外网ip
        :type HostPublicIP: str
        :param _NodeType: 普通节点：NORMAL
超级节点：SUPER
        :type NodeType: str
        :param _NodeUniqueID: 超级节点唯一id
        :type NodeUniqueID: str
        """
        self._Id = None
        self._Quuid = None
        self._Alias = None
        self._HostIp = None
        self._Type = None
        self._Description = None
        self._CreateTime = None
        self._RecentFoundTime = None
        self._Status = None
        self._Md5 = None
        self._ClassName = None
        self._SuperClassName = None
        self._Interfaces = None
        self._Annotations = None
        self._LoaderClassName = None
        self._Pid = None
        self._Exe = None
        self._Args = None
        self._NodeName = None
        self._NodeId = None
        self._ContainerName = None
        self._ContainerId = None
        self._ContainerStatus = None
        self._ContainerNetStatus = None
        self._ImageId = None
        self._ImageName = None
        self._PodName = None
        self._PodIp = None
        self._ClusterName = None
        self._ClusterId = None
        self._InstanceID = None
        self._HostInnerIP = None
        self._HostPublicIP = None
        self._NodeType = None
        self._NodeUniqueID = None

    @property
    def Id(self):
        r"""事件ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        r"""服务器quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        r"""服务器名称
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def HostIp(self):
        r"""服务器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Type(self):
        r"""内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Description(self):
        r"""说明
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def CreateTime(self):
        r"""首次发现时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RecentFoundTime(self):
        r"""最近检测时间
        :rtype: str
        """
        return self._RecentFoundTime

    @RecentFoundTime.setter
    def RecentFoundTime(self, RecentFoundTime):
        self._RecentFoundTime = RecentFoundTime

    @property
    def Status(self):
        r"""处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Md5(self):
        r"""类文件md5
        :rtype: str
        """
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def ClassName(self):
        r"""类名
        :rtype: str
        """
        return self._ClassName

    @ClassName.setter
    def ClassName(self, ClassName):
        self._ClassName = ClassName

    @property
    def SuperClassName(self):
        r"""父类名
        :rtype: str
        """
        return self._SuperClassName

    @SuperClassName.setter
    def SuperClassName(self, SuperClassName):
        self._SuperClassName = SuperClassName

    @property
    def Interfaces(self):
        r"""继承的接口
        :rtype: str
        """
        return self._Interfaces

    @Interfaces.setter
    def Interfaces(self, Interfaces):
        self._Interfaces = Interfaces

    @property
    def Annotations(self):
        r"""注释
        :rtype: str
        """
        return self._Annotations

    @Annotations.setter
    def Annotations(self, Annotations):
        self._Annotations = Annotations

    @property
    def LoaderClassName(self):
        r"""所属的类加载器
        :rtype: str
        """
        return self._LoaderClassName

    @LoaderClassName.setter
    def LoaderClassName(self, LoaderClassName):
        self._LoaderClassName = LoaderClassName

    @property
    def Pid(self):
        r"""进程pid
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Exe(self):
        r"""java进程路径
        :rtype: str
        """
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def Args(self):
        r"""java进程命令行参数
        :rtype: str
        """
        return self._Args

    @Args.setter
    def Args(self, Args):
        self._Args = Args

    @property
    def NodeName(self):
        r"""节点名称
        :rtype: str
        """
        return self._NodeName

    @NodeName.setter
    def NodeName(self, NodeName):
        self._NodeName = NodeName

    @property
    def NodeId(self):
        r"""节点id
        :rtype: str
        """
        return self._NodeId

    @NodeId.setter
    def NodeId(self, NodeId):
        self._NodeId = NodeId

    @property
    def ContainerName(self):
        r"""容器名称
        :rtype: str
        """
        return self._ContainerName

    @ContainerName.setter
    def ContainerName(self, ContainerName):
        self._ContainerName = ContainerName

    @property
    def ContainerId(self):
        r"""容器id
        :rtype: str
        """
        return self._ContainerId

    @ContainerId.setter
    def ContainerId(self, ContainerId):
        self._ContainerId = ContainerId

    @property
    def ContainerStatus(self):
        r"""容器运行状态
        :rtype: str
        """
        return self._ContainerStatus

    @ContainerStatus.setter
    def ContainerStatus(self, ContainerStatus):
        self._ContainerStatus = ContainerStatus

    @property
    def ContainerNetStatus(self):
        r"""容器隔离状态
        :rtype: str
        """
        return self._ContainerNetStatus

    @ContainerNetStatus.setter
    def ContainerNetStatus(self, ContainerNetStatus):
        self._ContainerNetStatus = ContainerNetStatus

    @property
    def ImageId(self):
        r"""镜像ID
        :rtype: str
        """
        return self._ImageId

    @ImageId.setter
    def ImageId(self, ImageId):
        self._ImageId = ImageId

    @property
    def ImageName(self):
        r"""镜像名称
        :rtype: str
        """
        return self._ImageName

    @ImageName.setter
    def ImageName(self, ImageName):
        self._ImageName = ImageName

    @property
    def PodName(self):
        r"""pod名称
        :rtype: str
        """
        return self._PodName

    @PodName.setter
    def PodName(self, PodName):
        self._PodName = PodName

    @property
    def PodIp(self):
        r"""podip
        :rtype: str
        """
        return self._PodIp

    @PodIp.setter
    def PodIp(self, PodIp):
        self._PodIp = PodIp

    @property
    def ClusterName(self):
        r"""集群名称
        :rtype: str
        """
        return self._ClusterName

    @ClusterName.setter
    def ClusterName(self, ClusterName):
        self._ClusterName = ClusterName

    @property
    def ClusterId(self):
        r"""集群id
        :rtype: str
        """
        return self._ClusterId

    @ClusterId.setter
    def ClusterId(self, ClusterId):
        self._ClusterId = ClusterId

    @property
    def InstanceID(self):
        r"""和节点id一样，前端可以不用这个
        :rtype: str
        """
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def HostInnerIP(self):
        r"""服务器内网ip
        :rtype: str
        """
        return self._HostInnerIP

    @HostInnerIP.setter
    def HostInnerIP(self, HostInnerIP):
        self._HostInnerIP = HostInnerIP

    @property
    def HostPublicIP(self):
        r"""服务器外网ip
        :rtype: str
        """
        return self._HostPublicIP

    @HostPublicIP.setter
    def HostPublicIP(self, HostPublicIP):
        self._HostPublicIP = HostPublicIP

    @property
    def NodeType(self):
        r"""普通节点：NORMAL
超级节点：SUPER
        :rtype: str
        """
        return self._NodeType

    @NodeType.setter
    def NodeType(self, NodeType):
        self._NodeType = NodeType

    @property
    def NodeUniqueID(self):
        r"""超级节点唯一id
        :rtype: str
        """
        return self._NodeUniqueID

    @NodeUniqueID.setter
    def NodeUniqueID(self, NodeUniqueID):
        self._NodeUniqueID = NodeUniqueID


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Quuid = params.get("Quuid")
        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._Md5 = params.get("Md5")
        self._ClassName = params.get("ClassName")
        self._SuperClassName = params.get("SuperClassName")
        self._Interfaces = params.get("Interfaces")
        self._Annotations = params.get("Annotations")
        self._LoaderClassName = params.get("LoaderClassName")
        self._Pid = params.get("Pid")
        self._Exe = params.get("Exe")
        self._Args = params.get("Args")
        self._NodeName = params.get("NodeName")
        self._NodeId = params.get("NodeId")
        self._ContainerName = params.get("ContainerName")
        self._ContainerId = params.get("ContainerId")
        self._ContainerStatus = params.get("ContainerStatus")
        self._ContainerNetStatus = params.get("ContainerNetStatus")
        self._ImageId = params.get("ImageId")
        self._ImageName = params.get("ImageName")
        self._PodName = params.get("PodName")
        self._PodIp = params.get("PodIp")
        self._ClusterName = params.get("ClusterName")
        self._ClusterId = params.get("ClusterId")
        self._InstanceID = params.get("InstanceID")
        self._HostInnerIP = params.get("HostInnerIP")
        self._HostPublicIP = params.get("HostPublicIP")
        self._NodeType = params.get("NodeType")
        self._NodeUniqueID = params.get("NodeUniqueID")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RaspRule(AbstractModel):
    r"""rasp白名单规则

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _URLRegexp: 自定义请求url范围正则表达式，为空则保存不成功
        :type URLRegexp: str
        :param _VulVulsID: 漏洞id
        :type VulVulsID: int
        :param _VulVulsName: 漏洞名称
        :type VulVulsName: str
        :param _CveID: cve_id
        :type CveID: str
        :param _SupportDefense: 漏洞防御类型，从漏洞表富化， 1:支持组件漏洞防御，组件漏洞没有正则加白。2:支持正则防御
        :type SupportDefense: int
        :param _WhiteType: 加白范围，0:全部请求加白，1:自定义请求范围加白
        :type WhiteType: int
        :param _Status: 状态 0: 有效
        :type Status: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        """
        self._Id = None
        self._URLRegexp = None
        self._VulVulsID = None
        self._VulVulsName = None
        self._CveID = None
        self._SupportDefense = None
        self._WhiteType = None
        self._Status = None
        self._CreateTime = None
        self._ModifyTime = None

    @property
    def Id(self):
        r"""规则ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def URLRegexp(self):
        r"""自定义请求url范围正则表达式，为空则保存不成功
        :rtype: str
        """
        return self._URLRegexp

    @URLRegexp.setter
    def URLRegexp(self, URLRegexp):
        self._URLRegexp = URLRegexp

    @property
    def VulVulsID(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulVulsID

    @VulVulsID.setter
    def VulVulsID(self, VulVulsID):
        self._VulVulsID = VulVulsID

    @property
    def VulVulsName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulVulsName

    @VulVulsName.setter
    def VulVulsName(self, VulVulsName):
        self._VulVulsName = VulVulsName

    @property
    def CveID(self):
        r"""cve_id
        :rtype: str
        """
        return self._CveID

    @CveID.setter
    def CveID(self, CveID):
        self._CveID = CveID

    @property
    def SupportDefense(self):
        r"""漏洞防御类型，从漏洞表富化， 1:支持组件漏洞防御，组件漏洞没有正则加白。2:支持正则防御
        :rtype: int
        """
        return self._SupportDefense

    @SupportDefense.setter
    def SupportDefense(self, SupportDefense):
        self._SupportDefense = SupportDefense

    @property
    def WhiteType(self):
        r"""加白范围，0:全部请求加白，1:自定义请求范围加白
        :rtype: int
        """
        return self._WhiteType

    @WhiteType.setter
    def WhiteType(self, WhiteType):
        self._WhiteType = WhiteType

    @property
    def Status(self):
        r"""状态 0: 有效
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._URLRegexp = params.get("URLRegexp")
        self._VulVulsID = params.get("VulVulsID")
        self._VulVulsName = params.get("VulVulsName")
        self._CveID = params.get("CveID")
        self._SupportDefense = params.get("SupportDefense")
        self._WhiteType = params.get("WhiteType")
        self._Status = params.get("Status")
        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 RaspRuleVul(AbstractModel):
    r"""rasp白名单漏洞列表

    """

    def __init__(self):
        r"""
        :param _VulVulsID: 漏洞id
        :type VulVulsID: int
        :param _VulVulsName: 漏洞名称
        :type VulVulsName: str
        :param _CveID: cve_id
        :type CveID: str
        :param _SupportDefense: 漏洞防御类型，从漏洞表富化， 1:支持组件漏洞防御，组件漏洞没有正则加白。2:支持正则防御
        :type SupportDefense: int
        """
        self._VulVulsID = None
        self._VulVulsName = None
        self._CveID = None
        self._SupportDefense = None

    @property
    def VulVulsID(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulVulsID

    @VulVulsID.setter
    def VulVulsID(self, VulVulsID):
        self._VulVulsID = VulVulsID

    @property
    def VulVulsName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulVulsName

    @VulVulsName.setter
    def VulVulsName(self, VulVulsName):
        self._VulVulsName = VulVulsName

    @property
    def CveID(self):
        r"""cve_id
        :rtype: str
        """
        return self._CveID

    @CveID.setter
    def CveID(self, CveID):
        self._CveID = CveID

    @property
    def SupportDefense(self):
        r"""漏洞防御类型，从漏洞表富化， 1:支持组件漏洞防御，组件漏洞没有正则加白。2:支持正则防御
        :rtype: int
        """
        return self._SupportDefense

    @SupportDefense.setter
    def SupportDefense(self, SupportDefense):
        self._SupportDefense = SupportDefense


    def _deserialize(self, params):
        self._VulVulsID = params.get("VulVulsID")
        self._VulVulsName = params.get("VulVulsName")
        self._CveID = params.get("CveID")
        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 RecordInfo(AbstractModel):
    r"""客户端异常信息结构

    """

    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):
        r"""主机ip
        :rtype: str
        """
        return self._HostIP

    @HostIP.setter
    def HostIP(self, HostIP):
        self._HostIP = HostIP

    @property
    def InstanceID(self):
        r"""主机实例id
        :rtype: str
        """
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def OfflineTime(self):
        r"""客户端离线时间
        :rtype: str
        """
        return self._OfflineTime

    @OfflineTime.setter
    def OfflineTime(self, OfflineTime):
        self._OfflineTime = OfflineTime

    @property
    def UninstallTime(self):
        r"""客户端卸载时间
        :rtype: str
        """
        return self._UninstallTime

    @UninstallTime.setter
    def UninstallTime(self, UninstallTime):
        self._UninstallTime = UninstallTime

    @property
    def UninstallCmd(self):
        r"""客户端卸载调用链
        :rtype: str
        """
        return self._UninstallCmd

    @UninstallCmd.setter
    def UninstallCmd(self, UninstallCmd):
        self._UninstallCmd = UninstallCmd

    @property
    def Uuid(self):
        r"""客户端uuid
        :rtype: str
        """
        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):
    r"""RecoverMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马Id数组（最大100条）
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""木马Id数组（最大100条）
        :rtype: list of int non-negative
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SuccessIds = None
        self._FailedIds = None
        self._RequestId = None

    @property
    def SuccessIds(self):
        r"""恢复成功id数组，若无则返回空数组
        :rtype: list of int non-negative
        """
        return self._SuccessIds

    @SuccessIds.setter
    def SuccessIds(self, SuccessIds):
        self._SuccessIds = SuccessIds

    @property
    def FailedIds(self):
        r"""恢复失败id数组，若无则返回空数组
        :rtype: list of int non-negative
        """
        return self._FailedIds

    @FailedIds.setter
    def FailedIds(self, FailedIds):
        self._FailedIds = FailedIds

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""地域信息

    """

    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):
        r"""地域标志，如 ap-guangzhou，ap-shanghai，ap-beijing
        :rtype: str
        """
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def RegionName(self):
        r"""地域中文名，如华南地区（广州），华东地区（上海金融），华北地区（北京）
        :rtype: str
        """
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def RegionId(self):
        r"""地域ID
        :rtype: int
        """
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def RegionCode(self):
        r"""地域代码，如 gz，sh，bj
        :rtype: str
        """
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def RegionNameEn(self):
        r"""地域英文名
        :rtype: str
        """
        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):
    r"""地域列表详情

    """

    def __init__(self):
        r"""
        :param _MachineType: 机器类型
CVM 腾讯云云服务器
LH 腾讯云轻量服务器
ECM 腾讯云边缘计算服务器
BM 腾讯云黑石1.0 服务器
Other  其他服务器(非腾讯云)
        :type MachineType: str
        :param _CloudFrom: 0 腾讯云
1 IDC机房
2 阿里云
3 华为云
4 亚马逊
5 微软
6 Google
7 Oracle
8 Digital Ocean
        :type CloudFrom: int
        :param _RegionList: 地域列表
        :type RegionList: list of RegionInfo
        """
        self._MachineType = None
        self._CloudFrom = None
        self._RegionList = None

    @property
    def MachineType(self):
        r"""机器类型
CVM 腾讯云云服务器
LH 腾讯云轻量服务器
ECM 腾讯云边缘计算服务器
BM 腾讯云黑石1.0 服务器
Other  其他服务器(非腾讯云)
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def CloudFrom(self):
        r"""0 腾讯云
1 IDC机房
2 阿里云
3 华为云
4 亚马逊
5 微软
6 Google
7 Oracle
8 Digital Ocean
        :rtype: int
        """
        return self._CloudFrom

    @CloudFrom.setter
    def CloudFrom(self, CloudFrom):
        self._CloudFrom = CloudFrom

    @property
    def RegionList(self):
        r"""地域列表
        :rtype: list of RegionInfo
        """
        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):
    r"""地域信息

    """

    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):
        r"""地域名称
        :rtype: str
        """
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def ZoneSet(self):
        r"""可用区信息
        :rtype: list of ZoneInfo
        """
        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 RelateVulInfo(AbstractModel):
    r"""Windows补丁关联的漏洞信息

    """

    def __init__(self):
        r"""
        :param _CveId: CVEid
        :type CveId: str
        :param _Name: 漏洞名
        :type Name: str
        :param _Label: 漏洞标签
        :type Label: str
        :param _Level: 漏洞等级
        :type Level: int
        :param _CVSS: CVSS评分
        :type CVSS: float
        :param _PublishTime: 漏洞披露时间
        :type PublishTime: str
        :param _Id: 漏洞id
        :type Id: int
        """
        self._CveId = None
        self._Name = None
        self._Label = None
        self._Level = None
        self._CVSS = None
        self._PublishTime = None
        self._Id = None

    @property
    def CveId(self):
        r"""CVEid
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def Name(self):
        r"""漏洞名
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Label(self):
        r"""漏洞标签
        :rtype: str
        """
        return self._Label

    @Label.setter
    def Label(self, Label):
        self._Label = Label

    @property
    def Level(self):
        r"""漏洞等级
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CVSS(self):
        r"""CVSS评分
        :rtype: float
        """
        return self._CVSS

    @CVSS.setter
    def CVSS(self, CVSS):
        self._CVSS = CVSS

    @property
    def PublishTime(self):
        r"""漏洞披露时间
        :rtype: str
        """
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def Id(self):
        r"""漏洞id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._CveId = params.get("CveId")
        self._Name = params.get("Name")
        self._Label = params.get("Label")
        self._Level = params.get("Level")
        self._CVSS = params.get("CVSS")
        self._PublishTime = params.get("PublishTime")
        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 RemoveLocalStorageItemRequest(AbstractModel):
    r"""RemoveLocalStorageItem请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Key: 键
        :type Key: str
        """
        self._Key = None

    @property
    def Key(self):
        r"""键
        :rtype: str
        """
        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):
    r"""RemoveLocalStorageItem返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RemoveMachineRequest(AbstractModel):
    r"""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):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        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):
    r"""RemoveMachine返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RetryCreateSnapshotRequest(AbstractModel):
    r"""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):
        r"""修复任务id
        :rtype: int
        """
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Id(self):
        r"""任务进度返回的快照唯一Id
        :rtype: int
        """
        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):
    r"""RetryCreateSnapshot返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RetryVulFixRequest(AbstractModel):
    r"""RetryVulFix请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FixId: 漏洞id
        :type FixId: int
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _VulId: 漏洞id
        :type VulId: int
        :param _KbId: Kb Id 
        :type KbId: int
        """
        self._FixId = None
        self._Quuid = None
        self._VulId = None
        self._KbId = None

    @property
    def FixId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def KbId(self):
        r"""Kb Id 
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId


    def _deserialize(self, params):
        self._FixId = params.get("FixId")
        self._Quuid = params.get("Quuid")
        self._VulId = params.get("VulId")
        self._KbId = params.get("KbId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""RetryVulFix返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ReverseShell(AbstractModel):
    r"""反弹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-已忽略 6-已拦截
        :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:  主机额外信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Pid: 进程id
        :type Pid: int
        :param _RiskLevel: 威胁等级：0中危，1高危
        :type RiskLevel: int
        :param _CmdLineQuote: 命令详情的转义后内容，供正则加白全字符串匹配使用	
        :type CmdLineQuote: 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._ProcTree = None
        self._DetectBy = None
        self._MachineExtraInfo = None
        self._Pid = None
        self._RiskLevel = None
        self._CmdLineQuote = None

    @property
    def Id(self):
        r"""ID 主键
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机安全UUID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""主机ID
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Hostip(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip

    @property
    def DstIp(self):
        r"""目标IP
        :rtype: str
        """
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp

    @property
    def DstPort(self):
        r"""目标端口
        :rtype: int
        """
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def FullPath(self):
        r"""进程路径
        :rtype: str
        """
        return self._FullPath

    @FullPath.setter
    def FullPath(self, FullPath):
        self._FullPath = FullPath

    @property
    def CmdLine(self):
        r"""命令详情
        :rtype: str
        """
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def UserName(self):
        r"""执行用户
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        r"""执行用户组
        :rtype: str
        """
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ParentProcName(self):
        r"""父进程名
        :rtype: str
        """
        return self._ParentProcName

    @ParentProcName.setter
    def ParentProcName(self, ParentProcName):
        self._ParentProcName = ParentProcName

    @property
    def ParentProcUser(self):
        r"""父进程用户
        :rtype: str
        """
        return self._ParentProcUser

    @ParentProcUser.setter
    def ParentProcUser(self, ParentProcUser):
        self._ParentProcUser = ParentProcUser

    @property
    def ParentProcGroup(self):
        r"""父进程用户组
        :rtype: str
        """
        return self._ParentProcGroup

    @ParentProcGroup.setter
    def ParentProcGroup(self, ParentProcGroup):
        self._ParentProcGroup = ParentProcGroup

    @property
    def ParentProcPath(self):
        r"""父进程路径
        :rtype: str
        """
        return self._ParentProcPath

    @ParentProcPath.setter
    def ParentProcPath(self, ParentProcPath):
        self._ParentProcPath = ParentProcPath

    @property
    def Status(self):
        r"""处理状态：0-待处理 2-白名单 3-已处理 4-已忽略 6-已拦截
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""产生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        r"""主机名
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def ProcTree(self):
        r"""进程树
        :rtype: str
        """
        return self._ProcTree

    @ProcTree.setter
    def ProcTree(self, ProcTree):
        self._ProcTree = ProcTree

    @property
    def DetectBy(self):
        r"""检测方法: 0行为分析; 1命令特征检测
        :rtype: int
        """
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def MachineExtraInfo(self):
        r""" 主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Pid(self):
        r"""进程id
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def RiskLevel(self):
        r"""威胁等级：0中危，1高危
        :rtype: int
        """
        return self._RiskLevel

    @RiskLevel.setter
    def RiskLevel(self, RiskLevel):
        self._RiskLevel = RiskLevel

    @property
    def CmdLineQuote(self):
        r"""命令详情的转义后内容，供正则加白全字符串匹配使用	
        :rtype: str
        """
        return self._CmdLineQuote

    @CmdLineQuote.setter
    def CmdLineQuote(self, CmdLineQuote):
        self._CmdLineQuote = CmdLineQuote


    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")
        self._CmdLineQuote = params.get("CmdLineQuote")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""反弹Shell数据详情

    """

    def __init__(self):
        r"""
        :param _Id: ID 主键
        :type Id: int
        :param _Uuid: 主机安全uuid
        :type Uuid: str
        :param _Quuid: 主机uuid
        :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:登录源
        :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
        :param _CmdLineQuote: 命令详情的转义后内容，供正则加白全字符串匹配使用
        :type CmdLineQuote: str
        :param _RiskLevel: 风险等级
        :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._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
        self._CmdLineQuote = None
        self._RiskLevel = None

    @property
    def Id(self):
        r"""ID 主键
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机安全uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def DstIp(self):
        r"""目标IP
        :rtype: str
        """
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp

    @property
    def DstPort(self):
        r"""目标端口
        :rtype: int
        """
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def FullPath(self):
        r"""进程路径
        :rtype: str
        """
        return self._FullPath

    @FullPath.setter
    def FullPath(self, FullPath):
        self._FullPath = FullPath

    @property
    def CmdLine(self):
        r"""命令详情
        :rtype: str
        """
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def UserName(self):
        r"""执行用户
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        r"""执行用户组
        :rtype: str
        """
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ParentProcName(self):
        r"""父进程名
        :rtype: str
        """
        return self._ParentProcName

    @ParentProcName.setter
    def ParentProcName(self, ParentProcName):
        self._ParentProcName = ParentProcName

    @property
    def ParentProcUser(self):
        r"""父进程用户
        :rtype: str
        """
        return self._ParentProcUser

    @ParentProcUser.setter
    def ParentProcUser(self, ParentProcUser):
        self._ParentProcUser = ParentProcUser

    @property
    def ParentProcGroup(self):
        r"""父进程用户组
        :rtype: str
        """
        return self._ParentProcGroup

    @ParentProcGroup.setter
    def ParentProcGroup(self, ParentProcGroup):
        self._ParentProcGroup = ParentProcGroup

    @property
    def ParentProcPath(self):
        r"""父进程路径
        :rtype: str
        """
        return self._ParentProcPath

    @ParentProcPath.setter
    def ParentProcPath(self, ParentProcPath):
        self._ParentProcPath = ParentProcPath

    @property
    def Status(self):
        r"""处理状态：0-待处理 2-白名单 3-已处理 4-已忽略
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""产生时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        r"""主机名
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def DetectBy(self):
        r"""检测方法
        :rtype: int
        """
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def PsTree(self):
        r"""进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :rtype: str
        """
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def SuggestScheme(self):
        r"""建议方案
        :rtype: str
        """
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def HarmDescribe(self):
        r"""描述
        :rtype: str
        """
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def Tags(self):
        r"""标签
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def References(self):
        r"""参考链接
        :rtype: list of str
        """
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def MachineWanIp(self):
        r"""主机外网ip
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineStatus(self):
        r"""主机在线状态 OFFLINE  ONLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def ModifyTime(self):
        r"""处理时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CmdLineQuote(self):
        r"""命令详情的转义后内容，供正则加白全字符串匹配使用
        :rtype: str
        """
        return self._CmdLineQuote

    @CmdLineQuote.setter
    def CmdLineQuote(self, CmdLineQuote):
        self._CmdLineQuote = CmdLineQuote

    @property
    def RiskLevel(self):
        r"""风险等级
        :rtype: int
        """
        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._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")
        self._CmdLineQuote = params.get("CmdLineQuote")
        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 ReverseShellRule(AbstractModel):
    r"""反弹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):
        r"""规则ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""客户端ID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def ProcessName(self):
        r"""进程名称
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def DestIp(self):
        r"""目标IP
        :rtype: str
        """
        return self._DestIp

    @DestIp.setter
    def DestIp(self, DestIp):
        self._DestIp = DestIp

    @property
    def DestPort(self):
        r"""目标端口
        :rtype: str
        """
        return self._DestPort

    @DestPort.setter
    def DestPort(self, DestPort):
        self._DestPort = DestPort

    @property
    def Operator(self):
        r"""操作人
        :rtype: str
        """
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def IsGlobal(self):
        r"""是否全局规则
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        r"""状态 (0: 有效 1: 无效)
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Hostip(self):
        r"""主机IP
        :rtype: str
        """
        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 ReverseShellRuleAggregation(AbstractModel):
    r"""反弹Shell规则-聚合版本

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _UuidHostips: 客户端ID
        :type UuidHostips: list of UuidHostip
        :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 _WhiteType: 加白方式， 0:常规加白 1:正则加白
        :type WhiteType: int
        :param _RuleRegexp: 正则表达式
        :type RuleRegexp: str
        :param _HandleHistory: 处理历史事件， 0:不处理 1:处理
        :type HandleHistory: int
        :param _GroupID: 批次id
        :type GroupID: str
        :param _MachinesNums: 应用资产，描述服务器数量，全局时候为：全部服务器
        :type MachinesNums: str
        """
        self._Id = None
        self._UuidHostips = 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._WhiteType = None
        self._RuleRegexp = None
        self._HandleHistory = None
        self._GroupID = None
        self._MachinesNums = None

    @property
    def Id(self):
        r"""规则ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def UuidHostips(self):
        r"""客户端ID
        :rtype: list of UuidHostip
        """
        return self._UuidHostips

    @UuidHostips.setter
    def UuidHostips(self, UuidHostips):
        self._UuidHostips = UuidHostips

    @property
    def ProcessName(self):
        r"""进程名称
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def DestIp(self):
        r"""目标IP
        :rtype: str
        """
        return self._DestIp

    @DestIp.setter
    def DestIp(self, DestIp):
        self._DestIp = DestIp

    @property
    def DestPort(self):
        r"""目标端口
        :rtype: str
        """
        return self._DestPort

    @DestPort.setter
    def DestPort(self, DestPort):
        self._DestPort = DestPort

    @property
    def Operator(self):
        r"""操作人
        :rtype: str
        """
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def IsGlobal(self):
        r"""是否全局规则
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        r"""状态 (0: 有效 1: 无效)
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def WhiteType(self):
        r"""加白方式， 0:常规加白 1:正则加白
        :rtype: int
        """
        return self._WhiteType

    @WhiteType.setter
    def WhiteType(self, WhiteType):
        self._WhiteType = WhiteType

    @property
    def RuleRegexp(self):
        r"""正则表达式
        :rtype: str
        """
        return self._RuleRegexp

    @RuleRegexp.setter
    def RuleRegexp(self, RuleRegexp):
        self._RuleRegexp = RuleRegexp

    @property
    def HandleHistory(self):
        r"""处理历史事件， 0:不处理 1:处理
        :rtype: int
        """
        return self._HandleHistory

    @HandleHistory.setter
    def HandleHistory(self, HandleHistory):
        self._HandleHistory = HandleHistory

    @property
    def GroupID(self):
        r"""批次id
        :rtype: str
        """
        return self._GroupID

    @GroupID.setter
    def GroupID(self, GroupID):
        self._GroupID = GroupID

    @property
    def MachinesNums(self):
        r"""应用资产，描述服务器数量，全局时候为：全部服务器
        :rtype: str
        """
        return self._MachinesNums

    @MachinesNums.setter
    def MachinesNums(self, MachinesNums):
        self._MachinesNums = MachinesNums


    def _deserialize(self, params):
        self._Id = params.get("Id")
        if params.get("UuidHostips") is not None:
            self._UuidHostips = []
            for item in params.get("UuidHostips"):
                obj = UuidHostip()
                obj._deserialize(item)
                self._UuidHostips.append(obj)
        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._WhiteType = params.get("WhiteType")
        self._RuleRegexp = params.get("RuleRegexp")
        self._HandleHistory = params.get("HandleHistory")
        self._GroupID = params.get("GroupID")
        self._MachinesNums = params.get("MachinesNums")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""恶意请求事件

    """

    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:已忽略|6:已拦截]
        :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: 附加信息
        :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):
        r"""事件Id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def PolicyId(self):
        r"""策略ID
        :rtype: int
        """
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def PolicyType(self):
        r"""命中策略类型[-1:未知|0系统|1:用户]
        :rtype: int
        """
        return self._PolicyType

    @PolicyType.setter
    def PolicyType(self, PolicyType):
        self._PolicyType = PolicyType

    @property
    def PolicyName(self):
        r"""命中策略名称
        :rtype: str
        """
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def ProtectLevel(self):
        r"""保护级别[0:基础版|1:专业版|2:旗舰版]
        :rtype: int
        """
        return self._ProtectLevel

    @ProtectLevel.setter
    def ProtectLevel(self, ProtectLevel):
        self._ProtectLevel = ProtectLevel

    @property
    def HostId(self):
        r"""主机ID
        :rtype: str
        """
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostName(self):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        r"""外网IP
        :rtype: str
        """
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def AgentId(self):
        r"""客户端ID
        :rtype: str
        """
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def Domain(self):
        r"""访问域名
        :rtype: str
        """
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def Tags(self):
        r"""标签特性
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def AccessCount(self):
        r"""访问次数
        :rtype: int
        """
        return self._AccessCount

    @AccessCount.setter
    def AccessCount(self, AccessCount):
        self._AccessCount = AccessCount

    @property
    def ThreatDesc(self):
        r"""威胁描述
        :rtype: str
        """
        return self._ThreatDesc

    @ThreatDesc.setter
    def ThreatDesc(self, ThreatDesc):
        self._ThreatDesc = ThreatDesc

    @property
    def SuggestSolution(self):
        r"""修复方案
        :rtype: str
        """
        return self._SuggestSolution

    @SuggestSolution.setter
    def SuggestSolution(self, SuggestSolution):
        self._SuggestSolution = SuggestSolution

    @property
    def ReferenceLink(self):
        r"""参考链接
        :rtype: str
        """
        return self._ReferenceLink

    @ReferenceLink.setter
    def ReferenceLink(self, ReferenceLink):
        self._ReferenceLink = ReferenceLink

    @property
    def HandleStatus(self):
        r"""处理状态；[0:待处理|2:已加白|3:非信任状态|4:已处理|5:已忽略|6:已拦截]
        :rtype: int
        """
        return self._HandleStatus

    @HandleStatus.setter
    def HandleStatus(self, HandleStatus):
        self._HandleStatus = HandleStatus

    @property
    def Pid(self):
        r"""进程ID
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def ProcessMd5(self):
        r"""进程MD5
        :rtype: str
        """
        return self._ProcessMd5

    @ProcessMd5.setter
    def ProcessMd5(self, ProcessMd5):
        self._ProcessMd5 = ProcessMd5

    @property
    def CmdLine(self):
        r"""命令行
        :rtype: str
        """
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def FirstTime(self):
        r"""首次访问时间
        :rtype: str
        """
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def LastTime(self):
        r"""最近访问时间
        :rtype: str
        """
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def HostStatus(self):
        r"""主机在线状态[OFFLINE:离线|ONLINE:在线|UNKNOWN:未知]
        :rtype: str
        """
        return self._HostStatus

    @HostStatus.setter
    def HostStatus(self, HostStatus):
        self._HostStatus = HostStatus

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def OsType(self):
        r"""[1:CentOS|2:Debian|3:Gentoo|4:Redhat|5:Ubuntu|6:Windows|7:TencentOS|8:CoreOS|9:FreeBSD|10:SUSE]
        :rtype: int
        """
        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):
    r"""恶意请求列表

    """

    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
        :type MachineWanIp: str
        :param _MachineStatus: 主机在线状态[OFFLINE:离线|ONLINE:在线|UNKNOWN:未知]
        :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):
        r"""对外访问域名
        :rtype: str
        """
        return self._Url

    @Url.setter
    def Url(self, Url):
        self._Url = Url

    @property
    def AccessCount(self):
        r"""访问次数
        :rtype: int
        """
        return self._AccessCount

    @AccessCount.setter
    def AccessCount(self, AccessCount):
        self._AccessCount = AccessCount

    @property
    def ProcessName(self):
        r"""进程名
        :rtype: str
        """
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def ProcessMd5(self):
        r"""进程MD5
        :rtype: str
        """
        return self._ProcessMd5

    @ProcessMd5.setter
    def ProcessMd5(self, ProcessMd5):
        self._ProcessMd5 = ProcessMd5

    @property
    def GlobalRuleId(self):
        r"""是否为全局规则，0否，1是
        :rtype: int
        """
        return self._GlobalRuleId

    @GlobalRuleId.setter
    def GlobalRuleId(self, GlobalRuleId):
        self._GlobalRuleId = GlobalRuleId

    @property
    def UserRuleId(self):
        r"""用户规则id
        :rtype: int
        """
        return self._UserRuleId

    @UserRuleId.setter
    def UserRuleId(self, UserRuleId):
        self._UserRuleId = UserRuleId

    @property
    def Status(self):
        r"""状态；0-待处理，2-已加白，3-非信任状态，4-已处理，5-已忽略
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""首次访问时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MergeTime(self):
        r"""最近访问时间
        :rtype: str
        """
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Quuid(self):
        r"""唯一 Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        r"""主机ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Alias(self):
        r"""别名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def Description(self):
        r"""描述
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Id(self):
        r"""唯一ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Reference(self):
        r"""参考
        :rtype: str
        """
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def CmdLine(self):
        r"""命令行
        :rtype: str
        """
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def Pid(self):
        r"""进程号
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Uuid(self):
        r"""唯一UUID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def SuggestScheme(self):
        r"""建议方案
        :rtype: str
        """
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def Tags(self):
        r"""标签特性
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def MachineWanIp(self):
        r"""外网ip
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineStatus(self):
        r"""主机在线状态[OFFLINE:离线|ONLINE:在线|UNKNOWN:未知]
        :rtype: str
        """
        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):
    r"""恶意请求策略

    """

    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):
        r"""策略名称
        :rtype: str
        """
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def PolicyType(self):
        r"""策略类型[0:系统,1:用户]
        :rtype: int
        """
        return self._PolicyType

    @PolicyType.setter
    def PolicyType(self, PolicyType):
        self._PolicyType = PolicyType

    @property
    def PolicyAction(self):
        r"""策略动作[0:告警,1:放行,2:拦截+告警]
        :rtype: int
        """
        return self._PolicyAction

    @PolicyAction.setter
    def PolicyAction(self, PolicyAction):
        self._PolicyAction = PolicyAction

    @property
    def HostScope(self):
        r"""主机范围[1: 所有专业版+旗舰版|2:所有旗舰版|0: 部分主机]
        :rtype: int
        """
        return self._HostScope

    @HostScope.setter
    def HostScope(self, HostScope):
        self._HostScope = HostScope

    @property
    def HostIds(self):
        r"""主机ID
        :rtype: list of str
        """
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def Domains(self):
        r"""域名,作为入参时需要进行base64 encode
        :rtype: list of str
        """
        return self._Domains

    @Domains.setter
    def Domains(self, Domains):
        self._Domains = Domains

    @property
    def IsEnabled(self):
        r"""是否生效[0:生效,1:不生效]
        :rtype: int
        """
        return self._IsEnabled

    @IsEnabled.setter
    def IsEnabled(self, IsEnabled):
        self._IsEnabled = IsEnabled

    @property
    def PolicyId(self):
        r"""策略ID
        :rtype: int
        """
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def PolicyDesc(self):
        r"""策略描述
        :rtype: str
        """
        return self._PolicyDesc

    @PolicyDesc.setter
    def PolicyDesc(self, PolicyDesc):
        self._PolicyDesc = PolicyDesc

    @property
    def IsDealOldEvent(self):
        r"""是否处理之前的事件[0:不处理|1:处理]
        :rtype: int
        """
        return self._IsDealOldEvent

    @IsDealOldEvent.setter
    def IsDealOldEvent(self, IsDealOldEvent):
        self._IsDealOldEvent = IsDealOldEvent

    @property
    def UpdateTime(self):
        r"""更新时间
        :rtype: str
        """
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def EventId(self):
        r"""事件ID
        :rtype: int
        """
        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 RiskMainClass(AbstractModel):
    r"""内存马和rasp注入时候的风险服务

    """

    def __init__(self):
        r"""
        :param _ServiceName: rasp注入时候的风险服务	
        :type ServiceName: str
        """
        self._ServiceName = None

    @property
    def ServiceName(self):
        r"""rasp注入时候的风险服务	
        :rtype: str
        """
        return self._ServiceName

    @ServiceName.setter
    def ServiceName(self, ServiceName):
        self._ServiceName = ServiceName


    def _deserialize(self, params):
        self._ServiceName = params.get("ServiceName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""异常进程事件

    """

    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: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _FirstDetectionMethod: 首次检出方式 0扫描;1实时监控
        :type FirstDetectionMethod: int
        """
        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
        self._FirstDetectionMethod = None

    @property
    def EventId(self):
        r"""事件ID
        :rtype: int
        """
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def HostName(self):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""主机IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        r"""外网IP
        :rtype: str
        """
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def ProcessId(self):
        r"""进程ID
        :rtype: int
        """
        return self._ProcessId

    @ProcessId.setter
    def ProcessId(self, ProcessId):
        self._ProcessId = ProcessId

    @property
    def FilePath(self):
        r"""文件路径
        :rtype: str
        """
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def CmdLine(self):
        r"""执行命令
        :rtype: str
        """
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def StartTime(self):
        r"""进程启动时间
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def DetectTime(self):
        r"""最近检测时间
        :rtype: str
        """
        return self._DetectTime

    @DetectTime.setter
    def DetectTime(self, DetectTime):
        self._DetectTime = DetectTime

    @property
    def VirusName(self):
        r"""病毒名称
        :rtype: str
        """
        return self._VirusName

    @VirusName.setter
    def VirusName(self, VirusName):
        self._VirusName = VirusName

    @property
    def CheckPlatform(self):
        r"""木马检测平台 [1:云查杀引擎|2:TAV|3:binaryAi|4:异常行为|5:威胁情报]
        :rtype: list of str
        """
        return self._CheckPlatform

    @CheckPlatform.setter
    def CheckPlatform(self, CheckPlatform):
        self._CheckPlatform = CheckPlatform

    @property
    def VirusTags(self):
        r"""病毒标签
        :rtype: list of str
        """
        return self._VirusTags

    @VirusTags.setter
    def VirusTags(self, VirusTags):
        self._VirusTags = VirusTags

    @property
    def ThreatDesc(self):
        r"""威胁描述
        :rtype: str
        """
        return self._ThreatDesc

    @ThreatDesc.setter
    def ThreatDesc(self, ThreatDesc):
        self._ThreatDesc = ThreatDesc

    @property
    def SuggestSolution(self):
        r"""建议方案
        :rtype: str
        """
        return self._SuggestSolution

    @SuggestSolution.setter
    def SuggestSolution(self, SuggestSolution):
        self._SuggestSolution = SuggestSolution

    @property
    def ReferenceLink(self):
        r"""参考链接
        :rtype: str
        """
        return self._ReferenceLink

    @ReferenceLink.setter
    def ReferenceLink(self, ReferenceLink):
        self._ReferenceLink = ReferenceLink

    @property
    def HandleStatus(self):
        r"""处理状态[0待处理;1已处理;2查杀中;3已查杀;4已退出;5忽略]
        :rtype: int
        """
        return self._HandleStatus

    @HandleStatus.setter
    def HandleStatus(self, HandleStatus):
        self._HandleStatus = HandleStatus

    @property
    def OnlineStatus(self):
        r"""主机在线状态
        :rtype: int
        """
        return self._OnlineStatus

    @OnlineStatus.setter
    def OnlineStatus(self, OnlineStatus):
        self._OnlineStatus = OnlineStatus

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def FirstDetectionMethod(self):
        r"""首次检出方式 0扫描;1实时监控
        :rtype: int
        """
        return self._FirstDetectionMethod

    @FirstDetectionMethod.setter
    def FirstDetectionMethod(self, FirstDetectionMethod):
        self._FirstDetectionMethod = FirstDetectionMethod


    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")
        self._FirstDetectionMethod = params.get("FirstDetectionMethod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""索引规则

    """

    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):
        r"""全文索引的相关配置
        :rtype: :class:`tencentcloud.cwp.v20180228.models.FullTextInfo`
        """
        return self._FullText

    @FullText.setter
    def FullText(self, FullText):
        self._FullText = FullText

    @property
    def KeyValue(self):
        r"""键值索引的相关配置
        :rtype: :class:`tencentcloud.cwp.v20180228.models.KeyValueInfo`
        """
        return self._KeyValue

    @KeyValue.setter
    def KeyValue(self, KeyValue):
        self._KeyValue = KeyValue

    @property
    def Tag(self):
        r"""元字段索引配置
        :rtype: :class:`tencentcloud.cwp.v20180228.models.KeyValueInfo`
        """
        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):
    r"""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):
        r"""资产指纹类型id列表
        :rtype: list of int non-negative
        """
        return self._AssetTypeIds

    @AssetTypeIds.setter
    def AssetTypeIds(self, AssetTypeIds):
        self._AssetTypeIds = AssetTypeIds

    @property
    def Quuids(self):
        r"""Quuid列表
        :rtype: list of str
        """
        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):
    r"""ScanAsset返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务id
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""策略id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        :rtype: list of int non-negative
        """
        return self._StrategyIdList

    @StrategyIdList.setter
    def StrategyIdList(self, StrategyIdList):
        self._StrategyIdList = StrategyIdList

    @property
    def CategoryIdList(self):
        r"""基线id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        :rtype: list of int non-negative
        """
        return self._CategoryIdList

    @CategoryIdList.setter
    def CategoryIdList(self, CategoryIdList):
        self._CategoryIdList = CategoryIdList

    @property
    def RuleIdList(self):
        r"""检测项id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        :rtype: list of int non-negative
        """
        return self._RuleIdList

    @RuleIdList.setter
    def RuleIdList(self, RuleIdList):
        self._RuleIdList = RuleIdList

    @property
    def QuuidList(self):
        r"""选择StrategyIdList时，不需要填写，其他情况必填
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def UuidList(self):
        r"""主机Uuid数组
        :rtype: list of str
        """
        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):
    r"""ScanBaseline返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ScanningQuuids: 正在扫描中的主机Quuid
        :type ScanningQuuids: list of str
        :param _TaskId: 任务下发成功返回的TaskId
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ScanningQuuids = None
        self._TaskId = None
        self._RequestId = None

    @property
    def ScanningQuuids(self):
        r"""正在扫描中的主机Quuid
        :rtype: list of str
        """
        return self._ScanningQuuids

    @ScanningQuuids.setter
    def ScanningQuuids(self, ScanningQuuids):
        self._ScanningQuuids = ScanningQuuids

    @property
    def TaskId(self):
        r"""任务下发成功返回的TaskId
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :rtype: str
        """
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def TaskId(self):
        r"""任务ID
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def QuuidList(self):
        r"""自选服务器时生效，主机quuid的string数组
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def TimeoutPeriod(self):
        r"""扫描超时时长
        :rtype: int
        """
        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):
    r"""ScanTaskAgain返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SuccessCount: 下发成功的主机数
        :type SuccessCount: int
        :param _BasicVersionCount: 基础版(不支持扫描)主机数
        :type BasicVersionCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SuccessCount = None
        self._BasicVersionCount = None
        self._RequestId = None

    @property
    def SuccessCount(self):
        r"""下发成功的主机数
        :rtype: int
        """
        return self._SuccessCount

    @SuccessCount.setter
    def SuccessCount(self, SuccessCount):
        self._SuccessCount = SuccessCount

    @property
    def BasicVersionCount(self):
        r"""基础版(不支持扫描)主机数
        :rtype: int
        """
        return self._BasicVersionCount

    @BasicVersionCount.setter
    def BasicVersionCount(self, BasicVersionCount):
        self._BasicVersionCount = BasicVersionCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SuccessCount = params.get("SuccessCount")
        self._BasicVersionCount = params.get("BasicVersionCount")
        self._RequestId = params.get("RequestId")


class ScanTaskDetails(AbstractModel):
    r"""扫描任务详情列表信息

    """

    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: 状态码Scanning、Ok、Fail
        :type Status: str
        :param _Description: 描述
        :type Description: str
        :param _Id: id唯一
        :type Id: int
        :param _FailType: 失败类型  3离线、4超时、5失败、8agent版本过低
        :type FailType: int
        :param _MachineWanIp: 外网ip
        :type MachineWanIp: str
        :param _MachineExtraInfo: 附加信息
        :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):
        r"""服务器IP
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def HostName(self):
        r"""服务器名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def OsName(self):
        r"""操作系统
        :rtype: str
        """
        return self._OsName

    @OsName.setter
    def OsName(self, OsName):
        self._OsName = OsName

    @property
    def RiskNum(self):
        r"""风险数量
        :rtype: int
        """
        return self._RiskNum

    @RiskNum.setter
    def RiskNum(self, RiskNum):
        self._RiskNum = RiskNum

    @property
    def ScanBeginTime(self):
        r"""扫描开始时间
        :rtype: str
        """
        return self._ScanBeginTime

    @ScanBeginTime.setter
    def ScanBeginTime(self, ScanBeginTime):
        self._ScanBeginTime = ScanBeginTime

    @property
    def ScanEndTime(self):
        r"""扫描结束时间
        :rtype: str
        """
        return self._ScanEndTime

    @ScanEndTime.setter
    def ScanEndTime(self, ScanEndTime):
        self._ScanEndTime = ScanEndTime

    @property
    def Uuid(self):
        r"""唯一Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        r"""唯一Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Status(self):
        r"""状态码Scanning、Ok、Fail
        :rtype: str
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Description(self):
        r"""描述
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Id(self):
        r"""id唯一
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def FailType(self):
        r"""失败类型  3离线、4超时、5失败、8agent版本过低
        :rtype: int
        """
        return self._FailType

    @FailType.setter
    def FailType(self, FailType):
        self._FailType = FailType

    @property
    def MachineWanIp(self):
        r"""外网ip
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""ScanVulAgain请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EventIds: 漏洞事件id串，多个用英文逗号分隔
        :type EventIds: str
        :param _Uuids: 重新检查的机器uuid,多个逗号分隔
        :type Uuids: str
        :param _EventType: 0漏洞,1windows 补丁
        :type EventType: int
        """
        self._EventIds = None
        self._Uuids = None
        self._EventType = None

    @property
    def EventIds(self):
        r"""漏洞事件id串，多个用英文逗号分隔
        :rtype: str
        """
        return self._EventIds

    @EventIds.setter
    def EventIds(self, EventIds):
        self._EventIds = EventIds

    @property
    def Uuids(self):
        r"""重新检查的机器uuid,多个逗号分隔
        :rtype: str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def EventType(self):
        r"""0漏洞,1windows 补丁
        :rtype: int
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType


    def _deserialize(self, params):
        self._EventIds = params.get("EventIds")
        self._Uuids = params.get("Uuids")
        self._EventType = params.get("EventType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ScanVulAgain返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SuccessCount: 执行成功主机数
        :type SuccessCount: int
        :param _BasicVersionCount: 基础版(不支持)的主机数
        :type BasicVersionCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SuccessCount = None
        self._BasicVersionCount = None
        self._RequestId = None

    @property
    def SuccessCount(self):
        r"""执行成功主机数
        :rtype: int
        """
        return self._SuccessCount

    @SuccessCount.setter
    def SuccessCount(self, SuccessCount):
        self._SuccessCount = SuccessCount

    @property
    def BasicVersionCount(self):
        r"""基础版(不支持)的主机数
        :rtype: int
        """
        return self._BasicVersionCount

    @BasicVersionCount.setter
    def BasicVersionCount(self, BasicVersionCount):
        self._BasicVersionCount = BasicVersionCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SuccessCount = params.get("SuccessCount")
        self._BasicVersionCount = params.get("BasicVersionCount")
        self._RequestId = params.get("RequestId")


class ScanVulRequest(AbstractModel):
    r"""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
        :param _ScanMethod: 0版本比对，2版本比对+poc
        :type ScanMethod: int
        :param _KBNumber: kb编号
        :type KBNumber: list of str
        """
        self._VulLevels = None
        self._HostType = None
        self._VulCategories = None
        self._QuuidList = None
        self._VulEmergency = None
        self._TimeoutPeriod = None
        self._VulIds = None
        self._ScanMethod = None
        self._KBNumber = None

    @property
    def VulLevels(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重 (多选英文;分隔)
        :rtype: str
        """
        return self._VulLevels

    @VulLevels.setter
    def VulLevels(self, VulLevels):
        self._VulLevels = VulLevels

    @property
    def HostType(self):
        r"""服务器分类：1:专业版服务器；2:自选服务器
        :rtype: int
        """
        return self._HostType

    @HostType.setter
    def HostType(self, HostType):
        self._HostType = HostType

    @property
    def VulCategories(self):
        r"""漏洞类型：1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 (多选英文;分隔)
        :rtype: str
        """
        return self._VulCategories

    @VulCategories.setter
    def VulCategories(self, VulCategories):
        self._VulCategories = VulCategories

    @property
    def QuuidList(self):
        r"""自选服务器时生效，主机quuid的string数组
        :rtype: list of str
        """
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def VulEmergency(self):
        r"""是否是应急漏洞 0 否 1 是
        :rtype: int
        """
        return self._VulEmergency

    @VulEmergency.setter
    def VulEmergency(self, VulEmergency):
        self._VulEmergency = VulEmergency

    @property
    def TimeoutPeriod(self):
        r"""超时时长 单位秒 默认 3600 秒
        :rtype: int
        """
        return self._TimeoutPeriod

    @TimeoutPeriod.setter
    def TimeoutPeriod(self, TimeoutPeriod):
        self._TimeoutPeriod = TimeoutPeriod

    @property
    def VulIds(self):
        r"""需要扫描的漏洞id
        :rtype: list of int non-negative
        """
        return self._VulIds

    @VulIds.setter
    def VulIds(self, VulIds):
        self._VulIds = VulIds

    @property
    def ScanMethod(self):
        r"""0版本比对，2版本比对+poc
        :rtype: int
        """
        return self._ScanMethod

    @ScanMethod.setter
    def ScanMethod(self, ScanMethod):
        self._ScanMethod = ScanMethod

    @property
    def KBNumber(self):
        r"""kb编号
        :rtype: list of str
        """
        return self._KBNumber

    @KBNumber.setter
    def KBNumber(self, KBNumber):
        self._KBNumber = KBNumber


    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")
        self._ScanMethod = params.get("ScanMethod")
        self._KBNumber = params.get("KBNumber")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ScanVul返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: int
        :param _BasicVersionCount: 自选主机里面包含基础版个数
        :type BasicVersionCount: int
        :param _SuccessCount: 创建扫描任务机器个数
        :type SuccessCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._BasicVersionCount = None
        self._SuccessCount = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""任务id
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def BasicVersionCount(self):
        r"""自选主机里面包含基础版个数
        :rtype: int
        """
        return self._BasicVersionCount

    @BasicVersionCount.setter
    def BasicVersionCount(self, BasicVersionCount):
        self._BasicVersionCount = BasicVersionCount

    @property
    def SuccessCount(self):
        r"""创建扫描任务机器个数
        :rtype: int
        """
        return self._SuccessCount

    @SuccessCount.setter
    def SuccessCount(self, SuccessCount):
        self._SuccessCount = SuccessCount

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._BasicVersionCount = params.get("BasicVersionCount")
        self._SuccessCount = params.get("SuccessCount")
        self._RequestId = params.get("RequestId")


class ScanVulSettingRequest(AbstractModel):
    r"""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
        :param _ScanMethod: 0版本比对，2版本比对+poc
        :type ScanMethod: int
        """
        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
        self._ScanMethod = None

    @property
    def TimerInterval(self):
        r"""定期检测间隔时间（天）
        :rtype: int
        """
        return self._TimerInterval

    @TimerInterval.setter
    def TimerInterval(self, TimerInterval):
        self._TimerInterval = TimerInterval

    @property
    def VulCategories(self):
        r"""漏洞类型：1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞, 以数组方式传参[1,2]
        :rtype: list of int non-negative
        """
        return self._VulCategories

    @VulCategories.setter
    def VulCategories(self, VulCategories):
        self._VulCategories = VulCategories

    @property
    def VulLevels(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重,以数组方式传参[1,2,3]
        :rtype: list of int non-negative
        """
        return self._VulLevels

    @VulLevels.setter
    def VulLevels(self, VulLevels):
        self._VulLevels = VulLevels

    @property
    def TimerTime(self):
        r"""定期检测时间，如：02:10:50
        :rtype: str
        """
        return self._TimerTime

    @TimerTime.setter
    def TimerTime(self, TimerTime):
        self._TimerTime = TimerTime

    @property
    def VulEmergency(self):
        r"""是否是应急漏洞 0 否 1 是
        :rtype: int
        """
        return self._VulEmergency

    @VulEmergency.setter
    def VulEmergency(self, VulEmergency):
        self._VulEmergency = VulEmergency

    @property
    def StartTime(self):
        r"""扫描开始时间，如：00:00
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""扫描结束时间，如：08:00
        :rtype: str
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def EnableScan(self):
        r"""是否开启扫描 1开启 0不开启
        :rtype: int
        """
        return self._EnableScan

    @EnableScan.setter
    def EnableScan(self, EnableScan):
        self._EnableScan = EnableScan

    @property
    def Uuids(self):
        r"""为空默认扫描全部专业版、旗舰版、轻量版主机，不为空只扫描选中主机
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def ScanMethod(self):
        r"""0版本比对，2版本比对+poc
        :rtype: int
        """
        return self._ScanMethod

    @ScanMethod.setter
    def ScanMethod(self, ScanMethod):
        self._ScanMethod = ScanMethod


    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")
        self._ScanMethod = params.get("ScanMethod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""ScanVulSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ScreenAttackHotspot(AbstractModel):
    r"""大屏全网攻击热点

    """

    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):
        r"""事件名
        :rtype: str
        """
        return self._EventName

    @EventName.setter
    def EventName(self, EventName):
        self._EventName = EventName

    @property
    def SrcIp(self):
        r"""攻击者IP
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def DstIp(self):
        r"""受害者IP
        :rtype: str
        """
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp

    @property
    def Region(self):
        r"""地域
        :rtype: str
        """
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def CreatedTime(self):
        r"""时间
        :rtype: str
        """
        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):
    r"""大屏基线信息

    """

    def __init__(self):
        r"""
        :param _Name: 基线名
        :type Name: str
        :param _Level: 危害等级：1-低危；2-中危；3-高危；4-严重
        :type Level: int
        :param _CategoryId: 基线id
        :type CategoryId: int
        :param _LastScanTime: 最后检测时间
        :type LastScanTime: str
        :param _BaselineFailCount: 基线风险项
        :type BaselineFailCount: int
        :param _Uuid: 主机uuid
        :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):
        r"""基线名
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Level(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CategoryId(self):
        r"""基线id
        :rtype: int
        """
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def LastScanTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def BaselineFailCount(self):
        r"""基线风险项
        :rtype: int
        """
        return self._BaselineFailCount

    @BaselineFailCount.setter
    def BaselineFailCount(self, BaselineFailCount):
        self._BaselineFailCount = BaselineFailCount

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        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):
    r"""大屏可视化安全播报内容

    """

    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):
        r"""播报文章标题
        :rtype: str
        """
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def Level(self):
        r"""播报文章危险程度  0：无， 1：严重， 2: 高危， 3:中危， 4: 低危
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Time(self):
        r"""发布时间
        :rtype: str
        """
        return self._Time

    @Time.setter
    def Time(self, Time):
        self._Time = Time

    @property
    def Id(self):
        r"""文章ID
        :rtype: int
        """
        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):
    r"""大屏网络攻击日志

    """

    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):
        r"""日志ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""客户端ID
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def SrcIp(self):
        r"""来源IP
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def SrcPort(self):
        r"""来源端口
        :rtype: int
        """
        return self._SrcPort

    @SrcPort.setter
    def SrcPort(self, SrcPort):
        self._SrcPort = SrcPort

    @property
    def HttpMethod(self):
        r"""攻击方式
        :rtype: str
        """
        return self._HttpMethod

    @HttpMethod.setter
    def HttpMethod(self, HttpMethod):
        self._HttpMethod = HttpMethod

    @property
    def VulType(self):
        r"""威胁类型
        :rtype: str
        """
        return self._VulType

    @VulType.setter
    def VulType(self, VulType):
        self._VulType = VulType

    @property
    def CreatedTime(self):
        r"""攻击时间
        :rtype: str
        """
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def DstPort(self):
        r"""目标端口
        :rtype: int
        """
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def Quuid(self):
        r"""主机 quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def DstIp(self):
        r"""目标IP
        :rtype: str
        """
        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):
    r"""大屏可视化紧急通知

    """

    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):
        r"""通知标签/标题
        :rtype: str
        """
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def Text(self):
        r"""通知内容
        :rtype: str
        """
        return self._Text

    @Text.setter
    def Text(self, Text):
        self._Text = Text

    @property
    def Type(self):
        r"""跳转类型：0=漏洞管理
        :rtype: int
        """
        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):
    r"""统计入侵检测

    """

    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):
        r"""展示内容：待处理风险总数，影响资产总数
        :rtype: str
        """
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def Total(self):
        r"""事件总数
        :rtype: int
        """
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Category(self):
        r"""name 具体展示内容类型： 攻击事件, 潜在风险, 失陷资产, 潜在风险资产
Value: 事件统计数
        :rtype: list of ScreenNameValue
        """
        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):
    r"""大屏入侵事件详情

    """

    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):
        r"""入侵时间
        :rtype: str
        """
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def EventType(self):
        r"""事件类型：0：文件查杀，1：异常登录， 2：密码破解，3：恶意请求，4：高危命令，5：本地提权， 6：反弹shell
        :rtype: int
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def Content(self):
        r"""事件数据的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
        :rtype: str
        """
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def Level(self):
        r"""事件统一等级 0：提示，1：低危,  2：中危,  3：高危,  4：严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def LevelZh(self):
        r"""等级中文展示
        :rtype: str
        """
        return self._LevelZh

    @LevelZh.setter
    def LevelZh(self, LevelZh):
        self._LevelZh = LevelZh

    @property
    def Id(self):
        r"""事件id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        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):
    r"""大屏主机列表数据

    """

    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: 附加信息
        :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):
        r"""主机名称。
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineOs(self):
        r"""主机系统。
        :rtype: str
        """
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def Uuid(self):
        r"""主机安全Uuid，若客户端长时间不在线将返回空字符。
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineStatus(self):
        r"""大屏主机状态 0：未安装agent，1：离线状态，2:离线-风险，3：离线-严重
4：安装设备-正常，5：安装设备-正常 且是专业版或旗舰版，6：安装设备-风险（网络攻击事件>0） ，
 7：安装设备-风险（网络攻击事件>0 且是专业版或旗舰版，8：安装设备-严重（入侵检测事件>0），
9：安装设备-严重（入侵检测事件>0）且是专业版或旗舰版
        :rtype: int
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Quuid(self):
        r"""CVM或BM机器唯一Uuid。
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def VulNum(self):
        r"""漏洞数。
        :rtype: int
        """
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def MachineIp(self):
        r"""主机IP。
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        r"""主机外网IP。
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def BaselineNum(self):
        r"""基线风险数。
        :rtype: int
        """
        return self._BaselineNum

    @BaselineNum.setter
    def BaselineNum(self, BaselineNum):
        self._BaselineNum = BaselineNum

    @property
    def CyberAttackNum(self):
        r"""网络风险数。
        :rtype: int
        """
        return self._CyberAttackNum

    @CyberAttackNum.setter
    def CyberAttackNum(self, CyberAttackNum):
        self._CyberAttackNum = CyberAttackNum

    @property
    def SecurityStatus(self):
        r"""风险状态。
<li>SAFE：安全</li>
<li>RISK：风险</li>
<li>UNKNOWN：未知</li>
        :rtype: str
        """
        return self._SecurityStatus

    @SecurityStatus.setter
    def SecurityStatus(self, SecurityStatus):
        self._SecurityStatus = SecurityStatus

    @property
    def InvasionNum(self):
        r"""入侵事件数
        :rtype: int
        """
        return self._InvasionNum

    @InvasionNum.setter
    def InvasionNum(self, InvasionNum):
        self._InvasionNum = InvasionNum

    @property
    def MachineType(self):
        r"""机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def CpuLoad(self):
        r"""cpu 负载状态
        :rtype: str
        """
        return self._CpuLoad

    @CpuLoad.setter
    def CpuLoad(self, CpuLoad):
        self._CpuLoad = CpuLoad

    @property
    def CpuSize(self):
        r"""cpu 核数
        :rtype: float
        """
        return self._CpuSize

    @CpuSize.setter
    def CpuSize(self, CpuSize):
        self._CpuSize = CpuSize

    @property
    def DiskLoad(self):
        r"""硬盘使用率 %
        :rtype: str
        """
        return self._DiskLoad

    @DiskLoad.setter
    def DiskLoad(self, DiskLoad):
        self._DiskLoad = DiskLoad

    @property
    def DiskSize(self):
        r"""硬盘容量GB
        :rtype: float
        """
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize

    @property
    def MemLoad(self):
        r"""内存负载率%
        :rtype: str
        """
        return self._MemLoad

    @MemLoad.setter
    def MemLoad(self, MemLoad):
        self._MemLoad = MemLoad

    @property
    def MemSize(self):
        r"""内存容量 GB
        :rtype: float
        """
        return self._MemSize

    @MemSize.setter
    def MemSize(self, MemSize):
        self._MemSize = MemSize

    @property
    def CoreVersion(self):
        r"""内核版本
        :rtype: str
        """
        return self._CoreVersion

    @CoreVersion.setter
    def CoreVersion(self, CoreVersion):
        self._CoreVersion = CoreVersion

    @property
    def MachineExtraInfo(self):
        r"""附加信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""【云安全预警】大屏可视化数据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):
        r"""统计类型 不同接口对应不同的内容
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Value(self):
        r"""统计数量
        :rtype: int
        """
        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):
    r"""大屏可视化攻防状态

    """

    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):
        r"""类型值：文件查杀，暴力破解，漏洞扫描，基线检测
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Status(self):
        r"""文件查杀:  0:从未检测过，或0资产付费情况, 1:已检测，存在恶意文件, 2:已检测，未开启隔离防护, 3:已检测且已开启防护且无风险；
暴力破解: 0:未开启防护（0付费资产情况）1:已开启自动阻断；
漏洞扫描: 0:从未检测过，或0资产付费情况, 1:存在漏洞风险, 2:无风险；
基线检测: 0:从未检测过，或0资产付费情况, 1:存在基线风险,2:无风险；
        :rtype: int
        """
        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):
    r"""大屏可视化主机安全返回态势数据

    """

    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):
        r"""cloud：云查杀引擎，detect：检测引擎，defend：攻击防御，threat：威胁情报，analysis：异常分析，ai：AI引擎
        :rtype: str
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Name(self):
        r"""cloud：云查杀引擎，detect：检测引擎，defend：攻击防御，threat：威胁情报，analysis：异常分析，ai：AI引擎
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Count(self):
        r"""总数
        :rtype: int
        """
        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):
    r"""地域信息

    """

    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):
        r"""地域标志，如 ap-guangzhou，ap-shanghai，ap-beijing
        :rtype: str
        """
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def RegionName(self):
        r"""地域中文名，如华南地区（广州），华东地区（上海金融），华北地区（北京）
        :rtype: str
        """
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def RegionId(self):
        r"""地域ID
        :rtype: int
        """
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def RegionCode(self):
        r"""地域代码，如 gz，sh，bj
        :rtype: str
        """
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def RegionNameEn(self):
        r"""地域英文名
        :rtype: str
        """
        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):
    r"""大屏主机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):
        r"""所有区域
        :rtype: str
        """
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def RegionName(self):
        r"""区域中文描述
        :rtype: str
        """
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def Machines(self):
        r"""主机列表
        :rtype: list of ScreenMachine
        """
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def TotalCount(self):
        r"""此区域的主机总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RiskCnt(self):
        r"""风险主机数量
        :rtype: int
        """
        return self._RiskCnt

    @RiskCnt.setter
    def RiskCnt(self, RiskCnt):
        self._RiskCnt = RiskCnt

    @property
    def AttackCnt(self):
        r"""潜在风险主机数
        :rtype: int
        """
        return self._AttackCnt

    @AttackCnt.setter
    def AttackCnt(self, AttackCnt):
        self._AttackCnt = AttackCnt

    @property
    def SafetyCnt(self):
        r"""无风险主机数
        :rtype: int
        """
        return self._SafetyCnt

    @SafetyCnt.setter
    def SafetyCnt(self, SafetyCnt):
        self._SafetyCnt = SafetyCnt

    @property
    def UnAgentOfflineCnt(self):
        r"""离线/未安装主机数
        :rtype: int
        """
        return self._UnAgentOfflineCnt

    @UnAgentOfflineCnt.setter
    def UnAgentOfflineCnt(self, UnAgentOfflineCnt):
        self._UnAgentOfflineCnt = UnAgentOfflineCnt

    @property
    def IgnoreCnt(self):
        r"""省略展示多少主机，等于0时没有省略展示
        :rtype: int
        """
        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):
    r"""大屏攻防趋势图

    """

    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):
        r"""X轴 时间
        :rtype: str
        """
        return self._X

    @X.setter
    def X(self, X):
        self._X = X

    @property
    def Y(self):
        r"""Y轴 数值
        :rtype: int
        """
        return self._Y

    @Y.setter
    def Y(self, Y):
        self._Y = Y

    @property
    def Type(self):
        r"""统计分类类型 值：防御次数，攻击次数
        :rtype: str
        """
        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):
    r"""大屏漏洞列表

    """

    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系统漏洞
        :type Category: int
        :param _Uuid: 主机UUID
        :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):
        r"""漏洞事件id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        r"""漏洞名
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def LastTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def Level(self):
        r"""漏洞等级 1:低 2:中 3:高 4:提示
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Category(self):
        r"""漏洞类型 1: web-cms漏洞, 2:应用漏洞, 4: Linux软件漏洞, 5: Windows系统漏洞
        :rtype: int
        """
        return self._Category

    @Category.setter
    def Category(self, Category):
        self._Category = Category

    @property
    def Uuid(self):
        r"""主机UUID
        :rtype: str
        """
        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):
    r"""SearchLog请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StartTime: 要检索分析的日志的起始时间，Unix时间戳（毫秒）
        :type StartTime: int
        :param _EndTime: 要检索分析的日志的结束时间，Unix时间戳（毫秒）
        :type EndTime: int
        :param _QueryString: 检索分析语句，最大长度为12KB，查询语法可参考文档 https://cloud.tencent.com/document/product/296/50508
        :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):
        r"""要检索分析的日志的起始时间，Unix时间戳（毫秒）
        :rtype: int
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""要检索分析的日志的结束时间，Unix时间戳（毫秒）
        :rtype: int
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def QueryString(self):
        r"""检索分析语句，最大长度为12KB，查询语法可参考文档 https://cloud.tencent.com/document/product/296/50508
        :rtype: str
        """
        return self._QueryString

    @QueryString.setter
    def QueryString(self, QueryString):
        self._QueryString = QueryString

    @property
    def Count(self):
        r"""表示单次查询返回的原始日志条数，最大值为1000，获取后续日志需使用Context参数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Sort(self):
        r"""原始日志是否按时间排序返回；可选值：asc(升序)、desc(降序)，默认为 desc
        :rtype: str
        """
        return self._Sort

    @Sort.setter
    def Sort(self, Sort):
        self._Sort = Sort

    @property
    def Context(self):
        r"""透传上次接口返回的Context值，可获取后续更多日志，总计最多可获取1万条原始日志，过期时间1小时
        :rtype: str
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""匹配检索条件的原始日志的数量
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Context(self):
        r"""透传本次接口返回的Context值，可获取后续更多日志，过期时间1小时
        :rtype: str
        """
        return self._Context

    @Context.setter
    def Context(self, Context):
        self._Context = Context

    @property
    def ListOver(self):
        r"""符合检索条件的日志是否已全部返回，如未全部返回可使用Context参数获取后续更多日志
        :rtype: bool
        """
        return self._ListOver

    @ListOver.setter
    def ListOver(self, ListOver):
        self._ListOver = ListOver

    @property
    def Analysis(self):
        r"""返回的是否为统计分析（即SQL）结果
        :rtype: bool
        """
        return self._Analysis

    @Analysis.setter
    def Analysis(self, Analysis):
        self._Analysis = Analysis

    @property
    def Data(self):
        r"""匹配检索条件的原始日志
        :rtype: list of LogInfo
        """
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""快速搜索模板

    """

    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):
        r"""检索名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def LogType(self):
        r"""检索索引类型
        :rtype: str
        """
        return self._LogType

    @LogType.setter
    def LogType(self, LogType):
        self._LogType = LogType

    @property
    def Condition(self):
        r"""检索语句
        :rtype: str
        """
        return self._Condition

    @Condition.setter
    def Condition(self, Condition):
        self._Condition = Condition

    @property
    def TimeRange(self):
        r"""时间范围
        :rtype: str
        """
        return self._TimeRange

    @TimeRange.setter
    def TimeRange(self, TimeRange):
        self._TimeRange = TimeRange

    @property
    def Query(self):
        r"""转换的检索语句内容
        :rtype: str
        """
        return self._Query

    @Query.setter
    def Query(self, Query):
        self._Query = Query

    @property
    def Flag(self):
        r"""检索方式。输入框检索：standard,过滤，检索：simple
        :rtype: str
        """
        return self._Flag

    @Flag.setter
    def Flag(self, Flag):
        self._Flag = Flag

    @property
    def DisplayData(self):
        r"""展示数据
        :rtype: str
        """
        return self._DisplayData

    @DisplayData.setter
    def DisplayData(self, DisplayData):
        self._DisplayData = DisplayData

    @property
    def Id(self):
        r"""规则ID
        :rtype: int
        """
        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 SecurityDynamic(AbstractModel):
    r"""安全事件消息数据。

    """

    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):
        r"""主机安全客户端UUID。
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def EventTime(self):
        r"""安全事件发生时间。
        :rtype: str
        """
        return self._EventTime

    @EventTime.setter
    def EventTime(self, EventTime):
        self._EventTime = EventTime

    @property
    def EventType(self):
        r"""安全事件类型。
<li>MALWARE：木马事件</li>
<li>NON_LOCAL_LOGIN：异地登录</li>
<li>BRUTEATTACK_SUCCESS：密码破解成功</li>
<li>VUL：漏洞</li>
<li>BASELINE：安全基线</li>
        :rtype: str
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def Message(self):
        r"""安全事件消息。
        :rtype: str
        """
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def SecurityLevel(self):
        r"""安全事件等级。
<li>RISK: 严重</li>
<li>HIGH: 高危</li>
<li>NORMAL: 中危</li>
<li>LOW: 低危</li>
<li>UNKNOWNED: 可疑</li>
        :rtype: str
        """
        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):
    r"""安全事件统计列表

    """

    def __init__(self):
        r"""
        :param _EventCnt: 安全事件数
        :type EventCnt: int
        :param _UuidCnt: 受影响机器数
        :type UuidCnt: int
        """
        self._EventCnt = None
        self._UuidCnt = None

    @property
    def EventCnt(self):
        r"""安全事件数
        :rtype: int
        """
        return self._EventCnt

    @EventCnt.setter
    def EventCnt(self, EventCnt):
        self._EventCnt = EventCnt

    @property
    def UuidCnt(self):
        r"""受影响机器数
        :rtype: int
        """
        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):
    r"""安全趋势统计数据。

    """

    def __init__(self):
        r"""
        :param _Date: 事件时间。
        :type Date: str
        :param _EventNum: 事件数量。
        :type EventNum: int
        """
        self._Date = None
        self._EventNum = None

    @property
    def Date(self):
        r"""事件时间。
        :rtype: str
        """
        return self._Date

    @Date.setter
    def Date(self, Date):
        self._Date = Date

    @property
    def EventNum(self):
        r"""事件数量。
        :rtype: int
        """
        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):
    r"""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):
        r"""木马事件ID数组。(最大100条)
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def KillProcess(self):
        r"""是否杀掉进程
        :rtype: bool
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SuccessIds = None
        self._FailedIds = None
        self._RequestId = None

    @property
    def SuccessIds(self):
        r"""隔离成功的ID数组，若无则返回空数组
        :rtype: list of int non-negative
        """
        return self._SuccessIds

    @SuccessIds.setter
    def SuccessIds(self, SuccessIds):
        self._SuccessIds = SuccessIds

    @property
    def FailedIds(self):
        r"""隔离失败的ID数组，若无则返回空数组
        :rtype: list of int non-negative
        """
        return self._FailedIds

    @FailedIds.setter
    def FailedIds(self, FailedIds):
        self._FailedIds = FailedIds

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""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):
        r"""ID数组，最大100条。
        :rtype: list of int non-negative
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        r"""新状态(0-待处理 1-高危 2-正常)
        :rtype: int
        """
        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):
    r"""SetBashEventsStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class SetLocalStorageExpireRequest(AbstractModel):
    r"""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):
        r"""键
        :rtype: str
        """
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Expire(self):
        r"""过期时间（单位：秒）
        :rtype: int
        """
        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):
    r"""SetLocalStorageExpire返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class SetLocalStorageItemRequest(AbstractModel):
    r"""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):
        r"""键
        :rtype: str
        """
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Value(self):
        r"""值
        :rtype: str
        """
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Expire(self):
        r"""失效时间（单位；秒）
        :rtype: int
        """
        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):
    r"""SetLocalStorageItem返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ShellPolicyList(AbstractModel):
    r"""反弹shell列表数据详情

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略ID
注意：此字段可能返回 null，表示取不到有效值。
        :type PolicyId: int
        :param _PolicyName: 策略名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PolicyName: str
        :param _PolicyType: 0 系统策略, 1 用户自定义策略
注意：此字段可能返回 null，表示取不到有效值。
        :type PolicyType: int
        :param _PolicyDesc: 策略描述
注意：此字段可能返回 null，表示取不到有效值。
        :type PolicyDesc: str
        :param _PolicyAction: 策略动作[0:告警,1:放行,2:拦截+告警]
注意：此字段可能返回 null，表示取不到有效值。
        :type PolicyAction: int
        :param _IsEnabled: 0 开启, 1关闭
注意：此字段可能返回 null，表示取不到有效值。
        :type IsEnabled: int
        :param _UpdateTime: 更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _HostScope: 主机范围:[0: 一组quuid 1: 所有专业版 2: 旗舰版 3: 所有主机]
注意：此字段可能返回 null，表示取不到有效值。
        :type HostScope: int
        """
        self._PolicyId = None
        self._PolicyName = None
        self._PolicyType = None
        self._PolicyDesc = None
        self._PolicyAction = None
        self._IsEnabled = None
        self._UpdateTime = None
        self._HostScope = None

    @property
    def PolicyId(self):
        r"""策略ID
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def PolicyName(self):
        r"""策略名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def PolicyType(self):
        r"""0 系统策略, 1 用户自定义策略
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._PolicyType

    @PolicyType.setter
    def PolicyType(self, PolicyType):
        self._PolicyType = PolicyType

    @property
    def PolicyDesc(self):
        r"""策略描述
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._PolicyDesc

    @PolicyDesc.setter
    def PolicyDesc(self, PolicyDesc):
        self._PolicyDesc = PolicyDesc

    @property
    def PolicyAction(self):
        r"""策略动作[0:告警,1:放行,2:拦截+告警]
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._PolicyAction

    @PolicyAction.setter
    def PolicyAction(self, PolicyAction):
        self._PolicyAction = PolicyAction

    @property
    def IsEnabled(self):
        r"""0 开启, 1关闭
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._IsEnabled

    @IsEnabled.setter
    def IsEnabled(self, IsEnabled):
        self._IsEnabled = IsEnabled

    @property
    def UpdateTime(self):
        r"""更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def HostScope(self):
        r"""主机范围:[0: 一组quuid 1: 所有专业版 2: 旗舰版 3: 所有主机]
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._HostScope

    @HostScope.setter
    def HostScope(self, HostScope):
        self._HostScope = HostScope


    def _deserialize(self, params):
        self._PolicyId = params.get("PolicyId")
        self._PolicyName = params.get("PolicyName")
        self._PolicyType = params.get("PolicyType")
        self._PolicyDesc = params.get("PolicyDesc")
        self._PolicyAction = params.get("PolicyAction")
        self._IsEnabled = params.get("IsEnabled")
        self._UpdateTime = params.get("UpdateTime")
        self._HostScope = params.get("HostScope")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SkillInfo(AbstractModel):
    r"""Skill 的信息

    """

    def __init__(self):
        r"""
        :param _SkillName: Skill名称
        :type SkillName: str
        :param _SkillDesc: Skill 描述
        :type SkillDesc: str
        :param _SkillSource: Skill来源
        :type SkillSource: str
        :param _Tags: Skill风险标签
        :type Tags: list of str
        :param _RiskDesc: skill风险描述
        :type RiskDesc: str
        :param _Evidence: 证据链
        :type Evidence: str
        :param _Id: 事件ID
        :type Id: int
        """
        self._SkillName = None
        self._SkillDesc = None
        self._SkillSource = None
        self._Tags = None
        self._RiskDesc = None
        self._Evidence = None
        self._Id = None

    @property
    def SkillName(self):
        r"""Skill名称
        :rtype: str
        """
        return self._SkillName

    @SkillName.setter
    def SkillName(self, SkillName):
        self._SkillName = SkillName

    @property
    def SkillDesc(self):
        r"""Skill 描述
        :rtype: str
        """
        return self._SkillDesc

    @SkillDesc.setter
    def SkillDesc(self, SkillDesc):
        self._SkillDesc = SkillDesc

    @property
    def SkillSource(self):
        r"""Skill来源
        :rtype: str
        """
        return self._SkillSource

    @SkillSource.setter
    def SkillSource(self, SkillSource):
        self._SkillSource = SkillSource

    @property
    def Tags(self):
        r"""Skill风险标签
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def RiskDesc(self):
        r"""skill风险描述
        :rtype: str
        """
        return self._RiskDesc

    @RiskDesc.setter
    def RiskDesc(self, RiskDesc):
        self._RiskDesc = RiskDesc

    @property
    def Evidence(self):
        r"""证据链
        :rtype: str
        """
        return self._Evidence

    @Evidence.setter
    def Evidence(self, Evidence):
        self._Evidence = Evidence

    @property
    def Id(self):
        r"""事件ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._SkillName = params.get("SkillName")
        self._SkillDesc = params.get("SkillDesc")
        self._SkillSource = params.get("SkillSource")
        self._Tags = params.get("Tags")
        self._RiskDesc = params.get("RiskDesc")
        self._Evidence = params.get("Evidence")
        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 StandardModeConfig(AbstractModel):
    r"""标准模式阻断配置

    """

    def __init__(self):
        r"""
        :param _Ttl: 阻断时长，单位：秒
        :type Ttl: int
        """
        self._Ttl = None

    @property
    def Ttl(self):
        r"""阻断时长，单位：秒
        :rtype: int
        """
        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):
    r"""StartBaselineDetect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Param: 基线检测参数
        :type Param: :class:`tencentcloud.cwp.v20180228.models.BaselineDetectParam`
        """
        self._Param = None

    @property
    def Param(self):
        r"""基线检测参数
        :rtype: :class:`tencentcloud.cwp.v20180228.models.BaselineDetectParam`
        """
        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):
    r"""StartBaselineDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 扫描任务ID
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        r"""扫描任务ID
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""StopAssetScan请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务Id
        :type TaskId: int
        """
        self._TaskId = None

    @property
    def TaskId(self):
        r"""任务Id
        :rtype: int
        """
        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):
    r"""StopAssetScan返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class StopBaselineDetectRequest(AbstractModel):
    r"""StopBaselineDetect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskIds: 取消任务ID集合
        :type TaskIds: list of int
        """
        self._TaskIds = None

    @property
    def TaskIds(self):
        r"""取消任务ID集合
        :rtype: list of int
        """
        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):
    r"""StopBaselineDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class StopNoticeBanTipsRequest(AbstractModel):
    r"""StopNoticeBanTips请求参数结构体

    """


class StopNoticeBanTipsResponse(AbstractModel):
    r"""StopNoticeBanTips返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class Strategy(AbstractModel):
    r"""基线安全用户策略信息

    """

    def __init__(self):
        r"""
        :param _StrategyName: 策略名
        :type StrategyName: str
        :param _StrategyId: 策略id
        :type StrategyId: int
        :param _RuleCount: 基线检测项总数
        :type RuleCount: int
        :param _HostCount: 主机数量
        :type HostCount: int
        :param _ScanCycle: 扫描周期
        :type ScanCycle: int
        :param _ScanAt: 扫描时间
        :type ScanAt: str
        :param _Enabled: 是否可用
        :type Enabled: int
        :param _PassRate: 通过率
        :type PassRate: int
        :param _CategoryIds: 基线id
        :type CategoryIds: str
        :param _IsDefault: 是否默认策略
        :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):
        r"""策略名
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def StrategyId(self):
        r"""策略id
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def RuleCount(self):
        r"""基线检测项总数
        :rtype: int
        """
        return self._RuleCount

    @RuleCount.setter
    def RuleCount(self, RuleCount):
        self._RuleCount = RuleCount

    @property
    def HostCount(self):
        r"""主机数量
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ScanCycle(self):
        r"""扫描周期
        :rtype: int
        """
        return self._ScanCycle

    @ScanCycle.setter
    def ScanCycle(self, ScanCycle):
        self._ScanCycle = ScanCycle

    @property
    def ScanAt(self):
        r"""扫描时间
        :rtype: str
        """
        return self._ScanAt

    @ScanAt.setter
    def ScanAt(self, ScanAt):
        self._ScanAt = ScanAt

    @property
    def Enabled(self):
        r"""是否可用
        :rtype: int
        """
        return self._Enabled

    @Enabled.setter
    def Enabled(self, Enabled):
        self._Enabled = Enabled

    @property
    def PassRate(self):
        r"""通过率
        :rtype: int
        """
        return self._PassRate

    @PassRate.setter
    def PassRate(self, PassRate):
        self._PassRate = PassRate

    @property
    def CategoryIds(self):
        r"""基线id
        :rtype: str
        """
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds

    @property
    def IsDefault(self):
        r"""是否默认策略
        :rtype: int
        """
        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):
    r"""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):
        r"""规则ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Disabled(self):
        r"""是否禁用
        :rtype: int
        """
        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):
    r"""SwitchBashRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class SyncAssetScanRequest(AbstractModel):
    r"""SyncAssetScan请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Sync: 是否同步：true-是 false-否；默认false
        :type Sync: bool
        """
        self._Sync = None

    @property
    def Sync(self):
        r"""是否同步：true-是 false-否；默认false
        :rtype: bool
        """
        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):
    r"""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
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._State = None
        self._LatestStartTime = None
        self._LatestEndTime = None
        self._TaskId = None
        self._RequestId = None

    @property
    def State(self):
        r"""枚举值有(大写)：NOTASK（没有同步任务），SYNCING（同步中），FINISHED（同步完成）
        :rtype: str
        """
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def LatestStartTime(self):
        r"""最新开始同步时间
        :rtype: str
        """
        return self._LatestStartTime

    @LatestStartTime.setter
    def LatestStartTime(self, LatestStartTime):
        self._LatestStartTime = LatestStartTime

    @property
    def LatestEndTime(self):
        r"""最新结束同步时间
        :rtype: str
        """
        return self._LatestEndTime

    @LatestEndTime.setter
    def LatestEndTime(self, LatestEndTime):
        self._LatestEndTime = LatestEndTime

    @property
    def TaskId(self):
        r"""任务ID
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""SyncBaselineDetectSummary请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskIds: 用于计算检测中和进度的任务ID集合，一般不用传入
        :type TaskIds: list of int non-negative
        """
        self._TaskIds = None

    @property
    def TaskIds(self):
        r"""用于计算检测中和进度的任务ID集合，一般不用传入
        :rtype: list of int non-negative
        """
        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 SyncBaselineDetectSummaryResponse(AbstractModel):
    r"""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）。定位问题时需要提供该次请求的 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):
        r"""处理进度
        :rtype: int
        """
        return self._ProgressRate

    @ProgressRate.setter
    def ProgressRate(self, ProgressRate):
        self._ProgressRate = ProgressRate

    @property
    def NotPassPolicyCount(self):
        r"""未通过策略总数
        :rtype: int
        """
        return self._NotPassPolicyCount

    @NotPassPolicyCount.setter
    def NotPassPolicyCount(self, NotPassPolicyCount):
        self._NotPassPolicyCount = NotPassPolicyCount

    @property
    def HostCount(self):
        r"""主机总数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def StartTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""结束时间
        :rtype: str
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def WillFirstScan(self):
        r"""1:即将进行首次扫描   0:已经扫描过了
        :rtype: int
        """
        return self._WillFirstScan

    @WillFirstScan.setter
    def WillFirstScan(self, WillFirstScan):
        self._WillFirstScan = WillFirstScan

    @property
    def DetectingTaskIds(self):
        r"""正在检测的任务ID
        :rtype: list of int
        """
        return self._DetectingTaskIds

    @DetectingTaskIds.setter
    def DetectingTaskIds(self, DetectingTaskIds):
        self._DetectingTaskIds = DetectingTaskIds

    @property
    def LeftMins(self):
        r"""扫描中剩余时间(分钟)
        :rtype: int
        """
        return self._LeftMins

    @LeftMins.setter
    def LeftMins(self, LeftMins):
        self._LeftMins = LeftMins

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""SyncMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Sync: 是否同步
        :type Sync: bool
        """
        self._Sync = None

    @property
    def Sync(self):
        r"""是否同步
        :rtype: bool
        """
        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):
    r"""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）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._State = None
        self._LatestStartTime = None
        self._LatestEndTime = None
        self._RequestId = None

    @property
    def State(self):
        r"""枚举值有(大写)：NOTASK（没有同步任务），SYNCING（同步中），FINISHED（同步完成）
        :rtype: str
        """
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def LatestStartTime(self):
        r"""最新开始同步时间
        :rtype: str
        """
        return self._LatestStartTime

    @LatestStartTime.setter
    def LatestStartTime(self, LatestStartTime):
        self._LatestStartTime = LatestStartTime

    @property
    def LatestEndTime(self):
        r"""最新同步结束时间
        :rtype: str
        """
        return self._LatestEndTime

    @LatestEndTime.setter
    def LatestEndTime(self, LatestEndTime):
        self._LatestEndTime = LatestEndTime

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        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):
    r"""标签信息

    """

    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):
        r"""标签ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        r"""标签名
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Count(self):
        r"""服务器数
        :rtype: int
        """
        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):
    r"""标签相关服务器信息

    """

    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):
        r"""ID
        :rtype: str
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        r"""主机ID
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineName(self):
        r"""主机名称
        :rtype: str
        """
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineIp(self):
        r"""主机内网IP
        :rtype: str
        """
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        r"""主机外网IP
        :rtype: str
        """
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineRegion(self):
        r"""主机区域
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def MachineType(self):
        r"""主机区域类型
        :rtype: str
        """
        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):
    r"""平台标签

    """

    def __init__(self):
        r"""
        :param _TagKey: 标签键
        :type TagKey: str
        :param _TagValue: 标签值
        :type TagValue: str
        """
        self._TagKey = None
        self._TagValue = None

    @property
    def TagKey(self):
        r"""标签键
        :rtype: str
        """
        return self._TagKey

    @TagKey.setter
    def TagKey(self, TagKey):
        self._TagKey = TagKey

    @property
    def TagValue(self):
        r"""标签值
        :rtype: str
        """
        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):
    r"""任务扫描状态列表

    """

    def __init__(self):
        r"""
        :param _Scanning: 扫描中（包含初始化）
        :type Scanning: str
        :param _Ok: 扫描终止（包含终止中）
        :type Ok: str
        :param _Fail: 扫描失败
        :type Fail: str
        :param _Stop: 扫描失败（提示具体原因：扫描超时、客户端版本低、客户端离线）
        :type Stop: str
        """
        self._Scanning = None
        self._Ok = None
        self._Fail = None
        self._Stop = None

    @property
    def Scanning(self):
        r"""扫描中（包含初始化）
        :rtype: str
        """
        return self._Scanning

    @Scanning.setter
    def Scanning(self, Scanning):
        self._Scanning = Scanning

    @property
    def Ok(self):
        r"""扫描终止（包含终止中）
        :rtype: str
        """
        return self._Ok

    @Ok.setter
    def Ok(self, Ok):
        self._Ok = Ok

    @property
    def Fail(self):
        r"""扫描失败
        :rtype: str
        """
        return self._Fail

    @Fail.setter
    def Fail(self, Fail):
        self._Fail = Fail

    @property
    def Stop(self):
        r"""扫描失败（提示具体原因：扫描超时、客户端版本低、客户端离线）
        :rtype: str
        """
        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):
    r"""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):
        r"""规则Id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Data(self):
        r"""测试内容
        :rtype: str
        """
        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):
    r"""TestWebHookRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class TopInfo(AbstractModel):
    r"""网络攻击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):
        r"""top统计数据，如ip、漏洞名等
        :rtype: str
        """
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Count(self):
        r"""top统计计数
        :rtype: int
        """
        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):
    r"""TrustMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马ID数组（单次不超过的最大条数：100）
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""木马ID数组（单次不超过的最大条数：100）
        :rtype: list of int non-negative
        """
        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):
    r"""TrustMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UntrustMalwaresRequest(AbstractModel):
    r"""UntrustMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马ID数组 (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        r"""木马ID数组 (最大100条)
        :rtype: list of int non-negative
        """
        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):
    r"""UntrustMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UpdateBaselineStrategyRequest(AbstractModel):
    r"""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):
        r"""策略id
        :rtype: int
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def StrategyName(self):
        r"""策略名称
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def ScanCycle(self):
        r"""检测周期
        :rtype: int
        """
        return self._ScanCycle

    @ScanCycle.setter
    def ScanCycle(self, ScanCycle):
        self._ScanCycle = ScanCycle

    @property
    def ScanAt(self):
        r"""定期检测时间，该时间下发扫描
        :rtype: str
        """
        return self._ScanAt

    @ScanAt.setter
    def ScanAt(self, ScanAt):
        self._ScanAt = ScanAt

    @property
    def CategoryIds(self):
        r"""该策略下选择的基线id数组
        :rtype: list of str
        """
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds

    @property
    def IsGlobal(self):
        r"""扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        :rtype: int
        """
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MachineType(self):
        r"""云主机类型：
cvm：腾讯云服务器
bm：裸金属
ecm：边缘计算主机
lh:轻量应用服务器
other:混合云机器
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def RegionCode(self):
        r"""主机地域 ap-guangzhou
        :rtype: str
        """
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def Quuids(self):
        r"""主机id数组
        :rtype: list of str
        """
        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):
    r"""UpdateBaselineStrategy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UpdateHostLoginWhiteObj(AbstractModel):
    r"""编辑白名单实体

    """

    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):
        r"""地域信息数组
        :rtype: list of Place
        """
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places

    @property
    def SrcIp(self):
        r"""来源ip
        :rtype: str
        """
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def UserName(self):
        r"""用户名
        :rtype: str
        """
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def Remark(self):
        r"""备注信息
        :rtype: str
        """
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Id(self):
        r"""要更新的数据id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def StartTime(self):
        r"""开始时间
        :rtype: str
        """
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        r"""结束时间
        :rtype: str
        """
        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):
    r"""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):
        r"""机器 Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def TagIds(self):
        r"""标签ID，该操作会覆盖原有的标签列表
        :rtype: list of int non-negative
        """
        return self._TagIds

    @TagIds.setter
    def TagIds(self, TagIds):
        self._TagIds = TagIds

    @property
    def MachineRegion(self):
        r"""服务器地区 如: ap-guangzhou
        :rtype: str
        """
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def MachineArea(self):
        r"""服务器类型(CVM|BM|ECM|LH|Other)
        :rtype: str
        """
        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):
    r"""UpdateMachineTags返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        r"""唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :rtype: str
        """
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UsualPlace(AbstractModel):
    r"""常用登录地

    """

    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):
        r"""ID。
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        r"""主机安全客户端唯一标识UUID。
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def CountryId(self):
        r"""国家 ID。
        :rtype: int
        """
        return self._CountryId

    @CountryId.setter
    def CountryId(self, CountryId):
        self._CountryId = CountryId

    @property
    def ProvinceId(self):
        r"""省份 ID。
        :rtype: int
        """
        return self._ProvinceId

    @ProvinceId.setter
    def ProvinceId(self, ProvinceId):
        self._ProvinceId = ProvinceId

    @property
    def CityId(self):
        r"""城市 ID。
        :rtype: int
        """
        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 UuidHostip(AbstractModel):
    r"""过检机器和对应的hostip

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器id
        :type Uuid: str
        :param _Hostip: 服务器ip
        :type Hostip: str
        """
        self._Uuid = None
        self._Hostip = None

    @property
    def Uuid(self):
        r"""服务器id
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Hostip(self):
        r"""服务器ip
        :rtype: str
        """
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        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 ValueInfo(AbstractModel):
    r"""索引的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):
        r"""字段的分词符
        :rtype: str
        """
        return self._Tokenizer

    @Tokenizer.setter
    def Tokenizer(self, Tokenizer):
        self._Tokenizer = Tokenizer

    @property
    def Type(self):
        r"""字段类型
        :rtype: str
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def SqlFlag(self):
        r"""字段是否开启分析功能
        :rtype: bool
        """
        return self._SqlFlag

    @SqlFlag.setter
    def SqlFlag(self, SqlFlag):
        self._SqlFlag = SqlFlag

    @property
    def ContainZH(self):
        r"""是否包含中文
        :rtype: bool
        """
        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):
    r"""授权版本白名单配置信息

    """

    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):
        r"""到期天数
        :rtype: int
        """
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline

    @property
    def LicenseNum(self):
        r"""授权数量
        :rtype: int
        """
        return self._LicenseNum

    @LicenseNum.setter
    def LicenseNum(self, LicenseNum):
        self._LicenseNum = LicenseNum

    @property
    def IsApplyFor(self):
        r"""是否可申请
        :rtype: bool
        """
        return self._IsApplyFor

    @IsApplyFor.setter
    def IsApplyFor(self, IsApplyFor):
        self._IsApplyFor = IsApplyFor

    @property
    def SourceType(self):
        r"""类型
        :rtype: int
        """
        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):
    r"""点详细信息

    """

    def __init__(self):
        r"""
        :param _Type: 该节点类型，进程:1；网络:2；文件:3；ssh:4
        :type Type: int
        :param _Time: 各节点类型用到的时间，2022-11-29 00:00:00 格式
        :type Time: str
        :param _AlarmInfo: 告警信息
        :type AlarmInfo: list of AlarmInfo
        :param _ProcName: 进程名，当该节点为进程时生效
        :type ProcName: str
        :param _CmdLine: 命令行，当该节点为进程时生效
        :type CmdLine: str
        :param _Pid: 进程id，当该节点为进程时生效
        :type Pid: str
        :param _FileMd5: 文件md5，当该节点为文件时生效
        :type FileMd5: str
        :param _FileContent: 文件写入内容，当该节点为文件时生效
        :type FileContent: str
        :param _FilePath: 文件路径，当该节点为文件时生效
        :type FilePath: str
        :param _FileCreateTime: 文件创建时间，当该节点为文件时生效
        :type FileCreateTime: str
        :param _Address: 请求目的地址，当该节点为网络时生效
        :type Address: str
        :param _DstPort: 目标端口，当该节点为网络时生效
        :type DstPort: int
        :param _SrcIP: 登录源ip，当该节点为ssh时生效
        :type SrcIP: str
        :param _User: 登录用户名用户组，当该节点为ssh时生效
        :type User: str
        :param _VulName: 漏洞名称，当该节点为漏洞时生效
        :type VulName: str
        :param _VulTime: 漏洞利用时间，当该节点为漏洞时生效
        :type VulTime: str
        :param _HttpContent: http请求内容，当该节点为漏洞时生效
        :type HttpContent: str
        :param _VulSrcIP: 漏洞利用者来源ip，当该节点为漏洞时生效
        :type VulSrcIP: str
        :param _VertexId: 点id
        :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):
        r"""该节点类型，进程:1；网络:2；文件:3；ssh:4
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Time(self):
        r"""各节点类型用到的时间，2022-11-29 00:00:00 格式
        :rtype: str
        """
        return self._Time

    @Time.setter
    def Time(self, Time):
        self._Time = Time

    @property
    def AlarmInfo(self):
        r"""告警信息
        :rtype: list of AlarmInfo
        """
        return self._AlarmInfo

    @AlarmInfo.setter
    def AlarmInfo(self, AlarmInfo):
        self._AlarmInfo = AlarmInfo

    @property
    def ProcName(self):
        r"""进程名，当该节点为进程时生效
        :rtype: str
        """
        return self._ProcName

    @ProcName.setter
    def ProcName(self, ProcName):
        self._ProcName = ProcName

    @property
    def CmdLine(self):
        r"""命令行，当该节点为进程时生效
        :rtype: str
        """
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def Pid(self):
        r"""进程id，当该节点为进程时生效
        :rtype: str
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def FileMd5(self):
        r"""文件md5，当该节点为文件时生效
        :rtype: str
        """
        return self._FileMd5

    @FileMd5.setter
    def FileMd5(self, FileMd5):
        self._FileMd5 = FileMd5

    @property
    def FileContent(self):
        r"""文件写入内容，当该节点为文件时生效
        :rtype: str
        """
        return self._FileContent

    @FileContent.setter
    def FileContent(self, FileContent):
        self._FileContent = FileContent

    @property
    def FilePath(self):
        r"""文件路径，当该节点为文件时生效
        :rtype: str
        """
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def FileCreateTime(self):
        r"""文件创建时间，当该节点为文件时生效
        :rtype: str
        """
        return self._FileCreateTime

    @FileCreateTime.setter
    def FileCreateTime(self, FileCreateTime):
        self._FileCreateTime = FileCreateTime

    @property
    def Address(self):
        r"""请求目的地址，当该节点为网络时生效
        :rtype: str
        """
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def DstPort(self):
        r"""目标端口，当该节点为网络时生效
        :rtype: int
        """
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def SrcIP(self):
        r"""登录源ip，当该节点为ssh时生效
        :rtype: str
        """
        return self._SrcIP

    @SrcIP.setter
    def SrcIP(self, SrcIP):
        self._SrcIP = SrcIP

    @property
    def User(self):
        r"""登录用户名用户组，当该节点为ssh时生效
        :rtype: str
        """
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def VulName(self):
        r"""漏洞名称，当该节点为漏洞时生效
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def VulTime(self):
        r"""漏洞利用时间，当该节点为漏洞时生效
        :rtype: str
        """
        return self._VulTime

    @VulTime.setter
    def VulTime(self, VulTime):
        self._VulTime = VulTime

    @property
    def HttpContent(self):
        r"""http请求内容，当该节点为漏洞时生效
        :rtype: str
        """
        return self._HttpContent

    @HttpContent.setter
    def HttpContent(self, HttpContent):
        self._HttpContent = HttpContent

    @property
    def VulSrcIP(self):
        r"""漏洞利用者来源ip，当该节点为漏洞时生效
        :rtype: str
        """
        return self._VulSrcIP

    @VulSrcIP.setter
    def VulSrcIP(self, VulSrcIP):
        self._VulSrcIP = VulSrcIP

    @property
    def VertexId(self):
        r"""点id
        :rtype: str
        """
        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):
    r"""攻击溯源节点信息

    """

    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时使用
        :type ProcNamePrefix: str
        :param _ProcNameMd5: 进程名md5，当Type=1时使用
        :type ProcNameMd5: str
        :param _CmdLinePrefix: 命令行，当Type=1时使用
        :type CmdLinePrefix: str
        :param _CmdLineMd5: 命令行md5，当Type=1时使用
        :type CmdLineMd5: str
        :param _FilePathPrefix: 文件路径，当Type=3时使用
        :type FilePathPrefix: str
        :param _AddressPrefix: 请求目的地址，当Type=2时使用
        :type AddressPrefix: str
        :param _IsWeDetect: 是否漏洞节点
        :type IsWeDetect: bool
        :param _IsAlarm: 是否告警节点
        :type IsAlarm: bool
        :param _FilePathMd5: 文件路径md5，当Type=3时使用
        :type FilePathMd5: str
        :param _AddressMd5: 请求目的地址md5，当Type=2时使用
        :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):
        r"""该结点类型，进程:1；网络:2；文件:3；ssh:4；
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Vid(self):
        r"""该节点包含的vid
        :rtype: str
        """
        return self._Vid

    @Vid.setter
    def Vid(self, Vid):
        self._Vid = Vid

    @property
    def ParentVid(self):
        r"""该节点的父节点vid
        :rtype: str
        """
        return self._ParentVid

    @ParentVid.setter
    def ParentVid(self, ParentVid):
        self._ParentVid = ParentVid

    @property
    def IsLeaf(self):
        r"""是否叶子
        :rtype: bool
        """
        return self._IsLeaf

    @IsLeaf.setter
    def IsLeaf(self, IsLeaf):
        self._IsLeaf = IsLeaf

    @property
    def ProcNamePrefix(self):
        r"""进程名，当Type=1时使用
        :rtype: str
        """
        return self._ProcNamePrefix

    @ProcNamePrefix.setter
    def ProcNamePrefix(self, ProcNamePrefix):
        self._ProcNamePrefix = ProcNamePrefix

    @property
    def ProcNameMd5(self):
        r"""进程名md5，当Type=1时使用
        :rtype: str
        """
        return self._ProcNameMd5

    @ProcNameMd5.setter
    def ProcNameMd5(self, ProcNameMd5):
        self._ProcNameMd5 = ProcNameMd5

    @property
    def CmdLinePrefix(self):
        r"""命令行，当Type=1时使用
        :rtype: str
        """
        return self._CmdLinePrefix

    @CmdLinePrefix.setter
    def CmdLinePrefix(self, CmdLinePrefix):
        self._CmdLinePrefix = CmdLinePrefix

    @property
    def CmdLineMd5(self):
        r"""命令行md5，当Type=1时使用
        :rtype: str
        """
        return self._CmdLineMd5

    @CmdLineMd5.setter
    def CmdLineMd5(self, CmdLineMd5):
        self._CmdLineMd5 = CmdLineMd5

    @property
    def FilePathPrefix(self):
        r"""文件路径，当Type=3时使用
        :rtype: str
        """
        return self._FilePathPrefix

    @FilePathPrefix.setter
    def FilePathPrefix(self, FilePathPrefix):
        self._FilePathPrefix = FilePathPrefix

    @property
    def AddressPrefix(self):
        r"""请求目的地址，当Type=2时使用
        :rtype: str
        """
        return self._AddressPrefix

    @AddressPrefix.setter
    def AddressPrefix(self, AddressPrefix):
        self._AddressPrefix = AddressPrefix

    @property
    def IsWeDetect(self):
        r"""是否漏洞节点
        :rtype: bool
        """
        return self._IsWeDetect

    @IsWeDetect.setter
    def IsWeDetect(self, IsWeDetect):
        self._IsWeDetect = IsWeDetect

    @property
    def IsAlarm(self):
        r"""是否告警节点
        :rtype: bool
        """
        return self._IsAlarm

    @IsAlarm.setter
    def IsAlarm(self, IsAlarm):
        self._IsAlarm = IsAlarm

    @property
    def FilePathMd5(self):
        r"""文件路径md5，当Type=3时使用
        :rtype: str
        """
        return self._FilePathMd5

    @FilePathMd5.setter
    def FilePathMd5(self, FilePathMd5):
        self._FilePathMd5 = FilePathMd5

    @property
    def AddressMd5(self):
        r"""请求目的地址md5，当Type=2时使用
        :rtype: str
        """
        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):
    r"""漏洞详细信息

    """

    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: 主机额外信息
        :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):
        r"""漏洞ID
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def CveId(self):
        r"""cve编号
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def Id(self):
        r"""漏洞事件id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        r"""主机名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def PrivateIp(self):
        r"""内网ip
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        r"""公网ip
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def EventType(self):
        r"""0: 尝试攻击(WeDetect) 1:尝试攻击成功(WeDetect) 2:rasp防御事件
        :rtype: int
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def SourceIp(self):
        r"""攻击源ip
        :rtype: str
        """
        return self._SourceIp

    @SourceIp.setter
    def SourceIp(self, SourceIp):
        self._SourceIp = SourceIp

    @property
    def City(self):
        r"""攻击源ip地址所在城市
        :rtype: str
        """
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def SourcePort(self):
        r"""攻击源端口
        :rtype: list of int non-negative
        """
        return self._SourcePort

    @SourcePort.setter
    def SourcePort(self, SourcePort):
        self._SourcePort = SourcePort

    @property
    def CreateTime(self):
        r"""创建事件时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MergeTime(self):
        r"""更新事件时间
        :rtype: str
        """
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Count(self):
        r"""事件发生次数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Status(self):
        r"""状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def UpgradeType(self):
        r"""0 专业版,1 旗舰版,2 LH轻量版（仅限LH使用）,3  CVM轻量版（仅限CVM使用）
        :rtype: int
        """
        return self._UpgradeType

    @UpgradeType.setter
    def UpgradeType(self, UpgradeType):
        self._UpgradeType = UpgradeType

    @property
    def FixType(self):
        r"""0 不支持修复，1 支持修复
        :rtype: int
        """
        return self._FixType

    @FixType.setter
    def FixType(self, FixType):
        self._FixType = FixType

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""漏洞详细信息

    """

    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: 攻击源端口
        :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: 主机额外信息
        :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):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def CveId(self):
        r"""cve编号
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def Id(self):
        r"""漏洞事件id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        r"""主机名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def PrivateIp(self):
        r"""内网ip
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        r"""公网ip
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def EventType(self):
        r"""0: 尝试攻击(WeDetect) 1:尝试攻击成功(WeDetect) 2:rasp防御事件
        :rtype: int
        """
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def SourceIp(self):
        r"""攻击源ip
        :rtype: str
        """
        return self._SourceIp

    @SourceIp.setter
    def SourceIp(self, SourceIp):
        self._SourceIp = SourceIp

    @property
    def City(self):
        r"""攻击源ip地址所在城市
        :rtype: str
        """
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def SourcePort(self):
        r"""攻击源端口
        :rtype: list of int non-negative
        """
        return self._SourcePort

    @SourcePort.setter
    def SourcePort(self, SourcePort):
        self._SourcePort = SourcePort

    @property
    def CreateTime(self):
        r"""创建事件时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MergeTime(self):
        r"""更新事件时间
        :rtype: str
        """
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Count(self):
        r"""事件发生次数
        :rtype: int
        """
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Status(self):
        r"""状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def MachineStatus(self):
        r"""ONLINE OFFLINE
        :rtype: str
        """
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Description(self):
        r"""漏洞描述信息
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Fix(self):
        r"""修复建议
        :rtype: str
        """
        return self._Fix

    @Fix.setter
    def Fix(self, Fix):
        self._Fix = Fix

    @property
    def NetworkPayload(self):
        r"""攻击payload
        :rtype: str
        """
        return self._NetworkPayload

    @NetworkPayload.setter
    def NetworkPayload(self, NetworkPayload):
        self._NetworkPayload = NetworkPayload

    @property
    def Pid(self):
        r"""关联进程pid
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def MainClass(self):
        r"""关联进程主类名
        :rtype: str
        """
        return self._MainClass

    @MainClass.setter
    def MainClass(self, MainClass):
        self._MainClass = MainClass

    @property
    def StackTrace(self):
        r"""堆栈信息(rasp特有)
        :rtype: str
        """
        return self._StackTrace

    @StackTrace.setter
    def StackTrace(self, StackTrace):
        self._StackTrace = StackTrace

    @property
    def EventDetail(self):
        r"""漏洞ID相关的事件详情(json array格式 rasp特有)
        :rtype: str
        """
        return self._EventDetail

    @EventDetail.setter
    def EventDetail(self, EventDetail):
        self._EventDetail = EventDetail

    @property
    def ExceptionPstree(self):
        r"""主机失陷事件进程树(json格式 WeDetect特有)
        :rtype: str
        """
        return self._ExceptionPstree

    @ExceptionPstree.setter
    def ExceptionPstree(self, ExceptionPstree):
        self._ExceptionPstree = ExceptionPstree

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        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):
    r"""漏洞防御趋势页，包括插件状态及攻防趋势，趋势由三个长度相同，元素一一对应的数组保存，如果某天没有数据将会缺失

    """

    def __init__(self):
        r"""
        :param _Enable: 防御开关：0 关闭 1 开启
        :type Enable: int
        :param _DefendHostCount: 已开启防御主机数
        :type DefendHostCount: int
        :param _ExceptionCount: 插件异常数
        :type ExceptionCount: int
        :param _AttackCounts: 每日攻击趋势
        :type AttackCounts: list of int
        :param _DefendCounts: 每日防御趋势
        :type DefendCounts: list of int
        :param _Date: 日期
        :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):
        r"""防御开关：0 关闭 1 开启
        :rtype: int
        """
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def DefendHostCount(self):
        r"""已开启防御主机数
        :rtype: int
        """
        return self._DefendHostCount

    @DefendHostCount.setter
    def DefendHostCount(self, DefendHostCount):
        self._DefendHostCount = DefendHostCount

    @property
    def ExceptionCount(self):
        r"""插件异常数
        :rtype: int
        """
        return self._ExceptionCount

    @ExceptionCount.setter
    def ExceptionCount(self, ExceptionCount):
        self._ExceptionCount = ExceptionCount

    @property
    def AttackCounts(self):
        r"""每日攻击趋势
        :rtype: list of int
        """
        return self._AttackCounts

    @AttackCounts.setter
    def AttackCounts(self, AttackCounts):
        self._AttackCounts = AttackCounts

    @property
    def DefendCounts(self):
        r"""每日防御趋势
        :rtype: list of int
        """
        return self._DefendCounts

    @DefendCounts.setter
    def DefendCounts(self, DefendCounts):
        self._DefendCounts = DefendCounts

    @property
    def Date(self):
        r"""日期
        :rtype: list of str
        """
        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):
    r"""单个进程漏洞防御插件状态

    """

    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):
        r"""注入进程Pid
        :rtype: int
        """
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def MainClass(self):
        r"""注入进程主类名
        :rtype: str
        """
        return self._MainClass

    @MainClass.setter
    def MainClass(self, MainClass):
        self._MainClass = MainClass

    @property
    def Status(self):
        r"""插件状态：0: 注入中, 1: 注入成功, 2: 插件超时, 3: 插件退出, 4: 注入失败 5: 软删除
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ErrorLog(self):
        r"""错误日志
        :rtype: str
        """
        return self._ErrorLog

    @ErrorLog.setter
    def ErrorLog(self, ErrorLog):
        self._ErrorLog = ErrorLog

    @property
    def InjectLog(self):
        r"""注入日志
        :rtype: str
        """
        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):
    r"""主机漏洞防御插件信息

    """

    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):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        r"""主机别名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def PrivateIp(self):
        r"""内网ip
        :rtype: str
        """
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        r"""公网ip
        :rtype: str
        """
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def Exception(self):
        r"""插件状态：0 正常，1 异常
        :rtype: int
        """
        return self._Exception

    @Exception.setter
    def Exception(self, Exception):
        self._Exception = Exception

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""最后跟新时间
        :rtype: str
        """
        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):
    r"""漏洞防御范围详情

    """

    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
        :param _Status: 状态，0:防御中，1：已加白，指的是在白名单列表中有这个漏洞的，不一定是全局型白名单
        :type Status: int
        """
        self._VulName = None
        self._Label = None
        self._Level = None
        self._CvssScore = None
        self._CveId = None
        self._PublishTime = None
        self._VulId = None
        self._Status = None

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def Label(self):
        r"""标签
        :rtype: str
        """
        return self._Label

    @Label.setter
    def Label(self, Label):
        self._Label = Label

    @property
    def Level(self):
        r"""漏洞级别：  1低危 2中危 3高危 4严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CvssScore(self):
        r"""cvss 分数
        :rtype: float
        """
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def CveId(self):
        r"""cve id
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def PublishTime(self):
        r"""发布时间
        :rtype: str
        """
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Status(self):
        r"""状态，0:防御中，1：已加白，指的是在白名单列表中有这个漏洞的，不一定是全局型白名单
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    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")
        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 VulDefenceSetting(AbstractModel):
    r"""漏洞防御设置

    """

    def __init__(self):
        r"""
        :param _StrategyName: 策略名称
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyName: str
        :param _StrategyType: 0系统策略
1自定义策略
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyType: int
        :param _ThreatLevel: 威胁等级
注意：此字段可能返回 null，表示取不到有效值。
        :type ThreatLevel: int
        :param _Scope: 1全部旗舰版主机
0自选主机
注意：此字段可能返回 null，表示取不到有效值。
        :type Scope: int
        :param _SupportVulNum: 支持的漏洞个数
注意：此字段可能返回 null，表示取不到有效值。
        :type SupportVulNum: int
        :param _Enable: 0 关闭 1 开启
注意：此字段可能返回 null，表示取不到有效值。
        :type Enable: int
        :param _AppId: 用户appid
注意：此字段可能返回 null，表示取不到有效值。
        :type AppId: int
        :param _MemberId: 用户MemberId
注意：此字段可能返回 null，表示取不到有效值。
        :type MemberId: str
        :param _StrategyAction: 策略动作
0告警
1防御
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyAction: int
        :param _Uin: 用户uin
注意：此字段可能返回 null，表示取不到有效值。
        :type Uin: str
        :param _Nickname: 用户昵称
注意：此字段可能返回 null，表示取不到有效值。
        :type Nickname: str
        :param _DefenceType: 防护类型
0漏洞防御
1攻击检测
注意：此字段可能返回 null，表示取不到有效值。
        :type DefenceType: int
        :param _InstanceNum: 自选主机数量
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceNum: int
        :param _StrategyId: 策略id
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyId: str
        """
        self._StrategyName = None
        self._StrategyType = None
        self._ThreatLevel = None
        self._Scope = None
        self._SupportVulNum = None
        self._Enable = None
        self._AppId = None
        self._MemberId = None
        self._StrategyAction = None
        self._Uin = None
        self._Nickname = None
        self._DefenceType = None
        self._InstanceNum = None
        self._StrategyId = None

    @property
    def StrategyName(self):
        r"""策略名称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def StrategyType(self):
        r"""0系统策略
1自定义策略
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._StrategyType

    @StrategyType.setter
    def StrategyType(self, StrategyType):
        self._StrategyType = StrategyType

    @property
    def ThreatLevel(self):
        r"""威胁等级
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._ThreatLevel

    @ThreatLevel.setter
    def ThreatLevel(self, ThreatLevel):
        self._ThreatLevel = ThreatLevel

    @property
    def Scope(self):
        r"""1全部旗舰版主机
0自选主机
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def SupportVulNum(self):
        r"""支持的漏洞个数
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._SupportVulNum

    @SupportVulNum.setter
    def SupportVulNum(self, SupportVulNum):
        self._SupportVulNum = SupportVulNum

    @property
    def Enable(self):
        r"""0 关闭 1 开启
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def AppId(self):
        r"""用户appid
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._AppId

    @AppId.setter
    def AppId(self, AppId):
        self._AppId = AppId

    @property
    def MemberId(self):
        r"""用户MemberId
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._MemberId

    @MemberId.setter
    def MemberId(self, MemberId):
        self._MemberId = MemberId

    @property
    def StrategyAction(self):
        r"""策略动作
0告警
1防御
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._StrategyAction

    @StrategyAction.setter
    def StrategyAction(self, StrategyAction):
        self._StrategyAction = StrategyAction

    @property
    def Uin(self):
        r"""用户uin
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Uin

    @Uin.setter
    def Uin(self, Uin):
        self._Uin = Uin

    @property
    def Nickname(self):
        r"""用户昵称
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._Nickname

    @Nickname.setter
    def Nickname(self, Nickname):
        self._Nickname = Nickname

    @property
    def DefenceType(self):
        r"""防护类型
0漏洞防御
1攻击检测
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._DefenceType

    @DefenceType.setter
    def DefenceType(self, DefenceType):
        self._DefenceType = DefenceType

    @property
    def InstanceNum(self):
        r"""自选主机数量
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: int
        """
        return self._InstanceNum

    @InstanceNum.setter
    def InstanceNum(self, InstanceNum):
        self._InstanceNum = InstanceNum

    @property
    def StrategyId(self):
        r"""策略id
注意：此字段可能返回 null，表示取不到有效值。
        :rtype: str
        """
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId


    def _deserialize(self, params):
        self._StrategyName = params.get("StrategyName")
        self._StrategyType = params.get("StrategyType")
        self._ThreatLevel = params.get("ThreatLevel")
        self._Scope = params.get("Scope")
        self._SupportVulNum = params.get("SupportVulNum")
        self._Enable = params.get("Enable")
        self._AppId = params.get("AppId")
        self._MemberId = params.get("MemberId")
        self._StrategyAction = params.get("StrategyAction")
        self._Uin = params.get("Uin")
        self._Nickname = params.get("Nickname")
        self._DefenceType = params.get("DefenceType")
        self._InstanceNum = params.get("InstanceNum")
        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 VulDetailInfo(AbstractModel):
    r"""漏洞详细信息

    """

    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):
        r"""漏洞ID
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Level(self):
        r"""漏洞级别
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Name(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def CveId(self):
        r"""cve编号
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def VulCategory(self):
        r"""1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 0= 应急漏洞
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def Descript(self):
        r"""漏洞描述
        :rtype: str
        """
        return self._Descript

    @Descript.setter
    def Descript(self, Descript):
        self._Descript = Descript

    @property
    def Fix(self):
        r"""修复建议
        :rtype: str
        """
        return self._Fix

    @Fix.setter
    def Fix(self, Fix):
        self._Fix = Fix

    @property
    def Reference(self):
        r"""参考链接
        :rtype: str
        """
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def CvssScore(self):
        r"""CVSS评分
        :rtype: float
        """
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def Cvss(self):
        r"""CVSS详情
        :rtype: str
        """
        return self._Cvss

    @Cvss.setter
    def Cvss(self, Cvss):
        self._Cvss = Cvss

    @property
    def PublishTime(self):
        r"""发布时间
        :rtype: str
        """
        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):
    r"""漏洞影响主机列表

    """

    def __init__(self):
        r"""
        :param _EventId: 事件id
        :type EventId: int
        :param _Status: 状态：0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中 7: 回滚中 8:修复失败
        :type Status: int
        :param _LastTime: 最后检测时间
        :type LastTime: str
        :param _Level: 危害等级：1-低危；2-中危；3-高危；4-严重
        :type Level: int
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _HostIp: 主机HostIp
        :type HostIp: str
        :param _AliasName: 主机别名
        :type AliasName: str
        :param _Tags: 主机标签
        :type Tags: list of str
        :param _Description: 说明
        :type Description: str
        :param _HostVersion: 版本信息：0-基础版 1-专业版 2-旗舰版 3-轻量版
        :type HostVersion: int
        :param _IsSupportAutoFix: 是否能自动修复 0 :漏洞不可自动修复，  1：可自动修复， 2：客户端已离线， 3：主机不是旗舰版只能手动修复， 4：机型不允许 ，5：修复中 ，6：已修复， 7：检测中  9:修复失败，10:已忽略 11:漏洞只支持linux不支持Windows 12：漏洞只支持Windows不支持linux，13:修复失败但此时主机已离线，14:修复失败但此时主机不是旗舰版， 15:已手动修复
        :type IsSupportAutoFix: int
        :param _FixStatusMsg: 失败原因
        :type FixStatusMsg: str
        :param _FirstDiscoveryTime: 首次发现时间
        :type FirstDiscoveryTime: str
        :param _InstanceState: 实例状态："PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-表示开机中 "STOPPING"-表示关机中 "REBOOTING"-重启中 "SHUTDOWN"-表示停止待销毁 "TERMINATING"-表示销毁中 "
        :type InstanceState: str
        :param _PublicIpAddresses: 外网ip
        :type PublicIpAddresses: str
        :param _CloudTags: 云标签信息
        :type CloudTags: list of Tags
        :param _MachineExtraInfo: 主机额外信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _MachineType: 主机类型
        :type MachineType: str
        :param _RegionId: 可用区ID
        :type RegionId: int
        :param _HasSnapshot: 修复任务是否创建了快照： 0-未创建，其他-已创建
        :type HasSnapshot: int
        :param _LatestFixTime: 最后修复时间
        :type LatestFixTime: str
        :param _DescriptionEn: 说明
        :type DescriptionEn: str
        """
        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
        self._MachineType = None
        self._RegionId = None
        self._HasSnapshot = None
        self._LatestFixTime = None
        self._DescriptionEn = None

    @property
    def EventId(self):
        r"""事件id
        :rtype: int
        """
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def Status(self):
        r"""状态：0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中 7: 回滚中 8:修复失败
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def LastTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def Level(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        r"""主机Uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def HostIp(self):
        r"""主机HostIp
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def AliasName(self):
        r"""主机别名
        :rtype: str
        """
        return self._AliasName

    @AliasName.setter
    def AliasName(self, AliasName):
        self._AliasName = AliasName

    @property
    def Tags(self):
        r"""主机标签
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Description(self):
        r"""说明
        :rtype: str
        """
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def HostVersion(self):
        r"""版本信息：0-基础版 1-专业版 2-旗舰版 3-轻量版
        :rtype: int
        """
        return self._HostVersion

    @HostVersion.setter
    def HostVersion(self, HostVersion):
        self._HostVersion = HostVersion

    @property
    def IsSupportAutoFix(self):
        r"""是否能自动修复 0 :漏洞不可自动修复，  1：可自动修复， 2：客户端已离线， 3：主机不是旗舰版只能手动修复， 4：机型不允许 ，5：修复中 ，6：已修复， 7：检测中  9:修复失败，10:已忽略 11:漏洞只支持linux不支持Windows 12：漏洞只支持Windows不支持linux，13:修复失败但此时主机已离线，14:修复失败但此时主机不是旗舰版， 15:已手动修复
        :rtype: int
        """
        return self._IsSupportAutoFix

    @IsSupportAutoFix.setter
    def IsSupportAutoFix(self, IsSupportAutoFix):
        self._IsSupportAutoFix = IsSupportAutoFix

    @property
    def FixStatusMsg(self):
        r"""失败原因
        :rtype: str
        """
        return self._FixStatusMsg

    @FixStatusMsg.setter
    def FixStatusMsg(self, FixStatusMsg):
        self._FixStatusMsg = FixStatusMsg

    @property
    def FirstDiscoveryTime(self):
        r"""首次发现时间
        :rtype: str
        """
        return self._FirstDiscoveryTime

    @FirstDiscoveryTime.setter
    def FirstDiscoveryTime(self, FirstDiscoveryTime):
        self._FirstDiscoveryTime = FirstDiscoveryTime

    @property
    def InstanceState(self):
        r"""实例状态："PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-表示开机中 "STOPPING"-表示关机中 "REBOOTING"-重启中 "SHUTDOWN"-表示停止待销毁 "TERMINATING"-表示销毁中 "
        :rtype: str
        """
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def PublicIpAddresses(self):
        r"""外网ip
        :rtype: str
        """
        return self._PublicIpAddresses

    @PublicIpAddresses.setter
    def PublicIpAddresses(self, PublicIpAddresses):
        self._PublicIpAddresses = PublicIpAddresses

    @property
    def CloudTags(self):
        r"""云标签信息
        :rtype: list of Tags
        """
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def MachineExtraInfo(self):
        r"""主机额外信息
        :rtype: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def MachineType(self):
        r"""主机类型
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def RegionId(self):
        r"""可用区ID
        :rtype: int
        """
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def HasSnapshot(self):
        r"""修复任务是否创建了快照： 0-未创建，其他-已创建
        :rtype: int
        """
        return self._HasSnapshot

    @HasSnapshot.setter
    def HasSnapshot(self, HasSnapshot):
        self._HasSnapshot = HasSnapshot

    @property
    def LatestFixTime(self):
        r"""最后修复时间
        :rtype: str
        """
        return self._LatestFixTime

    @LatestFixTime.setter
    def LatestFixTime(self, LatestFixTime):
        self._LatestFixTime = LatestFixTime

    @property
    def DescriptionEn(self):
        r"""说明
        :rtype: str
        """
        return self._DescriptionEn

    @DescriptionEn.setter
    def DescriptionEn(self, DescriptionEn):
        self._DescriptionEn = DescriptionEn


    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"))
        self._MachineType = params.get("MachineType")
        self._RegionId = params.get("RegionId")
        self._HasSnapshot = params.get("HasSnapshot")
        self._LatestFixTime = params.get("LatestFixTime")
        self._DescriptionEn = params.get("DescriptionEn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""漏洞影响组件详情

    """

    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):
        r"""组件名
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Uuids(self):
        r"""影响的主机uuid
        :rtype: list of str
        """
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def Rule(self):
        r"""组件影响版本
        :rtype: str
        """
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Path(self):
        r"""组件路径
        :rtype: str
        """
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def Version(self):
        r"""组件版本
        :rtype: str
        """
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def FixCmd(self):
        r"""修复命令
        :rtype: str
        """
        return self._FixCmd

    @FixCmd.setter
    def FixCmd(self, FixCmd):
        self._FixCmd = FixCmd

    @property
    def Quuids(self):
        r"""影响的主机quuid
        :rtype: list of str
        """
        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):
    r"""紧急通知实体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _PublishTime: 漏洞披露时间
        :type PublishTime: str
        :param _Name: 漏洞名
        :type Name: str
        :param _NameEn: 漏洞名,英文描述
        :type NameEn: str
        :param _SupportFix: 是否支持自动修复 0:不支持 >0: 支持
        :type SupportFix: int
        :param _SupportDefense: 是否支持自动防御 0:不支持 1:支持
        :type SupportDefense: int
        :param _KbId: KB对应的ID
        :type KbId: int
        :param _KbNumber: KB号
        :type KbNumber: str
        """
        self._VulId = None
        self._PublishTime = None
        self._Name = None
        self._NameEn = None
        self._SupportFix = None
        self._SupportDefense = None
        self._KbId = None
        self._KbNumber = None

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def PublishTime(self):
        r"""漏洞披露时间
        :rtype: str
        """
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def Name(self):
        r"""漏洞名
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def NameEn(self):
        r"""漏洞名,英文描述
        :rtype: str
        """
        return self._NameEn

    @NameEn.setter
    def NameEn(self, NameEn):
        self._NameEn = NameEn

    @property
    def SupportFix(self):
        r"""是否支持自动修复 0:不支持 >0: 支持
        :rtype: int
        """
        return self._SupportFix

    @SupportFix.setter
    def SupportFix(self, SupportFix):
        self._SupportFix = SupportFix

    @property
    def SupportDefense(self):
        r"""是否支持自动防御 0:不支持 1:支持
        :rtype: int
        """
        return self._SupportDefense

    @SupportDefense.setter
    def SupportDefense(self, SupportDefense):
        self._SupportDefense = SupportDefense

    @property
    def KbId(self):
        r"""KB对应的ID
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId

    @property
    def KbNumber(self):
        r"""KB号
        :rtype: str
        """
        return self._KbNumber

    @KbNumber.setter
    def KbNumber(self, KbNumber):
        self._KbNumber = KbNumber


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._PublishTime = params.get("PublishTime")
        self._Name = params.get("Name")
        self._NameEn = params.get("NameEn")
        self._SupportFix = params.get("SupportFix")
        self._SupportDefense = params.get("SupportDefense")
        self._KbId = params.get("KbId")
        self._KbNumber = params.get("KbNumber")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""查看漏洞修复详情 每台主机每个漏洞修复状态

    """

    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: 修复失败原因
        :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):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""主机ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Quuid(self):
        r"""主机的quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Status(self):
        r"""状态：0-初始状态；1-已下发任务（修复中）2-完成（成功）；3-修复失败（失败）4-快照创建失败 导致修复失败（未修复）；
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ModifyTime(self):
        r"""修复时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def FailReason(self):
        r"""修复失败原因
        :rtype: str
        """
        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):
    r"""查看漏洞修复详情

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _Progress: 漏洞修复进度 1-100；
        :type Progress: int
        :param _HostList: 漏洞对应主机修复状态
        :type HostList: list of VulFixStatusHostInfo
        :param _FailCnt: 漏洞修复失败主机数量
        :type FailCnt: int
        :param _FixSuccessCnt: 修复成功的数量
        :type FixSuccessCnt: int
        :param _FixMethod: 修复方式 0组件更新或者安装补丁,1禁用服务
        :type FixMethod: int
        :param _KbId: kb的ID
        :type KbId: int
        :param _KbNumber: kb号
        :type KbNumber: str
        :param _KbName: kb名字
        :type KbName: str
        :param _PreKbList: 前置kb列表
        :type PreKbList: list of str
        """
        self._VulId = None
        self._VulName = None
        self._Progress = None
        self._HostList = None
        self._FailCnt = None
        self._FixSuccessCnt = None
        self._FixMethod = None
        self._KbId = None
        self._KbNumber = None
        self._KbName = None
        self._PreKbList = None

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def Progress(self):
        r"""漏洞修复进度 1-100；
        :rtype: int
        """
        return self._Progress

    @Progress.setter
    def Progress(self, Progress):
        self._Progress = Progress

    @property
    def HostList(self):
        r"""漏洞对应主机修复状态
        :rtype: list of VulFixStatusHostInfo
        """
        return self._HostList

    @HostList.setter
    def HostList(self, HostList):
        self._HostList = HostList

    @property
    def FailCnt(self):
        r"""漏洞修复失败主机数量
        :rtype: int
        """
        return self._FailCnt

    @FailCnt.setter
    def FailCnt(self, FailCnt):
        self._FailCnt = FailCnt

    @property
    def FixSuccessCnt(self):
        r"""修复成功的数量
        :rtype: int
        """
        return self._FixSuccessCnt

    @FixSuccessCnt.setter
    def FixSuccessCnt(self, FixSuccessCnt):
        self._FixSuccessCnt = FixSuccessCnt

    @property
    def FixMethod(self):
        r"""修复方式 0组件更新或者安装补丁,1禁用服务
        :rtype: int
        """
        return self._FixMethod

    @FixMethod.setter
    def FixMethod(self, FixMethod):
        self._FixMethod = FixMethod

    @property
    def KbId(self):
        r"""kb的ID
        :rtype: int
        """
        return self._KbId

    @KbId.setter
    def KbId(self, KbId):
        self._KbId = KbId

    @property
    def KbNumber(self):
        r"""kb号
        :rtype: str
        """
        return self._KbNumber

    @KbNumber.setter
    def KbNumber(self, KbNumber):
        self._KbNumber = KbNumber

    @property
    def KbName(self):
        r"""kb名字
        :rtype: str
        """
        return self._KbName

    @KbName.setter
    def KbName(self, KbName):
        self._KbName = KbName

    @property
    def PreKbList(self):
        r"""前置kb列表
        :rtype: list of str
        """
        return self._PreKbList

    @PreKbList.setter
    def PreKbList(self, PreKbList):
        self._PreKbList = PreKbList


    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")
        self._FixMethod = params.get("FixMethod")
        self._KbId = params.get("KbId")
        self._KbNumber = params.get("KbNumber")
        self._KbName = params.get("KbName")
        self._PreKbList = params.get("PreKbList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""机器快照信息

    """

    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 _ModifyTime: 快照创建时间
        :type ModifyTime: str
        :param _SnapshotId: 快照id
        :type SnapshotId: str
        :param _Id: 记录唯一id
        :type Id: int
        :param _Status: 快照状态 0-初始状态1-快照创建成功；2-快照创建失败；10-不支持，11-无需创建
        :type Status: int
        :param _FailReason: 快照创建失败原因
        :type FailReason: str
        :param _MachineType: 主机类型
        :type MachineType: 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
        self._MachineType = None

    @property
    def Quuid(self):
        r"""cvm id
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostName(self):
        r"""主机名称
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""主机ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def SnapshotName(self):
        r"""快照名称
        :rtype: str
        """
        return self._SnapshotName

    @SnapshotName.setter
    def SnapshotName(self, SnapshotName):
        self._SnapshotName = SnapshotName

    @property
    def ModifyTime(self):
        r"""快照创建时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def SnapshotId(self):
        r"""快照id
        :rtype: str
        """
        return self._SnapshotId

    @SnapshotId.setter
    def SnapshotId(self, SnapshotId):
        self._SnapshotId = SnapshotId

    @property
    def Id(self):
        r"""记录唯一id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Status(self):
        r"""快照状态 0-初始状态1-快照创建成功；2-快照创建失败；10-不支持，11-无需创建
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def FailReason(self):
        r"""快照创建失败原因
        :rtype: str
        """
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def MachineType(self):
        r"""主机类型
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType


    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")
        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 VulHostTopInfo(AbstractModel):
    r"""服务器风险top5实体

    """

    def __init__(self):
        r"""
        :param _HostName: 主机名
        :type HostName: str
        :param _VulLevelList: 漏洞等级与数量统计列表
        :type VulLevelList: list of VulLevelCountInfo
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Score: top评分
        :type Score: int
        """
        self._HostName = None
        self._VulLevelList = None
        self._Quuid = None
        self._Score = None

    @property
    def HostName(self):
        r"""主机名
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def VulLevelList(self):
        r"""漏洞等级与数量统计列表
        :rtype: list of VulLevelCountInfo
        """
        return self._VulLevelList

    @VulLevelList.setter
    def VulLevelList(self, VulLevelList):
        self._VulLevelList = VulLevelList

    @property
    def Quuid(self):
        r"""主机Quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Score(self):
        r"""top评分
        :rtype: int
        """
        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):
    r"""根据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):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def FixSwitch(self):
        r"""修复支持情况：0-Windows/Linux均不支持修复 ;1-Windows/Linux 均支持修复 ;2-仅Linux支持修复;3-仅Windows支持修复
        :rtype: int
        """
        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):
    r"""批量修复漏洞二次弹窗

    """

    def __init__(self):
        r"""
        :param _HostName: 主机名
        :type HostName: str
        :param _HostIp: 主机ip
        :type HostIp: str
        :param _Tags: 主机标签
        :type Tags: list of str
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _IsSupportAutoFix: 0 :漏洞不可自动修复，  1：可自动修复， 2：客户端已离线， 3：主机不是旗舰版只能手动修复， 4：机型不允许 ，5：修复中 ，6：已修复， 7：检测中, 9:修复失败, 10:已忽略 ,11:漏洞只支持linux不支持Windows, 12：漏洞只支持Windows不支持linux
        :type IsSupportAutoFix: int
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _InstanceId: 主机InstanceId
        :type InstanceId: str
        :param _MachineType: 主机类型
        :type MachineType: str
        :param _AgentStatus: agent是否在线；0不在线，1在线
        :type AgentStatus: int
        """
        self._HostName = None
        self._HostIp = None
        self._Tags = None
        self._Quuid = None
        self._IsSupportAutoFix = None
        self._Uuid = None
        self._InstanceId = None
        self._MachineType = None
        self._AgentStatus = None

    @property
    def HostName(self):
        r"""主机名
        :rtype: str
        """
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        r"""主机ip
        :rtype: str
        """
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Tags(self):
        r"""主机标签
        :rtype: list of str
        """
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Quuid(self):
        r"""主机quuid
        :rtype: str
        """
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def IsSupportAutoFix(self):
        r"""0 :漏洞不可自动修复，  1：可自动修复， 2：客户端已离线， 3：主机不是旗舰版只能手动修复， 4：机型不允许 ，5：修复中 ，6：已修复， 7：检测中, 9:修复失败, 10:已忽略 ,11:漏洞只支持linux不支持Windows, 12：漏洞只支持Windows不支持linux
        :rtype: int
        """
        return self._IsSupportAutoFix

    @IsSupportAutoFix.setter
    def IsSupportAutoFix(self, IsSupportAutoFix):
        self._IsSupportAutoFix = IsSupportAutoFix

    @property
    def Uuid(self):
        r"""主机uuid
        :rtype: str
        """
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def InstanceId(self):
        r"""主机InstanceId
        :rtype: str
        """
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def MachineType(self):
        r"""主机类型
        :rtype: str
        """
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def AgentStatus(self):
        r"""agent是否在线；0不在线，1在线
        :rtype: int
        """
        return self._AgentStatus

    @AgentStatus.setter
    def AgentStatus(self, AgentStatus):
        self._AgentStatus = AgentStatus


    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")
        self._MachineType = params.get("MachineType")
        self._AgentStatus = params.get("AgentStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""主机安全-漏洞管理-漏洞列表

    """

    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: 废弃字段
        :type From: int
        :param _Descript: 描述
        :type Descript: str
        :param _PublishTimeWisteria: 废弃字段
        :type PublishTimeWisteria: str
        :param _NameWisteria: 废弃字段
        :type NameWisteria: str
        :param _DescriptWisteria: 废弃字段
        :type DescriptWisteria: str
        :param _StatusStr: 聚合后事件状态串
        :type StatusStr: str
        :param _CveId: cve编号
        :type CveId: str
        :param _CvssScore: CVSS评分
        :type CvssScore: float
        :param _Labels: 漏洞标签 多个逗号分割

存在EXP:EXP
在野攻击:KNOWN_EXPLOITED
本地利用:LOCAL
必修漏洞:NEED_FIX
远程利用:NETWORK
存在POC:POC
系统重启:RESTART
        :type Labels: str
        :param _FixSwitch: 是否能自动修复且包含能自动修复的主机， 0=否  1=是
        :type FixSwitch: int
        :param _TaskId: 最后扫描任务的id
        :type TaskId: int
        :param _IsSupportDefense: 是否支持防御， 0:不支持 1:支持
        :type IsSupportDefense: int
        :param _DefenseAttackCount: 已防御的攻击次数
        :type DefenseAttackCount: int
        :param _FirstAppearTime: 首次出现时间
        :type FirstAppearTime: str
        :param _VulCategory: 漏洞类别 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :type VulCategory: int
        :param _AttackLevel: 攻击热度级别
        :type AttackLevel: int
        :param _FixNoNeedRestart: 漏洞修复后是否需要重启
        :type FixNoNeedRestart: bool
        :param _Method: 检测方式0 - 版本比对, 1 - POC验证
        :type Method: int
        :param _VulFixSwitch: 漏洞是否支持修复 0不支持，1支持
        :type VulFixSwitch: int
        :param _LatestFixTime: 最近修复时间
        :type LatestFixTime: str
        :param _RaspOpenNodeCount: 漏洞对应机器的应用防护开启数量
        :type RaspOpenNodeCount: int
        :param _RaspClosedNodeCount: 漏洞对应机器的应用防护关闭数量
        :type RaspClosedNodeCount: 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
        self._VulFixSwitch = None
        self._LatestFixTime = None
        self._RaspOpenNodeCount = None
        self._RaspClosedNodeCount = None

    @property
    def Ids(self):
        r"""漏洞包含的事件id串，多个用“,”分割
        :rtype: str
        """
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Name(self):
        r"""漏洞名
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Status(self):
        r"""0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中  8:修复失败
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def PublishTime(self):
        r"""漏洞披露事件
        :rtype: str
        """
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def LastTime(self):
        r"""最后检测时间
        :rtype: str
        """
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def HostCount(self):
        r"""影响主机数
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def Level(self):
        r"""漏洞等级 1:低 2:中 3:高 4:严重
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def From(self):
        r"""废弃字段
        :rtype: int
        """
        return self._From

    @From.setter
    def From(self, From):
        self._From = From

    @property
    def Descript(self):
        r"""描述
        :rtype: str
        """
        return self._Descript

    @Descript.setter
    def Descript(self, Descript):
        self._Descript = Descript

    @property
    def PublishTimeWisteria(self):
        r"""废弃字段
        :rtype: str
        """
        return self._PublishTimeWisteria

    @PublishTimeWisteria.setter
    def PublishTimeWisteria(self, PublishTimeWisteria):
        self._PublishTimeWisteria = PublishTimeWisteria

    @property
    def NameWisteria(self):
        r"""废弃字段
        :rtype: str
        """
        return self._NameWisteria

    @NameWisteria.setter
    def NameWisteria(self, NameWisteria):
        self._NameWisteria = NameWisteria

    @property
    def DescriptWisteria(self):
        r"""废弃字段
        :rtype: str
        """
        return self._DescriptWisteria

    @DescriptWisteria.setter
    def DescriptWisteria(self, DescriptWisteria):
        self._DescriptWisteria = DescriptWisteria

    @property
    def StatusStr(self):
        r"""聚合后事件状态串
        :rtype: str
        """
        return self._StatusStr

    @StatusStr.setter
    def StatusStr(self, StatusStr):
        self._StatusStr = StatusStr

    @property
    def CveId(self):
        r"""cve编号
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def CvssScore(self):
        r"""CVSS评分
        :rtype: float
        """
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def Labels(self):
        r"""漏洞标签 多个逗号分割

存在EXP:EXP
在野攻击:KNOWN_EXPLOITED
本地利用:LOCAL
必修漏洞:NEED_FIX
远程利用:NETWORK
存在POC:POC
系统重启:RESTART
        :rtype: str
        """
        return self._Labels

    @Labels.setter
    def Labels(self, Labels):
        self._Labels = Labels

    @property
    def FixSwitch(self):
        r"""是否能自动修复且包含能自动修复的主机， 0=否  1=是
        :rtype: int
        """
        return self._FixSwitch

    @FixSwitch.setter
    def FixSwitch(self, FixSwitch):
        self._FixSwitch = FixSwitch

    @property
    def TaskId(self):
        r"""最后扫描任务的id
        :rtype: int
        """
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def IsSupportDefense(self):
        r"""是否支持防御， 0:不支持 1:支持
        :rtype: int
        """
        return self._IsSupportDefense

    @IsSupportDefense.setter
    def IsSupportDefense(self, IsSupportDefense):
        self._IsSupportDefense = IsSupportDefense

    @property
    def DefenseAttackCount(self):
        r"""已防御的攻击次数
        :rtype: int
        """
        return self._DefenseAttackCount

    @DefenseAttackCount.setter
    def DefenseAttackCount(self, DefenseAttackCount):
        self._DefenseAttackCount = DefenseAttackCount

    @property
    def FirstAppearTime(self):
        r"""首次出现时间
        :rtype: str
        """
        return self._FirstAppearTime

    @FirstAppearTime.setter
    def FirstAppearTime(self, FirstAppearTime):
        self._FirstAppearTime = FirstAppearTime

    @property
    def VulCategory(self):
        r"""漏洞类别 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def AttackLevel(self):
        r"""攻击热度级别
        :rtype: int
        """
        return self._AttackLevel

    @AttackLevel.setter
    def AttackLevel(self, AttackLevel):
        self._AttackLevel = AttackLevel

    @property
    def FixNoNeedRestart(self):
        r"""漏洞修复后是否需要重启
        :rtype: bool
        """
        return self._FixNoNeedRestart

    @FixNoNeedRestart.setter
    def FixNoNeedRestart(self, FixNoNeedRestart):
        self._FixNoNeedRestart = FixNoNeedRestart

    @property
    def Method(self):
        r"""检测方式0 - 版本比对, 1 - POC验证
        :rtype: int
        """
        return self._Method

    @Method.setter
    def Method(self, Method):
        self._Method = Method

    @property
    def VulFixSwitch(self):
        r"""漏洞是否支持修复 0不支持，1支持
        :rtype: int
        """
        return self._VulFixSwitch

    @VulFixSwitch.setter
    def VulFixSwitch(self, VulFixSwitch):
        self._VulFixSwitch = VulFixSwitch

    @property
    def LatestFixTime(self):
        r"""最近修复时间
        :rtype: str
        """
        return self._LatestFixTime

    @LatestFixTime.setter
    def LatestFixTime(self, LatestFixTime):
        self._LatestFixTime = LatestFixTime

    @property
    def RaspOpenNodeCount(self):
        r"""漏洞对应机器的应用防护开启数量
        :rtype: int
        """
        return self._RaspOpenNodeCount

    @RaspOpenNodeCount.setter
    def RaspOpenNodeCount(self, RaspOpenNodeCount):
        self._RaspOpenNodeCount = RaspOpenNodeCount

    @property
    def RaspClosedNodeCount(self):
        r"""漏洞对应机器的应用防护关闭数量
        :rtype: int
        """
        return self._RaspClosedNodeCount

    @RaspClosedNodeCount.setter
    def RaspClosedNodeCount(self, RaspClosedNodeCount):
        self._RaspClosedNodeCount = RaspClosedNodeCount


    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")
        self._VulFixSwitch = params.get("VulFixSwitch")
        self._LatestFixTime = params.get("LatestFixTime")
        self._RaspOpenNodeCount = params.get("RaspOpenNodeCount")
        self._RaspClosedNodeCount = params.get("RaspClosedNodeCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""漏洞等级数量实体

    """

    def __init__(self):
        r"""
        :param _VulLevel: 漏洞等级
        :type VulLevel: int
        :param _VulCount: 漏洞数量
        :type VulCount: int
        """
        self._VulLevel = None
        self._VulCount = None

    @property
    def VulLevel(self):
        r"""漏洞等级
        :rtype: int
        """
        return self._VulLevel

    @VulLevel.setter
    def VulLevel(self, VulLevel):
        self._VulLevel = VulLevel

    @property
    def VulCount(self):
        r"""漏洞数量
        :rtype: int
        """
        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):
    r"""漏洞数量按等级分布统计结果实体

    """

    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):
        r"""// 危害等级：1-低危；2-中危；3-高危；4-严重
        :rtype: int
        """
        return self._VulLevel

    @VulLevel.setter
    def VulLevel(self, VulLevel):
        self._VulLevel = VulLevel

    @property
    def Count(self):
        r"""数量
        :rtype: int
        """
        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):
    r"""漏洞概览

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _TodayCount: 今日新增数量
        :type TodayCount: int
        """
        self._TotalCount = None
        self._TodayCount = None

    @property
    def TotalCount(self):
        r"""总数
        :rtype: int
        """
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def TodayCount(self):
        r"""今日新增数量
        :rtype: int
        """
        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):
    r"""漏洞仓库列表信息

    """

    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):
        r"""漏洞ID
        :rtype: int
        """
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Level(self):
        r"""漏洞级别
        :rtype: int
        """
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Name(self):
        r"""漏洞名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def CveId(self):
        r"""cve编号
        :rtype: str
        """
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def VulCategory(self):
        r"""1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 0= 应急漏洞
        :rtype: int
        """
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def PublishDate(self):
        r"""发布时间
        :rtype: str
        """
        return self._PublishDate

    @PublishDate.setter
    def PublishDate(self, PublishDate):
        self._PublishDate = PublishDate

    @property
    def Method(self):
        r"""漏洞检测方法 0 - 版本比对, 1 - POC验证
        :rtype: int
        """
        return self._Method

    @Method.setter
    def Method(self, Method):
        self._Method = Method

    @property
    def AttackLevel(self):
        r"""漏洞攻击热度
        :rtype: int
        """
        return self._AttackLevel

    @AttackLevel.setter
    def AttackLevel(self, AttackLevel):
        self._AttackLevel = AttackLevel

    @property
    def FixSwitch(self):
        r"""漏洞是否支持自动修复
0-Windows/Linux均关闭; 1-Windows/Linux均打开; 2-仅Linux; 3-仅Windows
        :rtype: int
        """
        return self._FixSwitch

    @FixSwitch.setter
    def FixSwitch(self, FixSwitch):
        self._FixSwitch = FixSwitch

    @property
    def SupportDefense(self):
        r"""漏洞是否支持防御
0:不支持 1:支持
        :rtype: int
        """
        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):
    r"""漏洞top统计实体

    """

    def __init__(self):
        r"""
        :param _VulName: 漏洞 名
        :type VulName: str
        :param _VulLevel: 危害等级：1-低危；2-中危；3-高危；4-严重
        :type VulLevel: int
        :param _VulCount: 漏洞数量
        :type VulCount: int
        :param _VulId: 漏洞id
        :type VulId: int
        """
        self._VulName = None
        self._VulLevel = None
        self._VulCount = None
        self._VulId = None

    @property
    def VulName(self):
        r"""漏洞 名
        :rtype: str
        """
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def VulLevel(self):
        r"""危害等级：1-低危；2-中危；3-高危；4-严重
        :rtype: int
        """
        return self._VulLevel

    @VulLevel.setter
    def VulLevel(self, VulLevel):
        self._VulLevel = VulLevel

    @property
    def VulCount(self):
        r"""漏洞数量
        :rtype: int
        """
        return self._VulCount

    @VulCount.setter
    def VulCount(self, VulCount):
        self._VulCount = VulCount

    @property
    def VulId(self):
        r"""漏洞id
        :rtype: int
        """
        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):
    r"""告警设置列表

    """

    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:自选主机
        :type HostRange: int
        :param _Count: 配置的告警范围主机个数，前端用此判断展示提示信息
        :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):
        r"""事件告警类型；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：客户端离线告警
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def DisablePhoneWarning(self):
        r"""1: 关闭告警 0: 开启告警
        :rtype: int
        """
        return self._DisablePhoneWarning

    @DisablePhoneWarning.setter
    def DisablePhoneWarning(self, DisablePhoneWarning):
        self._DisablePhoneWarning = DisablePhoneWarning

    @property
    def BeginTime(self):
        r"""开始时间，格式: HH:mm
        :rtype: str
        """
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime

    @property
    def EndTime(self):
        r"""结束时间，格式: HH:mm
        :rtype: str
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def TimeZone(self):
        r"""时区信息
        :rtype: str
        """
        return self._TimeZone

    @TimeZone.setter
    def TimeZone(self, TimeZone):
        self._TimeZone = TimeZone

    @property
    def ControlBit(self):
        r"""漏洞等级控制位（对应DB的十进制存储）
        :rtype: int
        """
        return self._ControlBit

    @ControlBit.setter
    def ControlBit(self, ControlBit):
        self._ControlBit = ControlBit

    @property
    def ControlBits(self):
        r"""漏洞等级控制位二进制，每一位对应页面漏洞等级的开启关闭：低中高（0:关闭；1：开启），例如：101 → 同时勾选低+高
        :rtype: str
        """
        return self._ControlBits

    @ControlBits.setter
    def ControlBits(self, ControlBits):
        self._ControlBits = ControlBits

    @property
    def HostRange(self):
        r"""告警主机范围类型，0:全部主机，1:按所属项目选，2:按腾讯云标签选，3:按主机安全标签选，4:自选主机
        :rtype: int
        """
        return self._HostRange

    @HostRange.setter
    def HostRange(self, HostRange):
        self._HostRange = HostRange

    @property
    def Count(self):
        r"""配置的告警范围主机个数，前端用此判断展示提示信息
        :rtype: int
        """
        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):
    r"""告警更新或插入的参数

    """

    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
        :param _Unit: 单位
        :type Unit: str
        """
        self._Type = None
        self._DisablePhoneWarning = None
        self._BeginTime = None
        self._EndTime = None
        self._ControlBits = None
        self._HostRange = None
        self._Unit = None

    @property
    def Type(self):
        r"""事件告警类型；1：离线，2：木马，3：异常登录，4：爆破，5：漏洞（已拆分为9-12四种类型）6：高危命令，7：反弹sell，8：本地提权，9：系统组件漏洞，10：web应用漏洞，11：应急漏洞，12：安全基线，14：恶意请求，15: 网络攻击，16：Windows系统漏洞，17：Linux软件漏洞
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def DisablePhoneWarning(self):
        r"""1: 关闭告警 0: 开启告警
        :rtype: int
        """
        return self._DisablePhoneWarning

    @DisablePhoneWarning.setter
    def DisablePhoneWarning(self, DisablePhoneWarning):
        self._DisablePhoneWarning = DisablePhoneWarning

    @property
    def BeginTime(self):
        r"""开始时间，格式: HH:mm
        :rtype: str
        """
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime

    @property
    def EndTime(self):
        r"""结束时间，格式: HH:mm
        :rtype: str
        """
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def ControlBits(self):
        r"""漏洞等级控制位二进制，每一位对应页面漏洞等级的开启关闭：低中高（0:关闭；1：开启），例如：101 → 同时勾选低+高；01→(登录审计)疑似不告警，高危告警
        :rtype: str
        """
        return self._ControlBits

    @ControlBits.setter
    def ControlBits(self, ControlBits):
        self._ControlBits = ControlBits

    @property
    def HostRange(self):
        r"""告警主机范围类型，0:全部主机，1:按所属项目选，2:按腾讯云标签选，3:按主机安全标签选，4:自选主机
        :rtype: int
        """
        return self._HostRange

    @HostRange.setter
    def HostRange(self, HostRange):
        self._HostRange = HostRange

    @property
    def Unit(self):
        r"""单位
        :rtype: str
        """
        return self._Unit

    @Unit.setter
    def Unit(self, Unit):
        self._Unit = Unit


    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")
        self._Unit = params.get("Unit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""自定义透传字段结构

    """

    def __init__(self):
        r"""
        :param _Key: key
        :type Key: str
        :param _Value: value
        :type Value: str
        """
        self._Key = None
        self._Value = None

    @property
    def Key(self):
        r"""key
        :rtype: str
        """
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Value(self):
        r"""value
        :rtype: str
        """
        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):
    r"""企微机器人事件类型

    """

    def __init__(self):
        r"""
        :param _Type: 事件类型
        :type Type: int
        :param _ControlBit: 事件内容
        :type ControlBit: str
        """
        self._Type = None
        self._ControlBit = None

    @property
    def Type(self):
        r"""事件类型
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def ControlBit(self):
        r"""事件内容
        :rtype: str
        """
        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):
    r"""企微机器人主机范围

    """

    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):
        r"""主机范围[1:所属项目|2:腾讯云标签|3:主机安全标签|4:自选]空数组为全部
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Values(self):
        r"""主机项目或标签内容
        :rtype: list of str
        """
        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):
    r"""策略

    """

    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
        :param _HostCount: 主机数目
        :type HostCount: int
        :param _ExcludedQuuids: 需排除的机器列表
        :type ExcludedQuuids: list of str
        :param _MsgLanguage: 推送语言类型，中文zh，英文en	
        :type MsgLanguage: 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
        self._HostCount = None
        self._ExcludedQuuids = None
        self._MsgLanguage = None

    @property
    def Id(self):
        r"""id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        r"""策略名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Events(self):
        r"""事件类型
        :rtype: list of WebHookEventKv
        """
        return self._Events

    @Events.setter
    def Events(self, Events):
        self._Events = Events

    @property
    def HostLabels(self):
        r"""主机范围
        :rtype: list of WebHookHostLabel
        """
        return self._HostLabels

    @HostLabels.setter
    def HostLabels(self, HostLabels):
        self._HostLabels = HostLabels

    @property
    def Receivers(self):
        r"""接收人
        :rtype: list of WebHookReceiver
        """
        return self._Receivers

    @Receivers.setter
    def Receivers(self, Receivers):
        self._Receivers = Receivers

    @property
    def Format(self):
        r"""格式 0text 1json
        :rtype: int
        """
        return self._Format

    @Format.setter
    def Format(self, Format):
        self._Format = Format

    @property
    def CustomFields(self):
        r"""自定义透传字段
        :rtype: list of WebHookCustomField
        """
        return self._CustomFields

    @CustomFields.setter
    def CustomFields(self, CustomFields):
        self._CustomFields = CustomFields

    @property
    def IsDisabled(self):
        r"""是否启用[1:禁用|0:启用]
        :rtype: int
        """
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled

    @property
    def Quuids(self):
        r"""主机列表
        :rtype: list of str
        """
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def HostCount(self):
        r"""主机数目
        :rtype: int
        """
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ExcludedQuuids(self):
        r"""需排除的机器列表
        :rtype: list of str
        """
        return self._ExcludedQuuids

    @ExcludedQuuids.setter
    def ExcludedQuuids(self, ExcludedQuuids):
        self._ExcludedQuuids = ExcludedQuuids

    @property
    def MsgLanguage(self):
        r"""推送语言类型，中文zh，英文en	
        :rtype: str
        """
        return self._MsgLanguage

    @MsgLanguage.setter
    def MsgLanguage(self, MsgLanguage):
        self._MsgLanguage = MsgLanguage


    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")
        self._ExcludedQuuids = params.get("ExcludedQuuids")
        self._MsgLanguage = params.get("MsgLanguage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""告警接收人

    """

    def __init__(self):
        r"""
        :param _Id: id
        :type Id: int
        :param _Name: 接收人名称
        :type Name: str
        :param _Addr: webhook地址
        :type Addr: str
        :param _Type: 类型
        :type Type: int
        :param _SCFRegion: 目标地域
        :type SCFRegion: str
        :param _Namespace: 命名空间
        :type Namespace: str
        :param _FunctionName: 函数名称
        :type FunctionName: str
        :param _FunctionVersion: 版本
        :type FunctionVersion: str
        :param _Alias: 别名
        :type Alias: str
        """
        self._Id = None
        self._Name = None
        self._Addr = None
        self._Type = None
        self._SCFRegion = None
        self._Namespace = None
        self._FunctionName = None
        self._FunctionVersion = None
        self._Alias = None

    @property
    def Id(self):
        r"""id
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        r"""接收人名称
        :rtype: str
        """
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Addr(self):
        r"""webhook地址
        :rtype: str
        """
        return self._Addr

    @Addr.setter
    def Addr(self, Addr):
        self._Addr = Addr

    @property
    def Type(self):
        r"""类型
        :rtype: int
        """
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def SCFRegion(self):
        r"""目标地域
        :rtype: str
        """
        return self._SCFRegion

    @SCFRegion.setter
    def SCFRegion(self, SCFRegion):
        self._SCFRegion = SCFRegion

    @property
    def Namespace(self):
        r"""命名空间
        :rtype: str
        """
        return self._Namespace

    @Namespace.setter
    def Namespace(self, Namespace):
        self._Namespace = Namespace

    @property
    def FunctionName(self):
        r"""函数名称
        :rtype: str
        """
        return self._FunctionName

    @FunctionName.setter
    def FunctionName(self, FunctionName):
        self._FunctionName = FunctionName

    @property
    def FunctionVersion(self):
        r"""版本
        :rtype: str
        """
        return self._FunctionVersion

    @FunctionVersion.setter
    def FunctionVersion(self, FunctionVersion):
        self._FunctionVersion = FunctionVersion

    @property
    def Alias(self):
        r"""别名
        :rtype: str
        """
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        self._Addr = params.get("Addr")
        self._Type = params.get("Type")
        self._SCFRegion = params.get("SCFRegion")
        self._Namespace = params.get("Namespace")
        self._FunctionName = params.get("FunctionName")
        self._FunctionVersion = params.get("FunctionVersion")
        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 WebHookReceiverUsage(AbstractModel):
    r"""告警接收人的关联策略使用信息

    """

    def __init__(self):
        r"""
        :param _ReceiverId: 接收人id
        :type ReceiverId: int
        :param _ReceiverName: 接收人名称
        :type ReceiverName: str
        :param _PolicyName: 策略名称
        :type PolicyName: str
        """
        self._ReceiverId = None
        self._ReceiverName = None
        self._PolicyName = None

    @property
    def ReceiverId(self):
        r"""接收人id
        :rtype: int
        """
        return self._ReceiverId

    @ReceiverId.setter
    def ReceiverId(self, ReceiverId):
        self._ReceiverId = ReceiverId

    @property
    def ReceiverName(self):
        r"""接收人名称
        :rtype: str
        """
        return self._ReceiverName

    @ReceiverName.setter
    def ReceiverName(self, ReceiverName):
        self._ReceiverName = ReceiverName

    @property
    def PolicyName(self):
        r"""策略名称
        :rtype: str
        """
        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):
    r"""企微机器人规则详情

    """

    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):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def HookAddr(self):
        r"""机器人地址
        :rtype: str
        """
        return self._HookAddr

    @HookAddr.setter
    def HookAddr(self, HookAddr):
        self._HookAddr = HookAddr

    @property
    def RuleItems(self):
        r"""事件类型
        :rtype: list of WebHookEventKv
        """
        return self._RuleItems

    @RuleItems.setter
    def RuleItems(self, RuleItems):
        self._RuleItems = RuleItems

    @property
    def RuleId(self):
        r"""规则Id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleRemark(self):
        r"""备注信息
        :rtype: str
        """
        return self._RuleRemark

    @RuleRemark.setter
    def RuleRemark(self, RuleRemark):
        self._RuleRemark = RuleRemark

    @property
    def HostLabels(self):
        r"""主机范围
        :rtype: list of WebHookHostLabel
        """
        return self._HostLabels

    @HostLabels.setter
    def HostLabels(self, HostLabels):
        self._HostLabels = HostLabels

    @property
    def HostIds(self):
        r"""主机Id列表
        :rtype: list of str
        """
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def IsDisabled(self):
        r"""是否启用[1:禁用|0:启用]
        :rtype: int
        """
        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):
    r"""企微机器人规则概要

    """

    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):
        r"""规则Id
        :rtype: int
        """
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        r"""规则名称
        :rtype: str
        """
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def HookAddr(self):
        r"""机器人地址
        :rtype: str
        """
        return self._HookAddr

    @HookAddr.setter
    def HookAddr(self, HookAddr):
        self._HookAddr = HookAddr

    @property
    def RuleRemark(self):
        r"""备注信息
        :rtype: str
        """
        return self._RuleRemark

    @RuleRemark.setter
    def RuleRemark(self, RuleRemark):
        self._RuleRemark = RuleRemark

    @property
    def RuleItems(self):
        r"""事件类型
        :rtype: list of WebHookEventKv
        """
        return self._RuleItems

    @RuleItems.setter
    def RuleItems(self, RuleItems):
        self._RuleItems = RuleItems

    @property
    def HostLabels(self):
        r"""主机范围
        :rtype: list of WebHookHostLabel
        """
        return self._HostLabels

    @HostLabels.setter
    def HostLabels(self, HostLabels):
        self._HostLabels = HostLabels

    @property
    def IsDisabled(self):
        r"""是否启用[1:禁用|0:启用]
        :rtype: int
        """
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def UpdateTime(self):
        r"""更新时间
        :rtype: str
        """
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def HostCount(self):
        r"""主机数目
        :rtype: int
        """
        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 YDRaspBlackWhiteListItem(AbstractModel):
    r"""应用防护白名单规则

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _LogicalSymbol: 逻辑运算符，0: 下面5个有效的正则逻辑与 1: 逻辑或
        :type LogicalSymbol: int
        :param _ClassNameRegexp: 类名正则表达式，为空则不匹配
        :type ClassNameRegexp: str
        :param _SuperClassNameRegexp: 父类名正则表达式，为空则不匹配
        :type SuperClassNameRegexp: str
        :param _InterfacesRegexp: 继承的接口正则表达式，为空则不匹配
        :type InterfacesRegexp: str
        :param _AnnotationsRegexp: 注释正则表达式，为空则不匹配
        :type AnnotationsRegexp: str
        :param _LoaderClassNameRegexp: 所属的类加载器正则表达式，为空则不匹配
        :type LoaderClassNameRegexp: str
        :param _Source: 白名单类型，rasp:漏洞防御,memshell_scan:内存马扫描, memshell_inject:内存马注入
        :type Source: str
        :param _Status: 状态 (0: 有效 1: 删除，2：无效（启用开关关闭）)
        :type Status: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        :param _HandleHistory: 内存马扫描使用，处理历史事件， 0:不处理 1:处理
        :type HandleHistory: int
        :param _Content: rasp和内存马注入使用，匹配内容，POC，可以是正则表达式（MatchMode=5），也可以是字符串
        :type Content: str
        :param _IP: rasp和内存马注入使用，攻击来源ip,不设置就是全部来源，可以多个，可以有ip段，例如：192.168.57.1/24;172.17.0.1
        :type IP: str
        :param _PolicyName: 规则名称
        :type PolicyName: str
        :param _FilterType: rasp和内存马注入使用，加白方式，0：恶意特征加白，1：请求URL加白
        :type FilterType: int
        :param _AttackType: rasp和内存马注入使用，攻击类型，vul.rasp_attacktype_mapping attack_type_id字段
        :type AttackType: int
        :param _MatchMode: rasp和内存马注入使用，匹配模式，0:完全匹配,1：前缀匹配，2：后缀匹配，4：任意匹配，5：部分匹配，6：正则匹配
        :type MatchMode: int
        :param _CWPEffective: 生效资产类型，0: 主机不生效 1: 主机生效
        :type CWPEffective: int
        :param _CWPScope: 0: 一组quuid 1: 所有主机授权的机器
        :type CWPScope: int
        :param _CWPQuuids: 指定生效主机机器
        :type CWPQuuids: list of str
        :param _TCSSEffective: 生效资产类型，0: 容器不生效 1: 容器生效
        :type TCSSEffective: int
        :param _TCSSScope: 0: 一组quuid 1: 所有容器授权的node
        :type TCSSScope: int
        :param _TCSSQuuids: 指定生效容器节点
        :type TCSSQuuids: list of str
        :param _EksEffective: 生效资产类型，0: 超级节点不生效 1: 超级节点生效
        :type EksEffective: int
        :param _EksScope: 0: 一组quuid 1: 所有容器授权的超级节点
        :type EksScope: int
        :param _EksNodeUniqueID: 指定生效容器超级节点
        :type EksNodeUniqueID: list of str
        :param _CWPMachinesNums: 应用资产，全局则：全部主机，否则是选择主机服务器的数量
        :type CWPMachinesNums: str
        :param _TCSSMachinesNums: 应用资产，全局则：全部容器主机节点，否则是选择容器主机节点的数量
        :type TCSSMachinesNums: str
        :param _EksMachinesNums: 应用资产，全局则：全部超级节点，否则是选择超级节点的数量
        :type EksMachinesNums: str
        """
        self._Id = None
        self._LogicalSymbol = None
        self._ClassNameRegexp = None
        self._SuperClassNameRegexp = None
        self._InterfacesRegexp = None
        self._AnnotationsRegexp = None
        self._LoaderClassNameRegexp = None
        self._Source = None
        self._Status = None
        self._CreateTime = None
        self._ModifyTime = None
        self._HandleHistory = None
        self._Content = None
        self._IP = None
        self._PolicyName = None
        self._FilterType = None
        self._AttackType = None
        self._MatchMode = None
        self._CWPEffective = None
        self._CWPScope = None
        self._CWPQuuids = None
        self._TCSSEffective = None
        self._TCSSScope = None
        self._TCSSQuuids = None
        self._EksEffective = None
        self._EksScope = None
        self._EksNodeUniqueID = None
        self._CWPMachinesNums = None
        self._TCSSMachinesNums = None
        self._EksMachinesNums = None

    @property
    def Id(self):
        r"""规则ID
        :rtype: int
        """
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def LogicalSymbol(self):
        r"""逻辑运算符，0: 下面5个有效的正则逻辑与 1: 逻辑或
        :rtype: int
        """
        return self._LogicalSymbol

    @LogicalSymbol.setter
    def LogicalSymbol(self, LogicalSymbol):
        self._LogicalSymbol = LogicalSymbol

    @property
    def ClassNameRegexp(self):
        r"""类名正则表达式，为空则不匹配
        :rtype: str
        """
        return self._ClassNameRegexp

    @ClassNameRegexp.setter
    def ClassNameRegexp(self, ClassNameRegexp):
        self._ClassNameRegexp = ClassNameRegexp

    @property
    def SuperClassNameRegexp(self):
        r"""父类名正则表达式，为空则不匹配
        :rtype: str
        """
        return self._SuperClassNameRegexp

    @SuperClassNameRegexp.setter
    def SuperClassNameRegexp(self, SuperClassNameRegexp):
        self._SuperClassNameRegexp = SuperClassNameRegexp

    @property
    def InterfacesRegexp(self):
        r"""继承的接口正则表达式，为空则不匹配
        :rtype: str
        """
        return self._InterfacesRegexp

    @InterfacesRegexp.setter
    def InterfacesRegexp(self, InterfacesRegexp):
        self._InterfacesRegexp = InterfacesRegexp

    @property
    def AnnotationsRegexp(self):
        r"""注释正则表达式，为空则不匹配
        :rtype: str
        """
        return self._AnnotationsRegexp

    @AnnotationsRegexp.setter
    def AnnotationsRegexp(self, AnnotationsRegexp):
        self._AnnotationsRegexp = AnnotationsRegexp

    @property
    def LoaderClassNameRegexp(self):
        r"""所属的类加载器正则表达式，为空则不匹配
        :rtype: str
        """
        return self._LoaderClassNameRegexp

    @LoaderClassNameRegexp.setter
    def LoaderClassNameRegexp(self, LoaderClassNameRegexp):
        self._LoaderClassNameRegexp = LoaderClassNameRegexp

    @property
    def Source(self):
        r"""白名单类型，rasp:漏洞防御,memshell_scan:内存马扫描, memshell_inject:内存马注入
        :rtype: str
        """
        return self._Source

    @Source.setter
    def Source(self, Source):
        self._Source = Source

    @property
    def Status(self):
        r"""状态 (0: 有效 1: 删除，2：无效（启用开关关闭）)
        :rtype: int
        """
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        r"""创建时间
        :rtype: str
        """
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        r"""修改时间
        :rtype: str
        """
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def HandleHistory(self):
        r"""内存马扫描使用，处理历史事件， 0:不处理 1:处理
        :rtype: int
        """
        return self._HandleHistory

    @HandleHistory.setter
    def HandleHistory(self, HandleHistory):
        self._HandleHistory = HandleHistory

    @property
    def Content(self):
        r"""rasp和内存马注入使用，匹配内容，POC，可以是正则表达式（MatchMode=5），也可以是字符串
        :rtype: str
        """
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def IP(self):
        r"""rasp和内存马注入使用，攻击来源ip,不设置就是全部来源，可以多个，可以有ip段，例如：192.168.57.1/24;172.17.0.1
        :rtype: str
        """
        return self._IP

    @IP.setter
    def IP(self, IP):
        self._IP = IP

    @property
    def PolicyName(self):
        r"""规则名称
        :rtype: str
        """
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def FilterType(self):
        r"""rasp和内存马注入使用，加白方式，0：恶意特征加白，1：请求URL加白
        :rtype: int
        """
        return self._FilterType

    @FilterType.setter
    def FilterType(self, FilterType):
        self._FilterType = FilterType

    @property
    def AttackType(self):
        r"""rasp和内存马注入使用，攻击类型，vul.rasp_attacktype_mapping attack_type_id字段
        :rtype: int
        """
        return self._AttackType

    @AttackType.setter
    def AttackType(self, AttackType):
        self._AttackType = AttackType

    @property
    def MatchMode(self):
        r"""rasp和内存马注入使用，匹配模式，0:完全匹配,1：前缀匹配，2：后缀匹配，4：任意匹配，5：部分匹配，6：正则匹配
        :rtype: int
        """
        return self._MatchMode

    @MatchMode.setter
    def MatchMode(self, MatchMode):
        self._MatchMode = MatchMode

    @property
    def CWPEffective(self):
        r"""生效资产类型，0: 主机不生效 1: 主机生效
        :rtype: int
        """
        return self._CWPEffective

    @CWPEffective.setter
    def CWPEffective(self, CWPEffective):
        self._CWPEffective = CWPEffective

    @property
    def CWPScope(self):
        r"""0: 一组quuid 1: 所有主机授权的机器
        :rtype: int
        """
        return self._CWPScope

    @CWPScope.setter
    def CWPScope(self, CWPScope):
        self._CWPScope = CWPScope

    @property
    def CWPQuuids(self):
        r"""指定生效主机机器
        :rtype: list of str
        """
        return self._CWPQuuids

    @CWPQuuids.setter
    def CWPQuuids(self, CWPQuuids):
        self._CWPQuuids = CWPQuuids

    @property
    def TCSSEffective(self):
        r"""生效资产类型，0: 容器不生效 1: 容器生效
        :rtype: int
        """
        return self._TCSSEffective

    @TCSSEffective.setter
    def TCSSEffective(self, TCSSEffective):
        self._TCSSEffective = TCSSEffective

    @property
    def TCSSScope(self):
        r"""0: 一组quuid 1: 所有容器授权的node
        :rtype: int
        """
        return self._TCSSScope

    @TCSSScope.setter
    def TCSSScope(self, TCSSScope):
        self._TCSSScope = TCSSScope

    @property
    def TCSSQuuids(self):
        r"""指定生效容器节点
        :rtype: list of str
        """
        return self._TCSSQuuids

    @TCSSQuuids.setter
    def TCSSQuuids(self, TCSSQuuids):
        self._TCSSQuuids = TCSSQuuids

    @property
    def EksEffective(self):
        r"""生效资产类型，0: 超级节点不生效 1: 超级节点生效
        :rtype: int
        """
        return self._EksEffective

    @EksEffective.setter
    def EksEffective(self, EksEffective):
        self._EksEffective = EksEffective

    @property
    def EksScope(self):
        r"""0: 一组quuid 1: 所有容器授权的超级节点
        :rtype: int
        """
        return self._EksScope

    @EksScope.setter
    def EksScope(self, EksScope):
        self._EksScope = EksScope

    @property
    def EksNodeUniqueID(self):
        r"""指定生效容器超级节点
        :rtype: list of str
        """
        return self._EksNodeUniqueID

    @EksNodeUniqueID.setter
    def EksNodeUniqueID(self, EksNodeUniqueID):
        self._EksNodeUniqueID = EksNodeUniqueID

    @property
    def CWPMachinesNums(self):
        r"""应用资产，全局则：全部主机，否则是选择主机服务器的数量
        :rtype: str
        """
        return self._CWPMachinesNums

    @CWPMachinesNums.setter
    def CWPMachinesNums(self, CWPMachinesNums):
        self._CWPMachinesNums = CWPMachinesNums

    @property
    def TCSSMachinesNums(self):
        r"""应用资产，全局则：全部容器主机节点，否则是选择容器主机节点的数量
        :rtype: str
        """
        return self._TCSSMachinesNums

    @TCSSMachinesNums.setter
    def TCSSMachinesNums(self, TCSSMachinesNums):
        self._TCSSMachinesNums = TCSSMachinesNums

    @property
    def EksMachinesNums(self):
        r"""应用资产，全局则：全部超级节点，否则是选择超级节点的数量
        :rtype: str
        """
        return self._EksMachinesNums

    @EksMachinesNums.setter
    def EksMachinesNums(self, EksMachinesNums):
        self._EksMachinesNums = EksMachinesNums


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._LogicalSymbol = params.get("LogicalSymbol")
        self._ClassNameRegexp = params.get("ClassNameRegexp")
        self._SuperClassNameRegexp = params.get("SuperClassNameRegexp")
        self._InterfacesRegexp = params.get("InterfacesRegexp")
        self._AnnotationsRegexp = params.get("AnnotationsRegexp")
        self._LoaderClassNameRegexp = params.get("LoaderClassNameRegexp")
        self._Source = params.get("Source")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._HandleHistory = params.get("HandleHistory")
        self._Content = params.get("Content")
        self._IP = params.get("IP")
        self._PolicyName = params.get("PolicyName")
        self._FilterType = params.get("FilterType")
        self._AttackType = params.get("AttackType")
        self._MatchMode = params.get("MatchMode")
        self._CWPEffective = params.get("CWPEffective")
        self._CWPScope = params.get("CWPScope")
        self._CWPQuuids = params.get("CWPQuuids")
        self._TCSSEffective = params.get("TCSSEffective")
        self._TCSSScope = params.get("TCSSScope")
        self._TCSSQuuids = params.get("TCSSQuuids")
        self._EksEffective = params.get("EksEffective")
        self._EksScope = params.get("EksScope")
        self._EksNodeUniqueID = params.get("EksNodeUniqueID")
        self._CWPMachinesNums = params.get("CWPMachinesNums")
        self._TCSSMachinesNums = params.get("TCSSMachinesNums")
        self._EksMachinesNums = params.get("EksMachinesNums")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_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):
    r"""可用区信息

    """

    def __init__(self):
        r"""
        :param _ZoneName: 可用区名称
        :type ZoneName: str
        """
        self._ZoneName = None

    @property
    def ZoneName(self):
        r"""可用区名称
        :rtype: str
        """
        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))
        