UNPKG

tencentcloud-sdk-nodejs-intl-en

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

/**
 * CreateVirusScanAgain request structure.
 * @class
 */
class CreateVirusScanAgainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskId = null;

        /**
         * Set of IDs of containers to be scanned
         * @type {Array.<string> || null}
         */
        this.ContainerIds = null;

        /**
         * Whether to scan all timed-out containers
         * @type {boolean || null}
         */
        this.TimeoutAll = null;

        /**
         * New timeout period
         * @type {number || null}
         */
        this.Timeout = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.ContainerIds = 'ContainerIds' in params ? params.ContainerIds : null;
        this.TimeoutAll = 'TimeoutAll' in params ? params.TimeoutAll : null;
        this.Timeout = 'Timeout' in params ? params.Timeout : null;

    }
}

/**
 * DescribeSecLogDeliveryKafkaSetting request structure.
 * @class
 */
class DescribeSecLogDeliveryKafkaSettingRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeSearchTemplates response structure.
 * @class
 */
class DescribeSearchTemplatesResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Template list
         * @type {Array.<SearchTemplate> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new SearchTemplate();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Scan for ignored vulnerabilities
 * @class
 */
class ScanIgnoreVul extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.VulName = null;

        /**
         * Vulnerability CVE ID
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Number of ignored repository images
         * @type {number || null}
         */
        this.RegistryImageCount = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Whether to ignore all images. Valid values: `0` (no); `1` (yes).
         * @type {number || null}
         */
        this.IsIgnoreAll = null;

        /**
         * Number of ignored local images
         * @type {number || null}
         */
        this.LocalImageCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.VulName = 'VulName' in params ? params.VulName : null;
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.RegistryImageCount = 'RegistryImageCount' in params ? params.RegistryImageCount : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.IsIgnoreAll = 'IsIgnoreAll' in params ? params.IsIgnoreAll : null;
        this.LocalImageCount = 'LocalImageCount' in params ? params.LocalImageCount : null;

    }
}

/**
 * UpdateImageRegistryTimingScanTask response structure.
 * @class
 */
class UpdateImageRegistryTimingScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeScanIgnoreVulList response structure.
 * @class
 */
class DescribeScanIgnoreVulListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of vulnerabilities
         * @type {Array.<ScanIgnoreVul> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ScanIgnoreVul();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyVulDefenceEventStatus request structure.
 * @class
 */
class ModifyVulDefenceEventStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Array of event IDs
         * @type {Array.<number> || null}
         */
        this.EventIDs = null;

        /**
         * Operation status:
Valid values: `EVENT_DEALED` (processed); `EVENT_IGNORE` (ignore); `EVENT_ISOLATE_CONTAINER` (isolate the container); `EVENT_DEL` (delete).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIDs = 'EventIDs' in params ? params.EventIDs : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

    }
}

/**
 * ModifyVirusAutoIsolateExampleSwitch response structure.
 * @class
 */
class ModifyVirusAutoIsolateExampleSwitchResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CKafka topic information
 * @class
 */
class CKafkaTopicInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Topic ID
         * @type {string || null}
         */
        this.TopicID = null;

        /**
         * Topic name
         * @type {string || null}
         */
        this.TopicName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TopicID = 'TopicID' in params ? params.TopicID : null;
        this.TopicName = 'TopicName' in params ? params.TopicName : null;

    }
}

/**
 * CreateVulExportJob response structure.
 * @class
 */
class CreateVulExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeUnfinishRefreshTask response structure.
 * @class
 */
class DescribeUnfinishRefreshTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the last task
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Task status. Valid values: `Task_New`, `Task_Running`, `Task_Finish`, `Task_Error`, `Task_NoExist`. `Task_New` and `Task_Running` indicate that a task exists and no new task can be distributed.
         * @type {string || null}
         */
        this.TaskStatus = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.TaskStatus = 'TaskStatus' in params ? params.TaskStatus : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateComponentExportJob request structure.
 * @class
 */
class CreateComponentExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Number of results to be returned. Default value: `10000`. Maximum value: `10000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>ComponentName- String - Required: No - Image component name</li><li>ComponentVersion- String - Required: No - Image component version</li><li>ComponentType- String - Required: No - Image component type</li><li>VulLevel- String - Required: No - Vulnerability severity</li><li>HasVul- String - Required: No - Whether there is a vulnerability. Valid values: `true` (yes); `false` (no). If `ComponentName` is not passed in or is `ALL`, it indicates all.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `desc`, `asc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * Whether to enable the compliance standard
 * @class
 */
class ComplianceBenchmarkStandardEnable extends  AbstractModel {
    constructor(){
        super();

        /**
         * Compliance standard ID
         * @type {number || null}
         */
        this.StandardId = null;

        /**
         * Whether to enable the compliance standard
         * @type {boolean || null}
         */
        this.Enable = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StandardId = 'StandardId' in params ? params.StandardId : null;
        this.Enable = 'Enable' in params ? params.Enable : null;

    }
}

/**
 * CreateNetworkFirewallUndoPublish request structure.
 * @class
 */
class CreateNetworkFirewallUndoPublishRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Array of cluster IDs
         * @type {Array.<number> || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * CreateRefreshTask response structure.
 * @class
 */
class CreateRefreshTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created cluster check task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the check task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.CreateResult = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.CreateResult = 'CreateResult' in params ? params.CreateResult : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateVulDefenceHostExportJob response structure.
 * @class
 */
class CreateVulDefenceHostExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of a vulnerability in the image
 * @class
 */
class ImageVul extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * POC ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.POCID = null;

        /**
         * Vulnerability name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Component information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ComponentsInfo> || null}
         */
        this.Components = null;

        /**
         * Category
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Category = null;

        /**
         * Category 2
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CategoryType = null;

        /**
         * Risk level
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Level = null;

        /**
         * Description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Des = null;

        /**
         * Solution
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.OfficialSolution = null;

        /**
         * Reference
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Reference = null;

        /**
         * Defense solution
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DefenseSolution = null;

        /**
         * Submission time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.SubmitTime = null;

        /**
         * CVSS score
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CvssScore = null;

        /**
         * CVSS information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CvssVector = null;

        /**
         * Whether fix is suggested
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IsSuggest = null;

        /**
         * Number of the fixed version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FixedVersions = null;

        /**
         * Vulnerability tag. Valid values: `CanBeFixed`, `DynamicLevelPoc`, `DynamicLevelExp`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tag = null;

        /**
         * Component name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Component = null;

        /**
         * Component version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Version = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.POCID = 'POCID' in params ? params.POCID : null;
        this.Name = 'Name' in params ? params.Name : null;

        if (params.Components) {
            this.Components = new Array();
            for (let z in params.Components) {
                let obj = new ComponentsInfo();
                obj.deserialize(params.Components[z]);
                this.Components.push(obj);
            }
        }
        this.Category = 'Category' in params ? params.Category : null;
        this.CategoryType = 'CategoryType' in params ? params.CategoryType : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.Des = 'Des' in params ? params.Des : null;
        this.OfficialSolution = 'OfficialSolution' in params ? params.OfficialSolution : null;
        this.Reference = 'Reference' in params ? params.Reference : null;
        this.DefenseSolution = 'DefenseSolution' in params ? params.DefenseSolution : null;
        this.SubmitTime = 'SubmitTime' in params ? params.SubmitTime : null;
        this.CvssScore = 'CvssScore' in params ? params.CvssScore : null;
        this.CvssVector = 'CvssVector' in params ? params.CvssVector : null;
        this.IsSuggest = 'IsSuggest' in params ? params.IsSuggest : null;
        this.FixedVersions = 'FixedVersions' in params ? params.FixedVersions : null;
        this.Tag = 'Tag' in params ? params.Tag : null;
        this.Component = 'Component' in params ? params.Component : null;
        this.Version = 'Version' in params ? params.Version : null;

    }
}

/**
 * CreateVulImageExportJob response structure.
 * @class
 */
class CreateVulImageExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Description of the abnormal container process event at runtime
 * @class
 */
class AbnormalProcessEventDescription extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event rule
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event remarks
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Details of the hit rule
         * @type {AbnormalProcessChildRuleInfo || null}
         */
        this.MatchRule = null;

        /**
         * Name of the hit rule. Valid values: `PROXY_TOOL` (proxy); `TRANSFER_CONTROL` (lateral movement); `ATTACK_CMD` (malicious command); `REVERSE_SHELL` (reverse shell); `FILELESS` (fileless execution); `RISK_CMD` (high-risk command); `ABNORMAL_CHILD_PROC` (unusual start found in the child process of the sensitive service); `USER_DEFINED_RULE` (custom rule).
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * ID of the hit rule
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Last processing time of the event
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.OperationTime = null;

        /**
         * Name of the hit policy. Valid values: `SYSTEM_DEFINED_RULE` (preset policy); name of the custom policy.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.GroupName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Description = 'Description' in params ? params.Description : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

        if (params.MatchRule) {
            let obj = new AbnormalProcessChildRuleInfo();
            obj.deserialize(params.MatchRule)
            this.MatchRule = obj;
        }
        this.RuleName = 'RuleName' in params ? params.RuleName : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.OperationTime = 'OperationTime' in params ? params.OperationTime : null;
        this.GroupName = 'GroupName' in params ? params.GroupName : null;

    }
}

/**
 * Cycle of a scheduled task
 * @class
 */
class CompliancePeriodTaskRule extends  AbstractModel {
    constructor(){
        super();

        /**
         * Execution frequency (days). Valid values: `1`, `3`, `7`.
         * @type {number || null}
         */
        this.Frequency = null;

        /**
         * Execution time in the format of "HH:mm:SS"
         * @type {string || null}
         */
        this.ExecutionTime = null;

        /**
         * Whether to enable
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.Enable = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Frequency = 'Frequency' in params ? params.Frequency : null;
        this.ExecutionTime = 'ExecutionTime' in params ? params.ExecutionTime : null;
        this.Enable = 'Enable' in params ? params.Enable : null;

    }
}

/**
 * DescribeVirusScanTimeoutSetting response structure.
 * @class
 */
class DescribeVirusScanTimeoutSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Timeout period in hours
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Timeout = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Timeout = 'Timeout' in params ? params.Timeout : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulImageList response structure.
 * @class
 */
class DescribeVulImageListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of affected images
         * @type {Array.<VulAffectedImageInfo> || null}
         */
        this.List = null;

        /**
         * Total number of images
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulAffectedImageInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateVulExportJob request structure.
 * @class
 */
class CreateVulExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10000`. Maximum value: `10000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>ComponentName- String - Required: No - Image component name</li><li>ComponentVersion- String - Required: No - Image component version</li><li>ComponentType- String - Required: No - Image component type</li><li>VulLevel- String - Required: No - Vulnerability severity</li><li>HasVul- String - Required: No - Whether there is a vulnerability. Valid values: `true` (yes); `false` (no). If `ComponentName` is not passed in or is `ALL`, it indicates all.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `desc`, `asc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeNetworkFirewallNamespaceLabelList response structure.
 * @class
 */
class DescribeNetworkFirewallNamespaceLabelListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of clusters
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Cluster namespace label details
         * @type {Array.<NetworkClusterNamespaceLabelInfo> || null}
         */
        this.ClusterNamespaceLabelList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.ClusterNamespaceLabelList) {
            this.ClusterNamespaceLabelList = new Array();
            for (let z in params.ClusterNamespaceLabelList) {
                let obj = new NetworkClusterNamespaceLabelInfo();
                obj.deserialize(params.ClusterNamespaceLabelList[z]);
                this.ClusterNamespaceLabelList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Input parameters for `CreateCheckComponent`, which are used to batch install defenders.
 * @class
 */
class ClusterCreateComponentItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the cluster for which to install the component
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Cluster region
         * @type {string || null}
         */
        this.ClusterRegion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.ClusterRegion = 'ClusterRegion' in params ? params.ClusterRegion : null;

    }
}

/**
 * DescribeAssetComponentList response structure.
 * @class
 */
class DescribeAssetComponentListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of components
         * @type {Array.<ComponentInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ComponentInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulImageList request structure.
 * @class
 */
class DescribeVulImageListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>OnlyAffectedNewestImage- Bool- Required: No - Show only vulnerabilities that affect the latest image tags</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>HostIP- string - Required: No - Private IP</li>
<li>PublicIP- string - Required: No - Public IP</li>
<li>ComponentName- string - Required: No - Component name</li>
<li>ComponentVersion- string - Required: No - Component version</li>
<li>HostName- string - Required: No - Server name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeAssetImageRegistryVulList response structure.
 * @class
 */
class DescribeAssetImageRegistryVulListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of image vulnerabilities
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ImageVul> || null}
         */
        this.List = null;

        /**
         * Total number
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageVul();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of the scanned image
 * @class
 */
class VulScanImageInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.Size = null;

        /**
         * Task status. Valid values: `SCANNING` (scanning); `FAILED` (failed); `FINISHED` (completed); `CANCELED` (canceled).
         * @type {string || null}
         */
        this.ScanStatus = null;

        /**
         * Scan duration
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanDuration = null;

        /**
         * Number of high-risk vulnerabilities
         * @type {number || null}
         */
        this.HighLevelVulCount = null;

        /**
         * Number of medium-risk vulnerabilities
         * @type {number || null}
         */
        this.MediumLevelVulCount = null;

        /**
         * Number of low-risk vulnerabilities
         * @type {number || null}
         */
        this.LowLevelVulCount = null;

        /**
         * Number of critical vulnerabilities
         * @type {number || null}
         */
        this.CriticalLevelVulCount = null;

        /**
         * ID of the task to scan local images for vulnerabilities
         * @type {number || null}
         */
        this.TaskID = null;

        /**
         * Start time of the vulnerability scan
         * @type {string || null}
         */
        this.ScanStartTime = null;

        /**
         * End time of the vulnerability scan
         * @type {string || null}
         */
        this.ScanEndTime = null;

        /**
         * Cause of the failure. Valid values: `TIMEOUT` (timeout); `TOO_MANY` (too many tasks); `OFFLINE` (offline).
         * @type {string || null}
         */
        this.ErrorStatus = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.Size = 'Size' in params ? params.Size : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;
        this.ScanDuration = 'ScanDuration' in params ? params.ScanDuration : null;
        this.HighLevelVulCount = 'HighLevelVulCount' in params ? params.HighLevelVulCount : null;
        this.MediumLevelVulCount = 'MediumLevelVulCount' in params ? params.MediumLevelVulCount : null;
        this.LowLevelVulCount = 'LowLevelVulCount' in params ? params.LowLevelVulCount : null;
        this.CriticalLevelVulCount = 'CriticalLevelVulCount' in params ? params.CriticalLevelVulCount : null;
        this.TaskID = 'TaskID' in params ? params.TaskID : null;
        this.ScanStartTime = 'ScanStartTime' in params ? params.ScanStartTime : null;
        this.ScanEndTime = 'ScanEndTime' in params ? params.ScanEndTime : null;
        this.ErrorStatus = 'ErrorStatus' in params ? params.ErrorStatus : null;

    }
}

/**
 * AddAssetImageRegistryRegistryDetail response structure.
 * @class
 */
class AddAssetImageRegistryRegistryDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Connection error message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HealthCheckErr = null;

        /**
         * Name error message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.NameRepeatErr = null;

        /**
         * Unique repository ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RegistryId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HealthCheckErr = 'HealthCheckErr' in params ? params.HealthCheckErr : null;
        this.NameRepeatErr = 'NameRepeatErr' in params ? params.NameRepeatErr : null;
        this.RegistryId = 'RegistryId' in params ? params.RegistryId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteCompliancePolicyItemFromWhitelist request structure.
 * @class
 */
class DeleteCompliancePolicyItemFromWhitelistRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of IDs of specified allowed items
         * @type {Array.<number> || null}
         */
        this.WhitelistIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.WhitelistIdSet = 'WhitelistIdSet' in params ? params.WhitelistIdSet : null;

    }
}

/**
 * DescribeAssetImageDetail request structure.
 * @class
 */
class DescribeAssetImageDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;

    }
}

/**
 * Local images ignored by the vulnerability scan
 * @class
 */
class VulIgnoreLocalImage extends  AbstractModel {
    constructor(){
        super();

        /**
         * Record ID
         * @type {number || null}
         */
        this.ID = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.ImageSize = null;

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ID = 'ID' in params ? params.ID : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageSize = 'ImageSize' in params ? params.ImageSize : null;
        this.PocID = 'PocID' in params ? params.PocID : null;

    }
}

/**
 * ModifyK8sApiAbnormalRuleInfo response structure.
 * @class
 */
class ModifyK8sApiAbnormalRuleInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAssetImageScanStop response structure.
 * @class
 */
class ModifyAssetImageScanStopResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Paused
         * @type {string || null}
         */
        this.Status = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Status = 'Status' in params ? params.Status : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddAssetImageRegistryRegistryDetail request structure.
 * @class
 */
class AddAssetImageRegistryRegistryDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Repository name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Username
         * @type {string || null}
         */
        this.Username = null;

        /**
         * Password
         * @type {string || null}
         */
        this.Password = null;

        /**
         * Repository URL
         * @type {string || null}
         */
        this.Url = null;

        /**
         * Repository type, which can be `harbor`.
         * @type {string || null}
         */
        this.RegistryType = null;

        /**
         * Network type, which can be `public` (public network).
         * @type {string || null}
         */
        this.NetType = null;

        /**
         * Repository version
         * @type {string || null}
         */
        this.RegistryVersion = null;

        /**
         * Region. Default value: `default`.
         * @type {string || null}
         */
        this.RegistryRegion = null;

        /**
         * Speed limit
         * @type {number || null}
         */
        this.SpeedLimit = null;

        /**
         * Valid values: `0` (secure mode with certificate verification, which is the default value); `1` (unsecure mode that skips certificate verification).
         * @type {number || null}
         */
        this.Insecure = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Username = 'Username' in params ? params.Username : null;
        this.Password = 'Password' in params ? params.Password : null;
        this.Url = 'Url' in params ? params.Url : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.NetType = 'NetType' in params ? params.NetType : null;
        this.RegistryVersion = 'RegistryVersion' in params ? params.RegistryVersion : null;
        this.RegistryRegion = 'RegistryRegion' in params ? params.RegistryRegion : null;
        this.SpeedLimit = 'SpeedLimit' in params ? params.SpeedLimit : null;
        this.Insecure = 'Insecure' in params ? params.Insecure : null;

    }
}

/**
 * AddIgnoreVul response structure.
 * @class
 */
class AddIgnoreVulResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Trend of exploit prevention events
 * @class
 */
class VulDefenceEventTendency extends  AbstractModel {
    constructor(){
        super();

        /**
         * Date
         * @type {string || null}
         */
        this.Date = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Date = 'Date' in params ? params.Date : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;

    }
}

/**
 * DescribeNetworkFirewallClusterRefreshStatus request structure.
 * @class
 */
class DescribeNetworkFirewallClusterRefreshStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {number || null}
         */
        this.TaskId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;

    }
}

/**
 * DescribeAssetImageRegistryVirusListExport response structure.
 * @class
 */
class DescribeAssetImageRegistryVirusListExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel file download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecEventsTendency response structure.
 * @class
 */
class DescribeSecEventsTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of trends of security events at runtime
         * @type {Array.<SecTendencyEventInfo> || null}
         */
        this.EventTendencySet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventTendencySet) {
            this.EventTendencySet = new Array();
            for (let z in params.EventTendencySet) {
                let obj = new SecTendencyEventInfo();
                obj.deserialize(params.EventTendencySet[z]);
                this.EventTendencySet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAccessControlEventsExport response structure.
 * @class
 */
class DescribeAccessControlEventsExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * Task ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeImageRiskSummary response structure.
 * @class
 */
class DescribeImageRiskSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability
         * @type {Array.<RunTimeRiskInfo> || null}
         */
        this.VulnerabilityCnt = null;

        /**
         * Virus and trojan
         * @type {Array.<RunTimeRiskInfo> || null}
         */
        this.MalwareVirusCnt = null;

        /**
         * Sensitive data
         * @type {Array.<RunTimeRiskInfo> || null}
         */
        this.RiskCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.VulnerabilityCnt) {
            this.VulnerabilityCnt = new Array();
            for (let z in params.VulnerabilityCnt) {
                let obj = new RunTimeRiskInfo();
                obj.deserialize(params.VulnerabilityCnt[z]);
                this.VulnerabilityCnt.push(obj);
            }
        }

        if (params.MalwareVirusCnt) {
            this.MalwareVirusCnt = new Array();
            for (let z in params.MalwareVirusCnt) {
                let obj = new RunTimeRiskInfo();
                obj.deserialize(params.MalwareVirusCnt[z]);
                this.MalwareVirusCnt.push(obj);
            }
        }

        if (params.RiskCnt) {
            this.RiskCnt = new Array();
            for (let z in params.RiskCnt) {
                let obj = new RunTimeRiskInfo();
                obj.deserialize(params.RiskCnt[z]);
                this.RiskCnt.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNetworkFirewallPolicyDetail request structure.
 * @class
 */
class DescribeNetworkFirewallPolicyDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Policy ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * CreateAccessControlsRuleExportJob response structure.
 * @class
 */
class CreateAccessControlsRuleExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the exportation task. You can query the task progress by using this ID in the console.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAssetImageRegistryScanStop response structure.
 * @class
 */
class ModifyAssetImageRegistryScanStopResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryRiskListExport request structure.
 * @class
 */
class DescribeAssetImageRegistryRiskListExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Vulnerability level</li>
<li>Name - String - Required: No - Vulnerability name</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Image information
         * @type {ImageInfo || null}
         */
        this.ImageInfo = null;

        /**
         * Image ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

        if (params.ImageInfo) {
            let obj = new ImageInfo();
            obj.deserialize(params.ImageInfo)
            this.ImageInfo = obj;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * SetCheckMode response structure.
 * @class
 */
class SetCheckModeResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Valid values: `Succ` (set successfully); `Failed` (failed to set).
         * @type {string || null}
         */
        this.SetCheckResult = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.SetCheckResult = 'SetCheckResult' in params ? params.SetCheckResult : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Details of the accessed security log object
 * @class
 */
class SecLogJoinObjectInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Server name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Server IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Server status
         * @type {string || null}
         */
        this.HostStatus = null;

        /**
         * Cluster ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Public IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Access status. Valid values: `true` (accessed); `false` (not accessed).
         * @type {boolean || null}
         */
        this.JoinState = null;

        /**
         * Cluster version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ClusterVersion = null;

        /**
         * Master node address of the cluster
         * @type {string || null}
         */
        this.ClusterMainAddress = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.HostStatus = 'HostStatus' in params ? params.HostStatus : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.JoinState = 'JoinState' in params ? params.JoinState : null;
        this.ClusterVersion = 'ClusterVersion' in params ? params.ClusterVersion : null;
        this.ClusterMainAddress = 'ClusterMainAddress' in params ? params.ClusterMainAddress : null;

    }
}

/**
 * DescribeVulImageSummary request structure.
 * @class
 */
class DescribeVulImageSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAssetImageScanStatus response structure.
 * @class
 */
class DescribeAssetImageScanStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageTotal = null;

        /**
         * Number of scanned images
         * @type {number || null}
         */
        this.ImageScanCnt = null;

        /**
         * Scanning status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Scanning progress, the value of which is calculated as `ImageScanCnt`/`ImageTotal` * 100.
         * @type {number || null}
         */
        this.Schedule = null;

        /**
         * Number of successfully scanned images
         * @type {number || null}
         */
        this.SuccessCount = null;

        /**
         * Number of risks
         * @type {number || null}
         */
        this.RiskCount = null;

        /**
         * Remaining scan time
         * @type {number || null}
         */
        this.LeftSeconds = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageTotal = 'ImageTotal' in params ? params.ImageTotal : null;
        this.ImageScanCnt = 'ImageScanCnt' in params ? params.ImageScanCnt : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Schedule = 'Schedule' in params ? params.Schedule : null;
        this.SuccessCount = 'SuccessCount' in params ? params.SuccessCount : null;
        this.RiskCount = 'RiskCount' in params ? params.RiskCount : null;
        this.LeftSeconds = 'LeftSeconds' in params ? params.LeftSeconds : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVirusAutoIsolateSampleDetail response structure.
 * @class
 */
class DescribeVirusAutoIsolateSampleDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * MD5 checksum of the file
         * @type {string || null}
         */
        this.MD5 = null;

        /**
         * File size (B)
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Size = null;

        /**
         * Virus name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VirusName = null;

        /**
         * Risk level. Valid values: `RISK_CRITICAL`, `RISK_HIGH`, `RISK_MEDIUM`, `RISK_LOW`, `RISK_NOTICE`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Anti-virus engine
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.KillEngine = null;

        /**
         * Tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * Event description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HarmDescribe = null;

        /**
         * Solution
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.SuggestScheme = null;

        /**
         * Reference link
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ReferenceLink = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MD5 = 'MD5' in params ? params.MD5 : null;
        this.Size = 'Size' in params ? params.Size : null;
        this.VirusName = 'VirusName' in params ? params.VirusName : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.KillEngine = 'KillEngine' in params ? params.KillEngine : null;
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.HarmDescribe = 'HarmDescribe' in params ? params.HarmDescribe : null;
        this.SuggestScheme = 'SuggestScheme' in params ? params.SuggestScheme : null;
        this.ReferenceLink = 'ReferenceLink' in params ? params.ReferenceLink : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulDefenceEventTendency request structure.
 * @class
 */
class DescribeVulDefenceEventTendencyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * End time
         * @type {string || null}
         */
        this.EndTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;

    }
}

/**
 * DescribeAbnormalProcessRulesExport request structure.
 * @class
 */
class DescribeAbnormalProcessRulesExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribePurchaseStateInfo response structure.
 * @class
 */
class DescribePurchaseStateInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Valid values: `0` (available for trial and purchase); `1` (available for purchase only after failed trial review or trial expiration); `2` (trial effective); `3` (Pro Edition effective); `4` (Pro Edition expired).
         * @type {number || null}
         */
        this.State = null;

        /**
         * Total number of cores
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CoresCnt = null;

        /**
         * Number of purchased cores
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AuthorizedCoresCnt = null;

        /**
         * Number of images
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ImageCnt = null;

        /**
         * Number of licensed images
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AuthorizedImageCnt = null;

        /**
         * Number of purchased image licenses
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.PurchasedAuthorizedCnt = null;

        /**
         * Expiration time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ExpirationTime = null;

        /**
         * Valid values: `0` (initial status, which is the default value and not set by the user); `1` (auto-renewal); `2` (no auto-renewal, which is specified by the user).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AutomaticRenewal = null;

        /**
         * Number of free image licenses during the trial, which may expire.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.GivenAuthorizedCnt = null;

        /**
         * Start time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.BeginTime = null;

        /**
         * Sub-status, the meaning of which is subject to the `State` field.
Valid values when `State` is `4`: `ISOLATE` (isolated); `DESTROED` (terminated).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.SubState = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.State = 'State' in params ? params.State : null;
        this.CoresCnt = 'CoresCnt' in params ? params.CoresCnt : null;
        this.AuthorizedCoresCnt = 'AuthorizedCoresCnt' in params ? params.AuthorizedCoresCnt : null;
        this.ImageCnt = 'ImageCnt' in params ? params.ImageCnt : null;
        this.AuthorizedImageCnt = 'AuthorizedImageCnt' in params ? params.AuthorizedImageCnt : null;
        this.PurchasedAuthorizedCnt = 'PurchasedAuthorizedCnt' in params ? params.PurchasedAuthorizedCnt : null;
        this.ExpirationTime = 'ExpirationTime' in params ? params.ExpirationTime : null;
        this.AutomaticRenewal = 'AutomaticRenewal' in params ? params.AutomaticRenewal : null;
        this.GivenAuthorizedCnt = 'GivenAuthorizedCnt' in params ? params.GivenAuthorizedCnt : null;
        this.BeginTime = 'BeginTime' in params ? params.BeginTime : null;
        this.SubState = 'SubState' in params ? params.SubState : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Pay-as-you-go billing details
 * @class
 */
class SoftQuotaDayInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Deduction time
         * @type {string || null}
         */
        this.PayTime = null;

        /**
         * Number of billed cores
         * @type {number || null}
         */
        this.CoresCnt = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PayTime = 'PayTime' in params ? params.PayTime : null;
        this.CoresCnt = 'CoresCnt' in params ? params.CoresCnt : null;

    }
}

/**
 * DescribeVulDefencePlugin response structure.
 * @class
 */
class DescribeVulDefencePluginResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of exploit prevention plugins
         * @type {Array.<VulDefencePlugin> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulDefencePlugin();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryRegistryDetail response structure.
 * @class
 */
class DescribeAssetImageRegistryRegistryDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Repository name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Username
         * @type {string || null}
         */
        this.Username = null;

        /**
         * Password
         * @type {string || null}
         */
        this.Password = null;

        /**
         * Repository URL
         * @type {string || null}
         */
        this.Url = null;

        /**
         * Repository type, which can be `harbor`.
         * @type {string || null}
         */
        this.RegistryType = null;

        /**
         * Repository version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RegistryVersion = null;

        /**
         * Network type, which can be `public` (public network).
         * @type {string || null}
         */
        this.NetType = null;

        /**
         * Region. Default value: `default`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RegistryRegion = null;

        /**
         * Speed limit
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.SpeedLimit = null;

        /**
         * Valid values: `0` (secure mode with certificate verification, which is the default value); `1` (unsecure mode that skips certificate verification).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Insecure = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Username = 'Username' in params ? params.Username : null;
        this.Password = 'Password' in params ? params.Password : null;
        this.Url = 'Url' in params ? params.Url : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.RegistryVersion = 'RegistryVersion' in params ? params.RegistryVersion : null;
        this.NetType = 'NetType' in params ? params.NetType : null;
        this.RegistryRegion = 'RegistryRegion' in params ? params.RegistryRegion : null;
        this.SpeedLimit = 'SpeedLimit' in params ? params.SpeedLimit : null;
        this.Insecure = 'Insecure' in params ? params.Insecure : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * TCSS
Key-value pair filter for conditional filtering queries, such as filter ID, name, and status
If more than one filter exists, the logical relationship between these filters is `AND`.
If multiple values exist in one filter, the logical relationship between these values is `OR`.
 * @class
 */
class RunTimeFilters extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * One or more filter values
         * @type {Array.<string> || null}
         */
        this.Values = null;

        /**
         * Whether to use fuzzy query
         * @type {boolean || null}
         */
        this.ExactMatch = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Values = 'Values' in params ? params.Values : null;
        this.ExactMatch = 'ExactMatch' in params ? params.ExactMatch : null;

    }
}

/**
 * DescribeVirusDetail request structure.
 * @class
 */
class DescribeVirusDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trojan file ID
         * @type {string || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * DeleteEscapeWhiteList request structure.
 * @class
 */
class DeleteEscapeWhiteListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Array of allowed item IDs
         * @type {Array.<number> || null}
         */
        this.IDSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IDSet = 'IDSet' in params ? params.IDSet : null;

    }
}

/**
 * DescribeClusterDetail request structure.
 * @class
 */
class DescribeClusterDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;

    }
}

/**
 * ModifyK8sApiAbnormalRuleInfo request structure.
 * @class
 */
class ModifyK8sApiAbnormalRuleInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule details
         * @type {K8sApiAbnormalRuleInfo || null}
         */
        this.RuleInfo = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.RuleInfo) {
            let obj = new K8sApiAbnormalRuleInfo();
            obj.deserialize(params.RuleInfo)
            this.RuleInfo = obj;
        }

    }
}

/**
 * UpdateAndPublishNetworkFirewallPolicyDetail response structure.
 * @class
 */
class UpdateAndPublishNetworkFirewallPolicyDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageList request structure.
 * @class
 */
class DescribeAssetImageListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>ImageName- String - Required: No - Image name</li>
<li>ScanStatus - String - Required: No - Image scanning status. Valid values: `notScan`, `scanning`, `scanned`, `scanErr`.</li>
<li>ImageID- String - Required: No - Image ID</li>
<li>SecurityRisk- String - Required: No - Security risks. Valid values: `VulCnt`, `VirusCnt`, `RiskCnt`, `IsTrustImage`.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeSecLogDeliveryClsOptions request structure.
 * @class
 */
class DescribeSecLogDeliveryClsOptionsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Region
         * @type {string || null}
         */
        this.ClsRegion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClsRegion = 'ClsRegion' in params ? params.ClsRegion : null;

    }
}

/**
 * DescribeRiskSyscallWhiteListDetail request structure.
 * @class
 */
class DescribeRiskSyscallWhiteListDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Allowed item ID
         * @type {string || null}
         */
        this.WhiteListId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.WhiteListId = 'WhiteListId' in params ? params.WhiteListId : null;

    }
}

/**
 * DescribeK8sApiAbnormalRuleScopeList response structure.
 * @class
 */
class DescribeK8sApiAbnormalRuleScopeListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total count
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List
         * @type {Array.<K8sApiAbnormalRuleScopeInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new K8sApiAbnormalRuleScopeInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAbnormalProcessRuleStatus request structure.
 * @class
 */
class ModifyAbnormalProcessRuleStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Policy IDs
         * @type {Array.<string> || null}
         */
        this.RuleIdSet = null;

        /**
         * Policy switch. Valid values: `true` (on); `false` (off).
         * @type {boolean || null}
         */
        this.IsEnable = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleIdSet = 'RuleIdSet' in params ? params.RuleIdSet : null;
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;

    }
}

/**
 * DescribeVulTendency response structure.
 * @class
 */
class DescribeVulTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of vulnerability trends
         * @type {Array.<VulTendencyInfo> || null}
         */
        this.VulTendencySet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.VulTendencySet) {
            this.VulTendencySet = new Array();
            for (let z in params.VulTendencySet) {
                let obj = new VulTendencyInfo();
                obj.deserialize(params.VulTendencySet[z]);
                this.VulTendencySet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Runtime security details - Process information
 * @class
 */
class ProcessDetailInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Process name
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Process permission
         * @type {string || null}
         */
        this.ProcessAuthority = null;

        /**
         * Process PID
         * @type {number || null}
         */
        this.ProcessId = null;

        /**
         * Process initiator
         * @type {string || null}
         */
        this.ProcessStartUser = null;

        /**
         * Process user group
         * @type {string || null}
         */
        this.ProcessUserGroup = null;

        /**
         * Process path
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Process tree
         * @type {string || null}
         */
        this.ProcessTree = null;

        /**
         * Process MD5
         * @type {string || null}
         */
        this.ProcessMd5 = null;

        /**
         * Process command line parameter
         * @type {string || null}
         */
        this.ProcessParam = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.ProcessAuthority = 'ProcessAuthority' in params ? params.ProcessAuthority : null;
        this.ProcessId = 'ProcessId' in params ? params.ProcessId : null;
        this.ProcessStartUser = 'ProcessStartUser' in params ? params.ProcessStartUser : null;
        this.ProcessUserGroup = 'ProcessUserGroup' in params ? params.ProcessUserGroup : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.ProcessTree = 'ProcessTree' in params ? params.ProcessTree : null;
        this.ProcessMd5 = 'ProcessMd5' in params ? params.ProcessMd5 : null;
        this.ProcessParam = 'ProcessParam' in params ? params.ProcessParam : null;

    }
}

/**
 * DescribeAutoAuthorizedRuleHost request structure.
 * @class
 */
class DescribeAutoAuthorizedRuleHostRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule ID
         * @type {number || null}
         */
        this.RuleId = null;

        /**
         * Number of results to be returned. Default value: `all`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * ScanCompliancePolicyItems request structure.
 * @class
 */
class ScanCompliancePolicyItemsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of customer check items to be scanned again
         * @type {Array.<number> || null}
         */
        this.CustomerPolicyItemIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemIdSet = 'CustomerPolicyItemIdSet' in params ? params.CustomerPolicyItemIdSet : null;

    }
}

/**
 * DescribeAgentDaemonSetCmd response structure.
 * @class
 */
class DescribeAgentDaemonSetCmdResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Installation command
         * @type {string || null}
         */
        this.Command = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Command = 'Command' in params ? params.Command : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageVirusListExport request structure.
 * @class
 */
class DescribeAssetImageVirusListExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Fields supported in the list
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Filter
<li>Name- String - Required: No - Image name</li>
<li>RiskLevel - String - Required: No - Risk level. Valid values: `1`, `2`, `3`, `4`.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * CreateAssetImageScanTask response structure.
 * @class
 */
class CreateAssetImageScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeTaskResultSummary request structure.
 * @class
 */
class DescribeTaskResultSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DeleteAccessControlRules request structure.
 * @class
 */
class DeleteAccessControlRulesRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Policy IDs
         * @type {Array.<string> || null}
         */
        this.RuleIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleIdSet = 'RuleIdSet' in params ? params.RuleIdSet : null;

    }
}

/**
 * DeleteRiskSyscallEvents response structure.
 * @class
 */
class DeleteRiskSyscallEventsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * OpenTcssTrial response structure.
 * @class
 */
class OpenTcssTrialResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * End time of the trial
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Start time of the trial
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EndTime = 'EndTime' in params ? params.EndTime : null;
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSearchExportList response structure.
 * @class
 */
class DescribeSearchExportListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateVulScanTask request structure.
 * @class
 */
class CreateVulScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Local image scan scope. Valid values: `ALL` (all local images); `NOT_SCAN` (all licensed but not scanned local images); `IMAGEIDS` (IDs of specified local images).
         * @type {string || null}
         */
        this.LocalImageScanType = null;

        /**
         * Scan by licensed local image ID, with a higher priority than scan by licensed local image that meets the condition.
         * @type {Array.<string> || null}
         */
        this.LocalImageIDs = null;

        /**
         * Repository image scan scope. Valid values: `ALL` (all repository images); `NOT_SCAN` (all licensed but not scanned repository images); `IMAGEIDS` (IDs of specified repository images).
         * @type {string || null}
         */
        this.RegistryImageScanType = null;

        /**
         * Scan by licensed repository image ID, with a higher priority than scan by licensed repository image that meets the condition.
         * @type {Array.<number> || null}
         */
        this.RegistryImageIDs = null;

        /**
         * ID of the task to scan local images again for vulnerabilities
         * @type {number || null}
         */
        this.LocalTaskID = null;

        /**
         * ID of the task to scan repository images again for vulnerabilities
         * @type {number || null}
         */
        this.RegistryTaskID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LocalImageScanType = 'LocalImageScanType' in params ? params.LocalImageScanType : null;
        this.LocalImageIDs = 'LocalImageIDs' in params ? params.LocalImageIDs : null;
        this.RegistryImageScanType = 'RegistryImageScanType' in params ? params.RegistryImageScanType : null;
        this.RegistryImageIDs = 'RegistryImageIDs' in params ? params.RegistryImageIDs : null;
        this.LocalTaskID = 'LocalTaskID' in params ? params.LocalTaskID : null;
        this.RegistryTaskID = 'RegistryTaskID' in params ? params.RegistryTaskID : null;

    }
}

/**
 * K8s asset details
 * @class
 */
class ComplianceK8SDetailInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * K8s cluster name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * K8s cluster version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ClusterVersion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.ClusterVersion = 'ClusterVersion' in params ? params.ClusterVersion : null;

    }
}

/**
 * Description of the container access control event at runtime
 * @class
 */
class AccessControlEventDescription extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event rule
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event remarks
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Details of the hit rule
         * @type {AccessControlChildRuleInfo || null}
         */
        this.MatchRule = null;

        /**
         * Name of the hit rule
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * ID of the hit rule
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Last processing time of the event
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.OperationTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Description = 'Description' in params ? params.Description : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

        if (params.MatchRule) {
            let obj = new AccessControlChildRuleInfo();
            obj.deserialize(params.MatchRule)
            this.MatchRule = obj;
        }
        this.RuleName = 'RuleName' in params ? params.RuleName : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.OperationTime = 'OperationTime' in params ? params.OperationTime : null;

    }
}

/**
 * DescribeAccessControlEvents response structure.
 * @class
 */
class DescribeAccessControlEventsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Array of access control events
         * @type {Array.<AccessControlEventInfo> || null}
         */
        this.EventSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.EventSet) {
            this.EventSet = new Array();
            for (let z in params.EventSet) {
                let obj = new AccessControlEventInfo();
                obj.deserialize(params.EventSet[z]);
                this.EventSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Settings of security log delivery to Kafka
 * @class
 */
class SecLogDeliveryKafkaSettingInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Log type
         * @type {string || null}
         */
        this.LogType = null;

        /**
         * Topic ID
         * @type {string || null}
         */
        this.TopicID = null;

        /**
         * Topic name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TopicName = null;

        /**
         * Delivery status. Valid values: `false` (disabled); `true` (enabled).
         * @type {boolean || null}
         */
        this.State = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LogType = 'LogType' in params ? params.LogType : null;
        this.TopicID = 'TopicID' in params ? params.TopicID : null;
        this.TopicName = 'TopicName' in params ? params.TopicName : null;
        this.State = 'State' in params ? params.State : null;

    }
}

/**
 * DescribeRiskSyscallWhiteLists response structure.
 * @class
 */
class DescribeRiskSyscallWhiteListsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Allowlist
         * @type {Array.<RiskSyscallWhiteListBaseInfo> || null}
         */
        this.WhiteListSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.WhiteListSet) {
            this.WhiteListSet = new Array();
            for (let z in params.WhiteListSet) {
                let obj = new RiskSyscallWhiteListBaseInfo();
                obj.deserialize(params.WhiteListSet[z]);
                this.WhiteListSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateNetworkFirewallPolicyDiscover response structure.
 * @class
 */
class CreateNetworkFirewallPolicyDiscoverResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created cluster check task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the check task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Asset details
 * @class
 */
class ComplianceAssetDetailInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Customer asset ID
         * @type {number || null}
         */
        this.CustomerAssetId = null;

        /**
         * Asset type
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Asset name
         * @type {string || null}
         */
        this.AssetName = null;

        /**
         * Node name of the asset
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Server name of the asset
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Server IP of the asset
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Check status
`CHECK_INIT`: To be checked.
`CHECK_RUNNING`: Checking.
`CHECK_FINISHED`: Checked.
`CHECK_FAILED`: Check failed.
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Number of check items that the asset passed
         * @type {number || null}
         */
        this.PassedPolicyItemCount = null;

        /**
         * Number of check items that the asset failed
         * @type {number || null}
         */
        this.FailedPolicyItemCount = null;

        /**
         * Last check time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LastCheckTime = null;

        /**
         * Check result. Valid values:
`RESULT_FAILED`: Failed.
`RESULT_PASSED`: Passed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CheckResult = null;

        /**
         * Asset status
         * @type {string || null}
         */
        this.AssetStatus = null;

        /**
         * Asset creation time
`ASSET_NORMAL`: Running.
`ASSET_PAUSED`: Suspended.
`ASSET_STOPPED`: Stopped.
`ASSET_ABNORMAL`: Abnormal.
         * @type {string || null}
         */
        this.AssetCreateTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetId = 'CustomerAssetId' in params ? params.CustomerAssetId : null;
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.AssetName = 'AssetName' in params ? params.AssetName : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.PassedPolicyItemCount = 'PassedPolicyItemCount' in params ? params.PassedPolicyItemCount : null;
        this.FailedPolicyItemCount = 'FailedPolicyItemCount' in params ? params.FailedPolicyItemCount : null;
        this.LastCheckTime = 'LastCheckTime' in params ? params.LastCheckTime : null;
        this.CheckResult = 'CheckResult' in params ? params.CheckResult : null;
        this.AssetStatus = 'AssetStatus' in params ? params.AssetStatus : null;
        this.AssetCreateTime = 'AssetCreateTime' in params ? params.AssetCreateTime : null;

    }
}

/**
 * Trend of unlicensed cores
 * @class
 */
class UnauthorizedCoresTendency extends  AbstractModel {
    constructor(){
        super();

        /**
         * Date
         * @type {string || null}
         */
        this.DateTime = null;

        /**
         * Number of unlicensed cores
         * @type {number || null}
         */
        this.CoresCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DateTime = 'DateTime' in params ? params.DateTime : null;
        this.CoresCount = 'CoresCount' in params ? params.CoresCount : null;

    }
}

/**
 * DescribeRiskSyscallEvents response structure.
 * @class
 */
class DescribeRiskSyscallEventsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Array of high-risk syscalls
         * @type {Array.<RiskSyscallEventInfo> || null}
         */
        this.EventSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.EventSet) {
            this.EventSet = new Array();
            for (let z in params.EventSet) {
                let obj = new RiskSyscallEventInfo();
                obj.deserialize(params.EventSet[z]);
                this.EventSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of clusters
 * @class
 */
class AssetClusterListItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Cluster status
`CSR_RUNNING`: Running
`CSR_EXCEPTION`: Abnormal
`CSR_DEL`: Deleted
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Bound rule name
         * @type {string || null}
         */
        this.BindRuleName = null;

        /**
         * Cluster type:
`CT_TKE`: TKE cluster
`CT_USER_CREATE`: External cluster
`CT_TKE_SERVERLESS`: TKE Serverless cluster
         * @type {string || null}
         */
        this.ClusterType = null;

        /**
         * Cluster version
         * @type {string || null}
         */
        this.ClusterVersion = null;

        /**
         * MEM usage
         * @type {number || null}
         */
        this.MemLimit = null;

        /**
         * cpu
         * @type {number || null}
         */
        this.CpuLimit = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.BindRuleName = 'BindRuleName' in params ? params.BindRuleName : null;
        this.ClusterType = 'ClusterType' in params ? params.ClusterType : null;
        this.ClusterVersion = 'ClusterVersion' in params ? params.ClusterVersion : null;
        this.MemLimit = 'MemLimit' in params ? params.MemLimit : null;
        this.CpuLimit = 'CpuLimit' in params ? params.CpuLimit : null;

    }
}

/**
 * Response parameters structure of the network cluster policy
 * @class
 */
class NetworkPolicyInfoItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Network policy name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Network policy description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Publishing status:

`PublishedNoConfirm`: Enabled and to be confirmed.

`PublishedConfirmed`: Enabled and confirmed.

`unPublishing`: Disabled.

`Publishing`: Enabled.

`unPublishEdit`: To be enabled.
         * @type {string || null}
         */
        this.PublishStatus = null;

        /**
         * Policy type:

`System`: Synched from the cluster.

`Manual`: Added manually.
         * @type {string || null}
         */
        this.PolicySourceType = null;

        /**
         * Policy space
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Policy creation date
         * @type {string || null}
         */
        this.PolicyCreateTime = null;

        /**
         * Policy type

kube-router: KubeRouter

cilium: Cilium
         * @type {string || null}
         */
        this.NetworkPolicyPlugin = null;

        /**
         * Policy publishing result
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PublishResult = null;

        /**
         * Inbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.FromPolicyRule = null;

        /**
         * Inbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.ToPolicyRule = null;

        /**
         * Object
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PodSelector = null;

        /**
         * Network policy ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.PublishStatus = 'PublishStatus' in params ? params.PublishStatus : null;
        this.PolicySourceType = 'PolicySourceType' in params ? params.PolicySourceType : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.PolicyCreateTime = 'PolicyCreateTime' in params ? params.PolicyCreateTime : null;
        this.NetworkPolicyPlugin = 'NetworkPolicyPlugin' in params ? params.NetworkPolicyPlugin : null;
        this.PublishResult = 'PublishResult' in params ? params.PublishResult : null;
        this.FromPolicyRule = 'FromPolicyRule' in params ? params.FromPolicyRule : null;
        this.ToPolicyRule = 'ToPolicyRule' in params ? params.ToPolicyRule : null;
        this.PodSelector = 'PodSelector' in params ? params.PodSelector : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * DescribeAssetImageRiskList response structure.
 * @class
 */
class DescribeAssetImageRiskListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of viruses in the image
         * @type {Array.<ImageRiskInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageRiskInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateEmergencyVulExportJob response structure.
 * @class
 */
class CreateEmergencyVulExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateVulDefenceEventExportJob request structure.
 * @class
 */
class CreateVulDefenceEventExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>Status- String - Required: No - Plugin status. Valid values: `EVENT_UNDEAL` (pending); `EVENT_DEALED` (processed); `EVENT_IGNORE` (ignored); `EVENT_DEFENDED` (defended).</li>
<li>ContainerStatus- String - Required: No - Container status. Valid values: `CREATED` (created); `RUNNING` (running); `PAUSED` (suspended); 	`STOPPED` (stopped); `RESTARTING` (restarting); `REMOVING` (removing); `DESTROYED` (terminated).</li>
<li>ContainerNetStatus- String - Required: No - Container network status. Valid values: `NORMAL` (not isolated); `ISOLATED` (isolated); `ISOLATE_FAILED` (isolation failed); `RESTORE_FAILED` (recovery failed); `RESTORING` (recovering); `ISOLATING` (isolating).</li>
<li>EventType - String - Required: No - Intrusion status. Valid values: `EVENT_DEFENDED` (defended successfully); `EVENT_ATTACK` (attack attempt).</li>
<li>TimeRange- String - Required: No - Time range. The first value indicates the start time, and the second the end time.</li>
<li>VulName- string - Required: No - Vulnerability name</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>SourceIP- string - Required: No - Attacker IP</li>
<li>ContainerName- string - Required: No - Container name</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ImageName- string - Required: No - Image name</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>HostName- string - Required: No - Server name</li>
<li>HostIP- string - Required: No - Private IP</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Maximum value: `100000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field: `EventCount` (number of events).
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * Custom parameters of the cluster
 * @class
 */
class ClusterCustomParameters extends  AbstractModel {
    constructor(){
        super();

        /**
         * Parameter name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Parameter value
         * @type {Array.<string> || null}
         */
        this.Values = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Values = 'Values' in params ? params.Values : null;

    }
}

/**
 * DeleteIgnoreVul request structure.
 * @class
 */
class DeleteIgnoreVulRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of POC IDs
         * @type {Array.<ModifyIgnoreVul> || null}
         */
        this.List = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ModifyIgnoreVul();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }

    }
}

/**
 * DescribeReverseShellEvents response structure.
 * @class
 */
class DescribeReverseShellEventsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Array of reverse shells
         * @type {Array.<ReverseShellEventInfo> || null}
         */
        this.EventSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.EventSet) {
            this.EventSet = new Array();
            for (let z in params.EventSet) {
                let obj = new ReverseShellEventInfo();
                obj.deserialize(params.EventSet[z]);
                this.EventSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of images
 * @class
 */
class ImageSimpleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.Size = null;

        /**
         * Type
         * @type {string || null}
         */
        this.ImageType = null;

        /**
         * Number of associated containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.Size = 'Size' in params ? params.Size : null;
        this.ImageType = 'ImageType' in params ? params.ImageType : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;

    }
}

/**
 * DescribeComplianceAssetDetailInfo request structure.
 * @class
 */
class DescribeComplianceAssetDetailInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Customer asset ID
         * @type {number || null}
         */
        this.CustomerAssetId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetId = 'CustomerAssetId' in params ? params.CustomerAssetId : null;

    }
}

/**
 * Custom rule of the network cluster policy
 * @class
 */
class NetworkPeer extends  AbstractModel {
    constructor(){
        super();

        /**
         * Object type:

Namespace: `NamespaceSelector`, which indicates that `NamespaceSelector` has a value.

Pod type: `PodSelector`, which indicates that both `NamespaceSelector` and `PodSelector` have values.

IP type: `IPBlock`, which indicates that only `IPBlock` has a value.
         * @type {string || null}
         */
        this.PeerType = null;

        /**
         * Namespace selector
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.NamespaceSelector = null;

        /**
         * Pod selector
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PodSelector = null;

        /**
         * IP selector
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IPBlock = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PeerType = 'PeerType' in params ? params.PeerType : null;
        this.NamespaceSelector = 'NamespaceSelector' in params ? params.NamespaceSelector : null;
        this.PodSelector = 'PodSelector' in params ? params.PodSelector : null;
        this.IPBlock = 'IPBlock' in params ? params.IPBlock : null;

    }
}

/**
 * DescribeESAggregations response structure.
 * @class
 */
class DescribeESAggregationsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ES aggregation result in JSON
         * @type {string || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Data = 'Data' in params ? params.Data : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateExportComplianceStatusListJob response structure.
 * @class
 */
class CreateExportComplianceStatusListJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created export task
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetAppServiceList response structure.
 * @class
 */
class DescribeAssetAppServiceListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of database services
         * @type {Array.<ServiceInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ServiceInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetSyncLastTime request structure.
 * @class
 */
class DescribeAssetSyncLastTimeRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * Information of a component in the image
 * @class
 */
class ImageComponent extends  AbstractModel {
    constructor(){
        super();

        /**
         * Component name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Component version
         * @type {string || null}
         */
        this.Version = null;

        /**
         * Component path
         * @type {string || null}
         */
        this.Path = null;

        /**
         * Component type
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Number of component vulnerabilities
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VulCount = null;

        /**
         * Image ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Version = 'Version' in params ? params.Version : null;
        this.Path = 'Path' in params ? params.Path : null;
        this.Type = 'Type' in params ? params.Type : null;
        this.VulCount = 'VulCount' in params ? params.VulCount : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;

    }
}

/**
 * Information of a compliance standard
 * @class
 */
class ComplianceBenchmarkStandard extends  AbstractModel {
    constructor(){
        super();

        /**
         * Compliance standard ID
         * @type {number || null}
         */
        this.StandardId = null;

        /**
         * Compliance standard name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Number of items contained in the compliance standard
         * @type {number || null}
         */
        this.PolicyItemCount = null;

        /**
         * Whether to enable the standard
         * @type {boolean || null}
         */
        this.Enabled = null;

        /**
         * Description of the standard
         * @type {string || null}
         */
        this.Description = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StandardId = 'StandardId' in params ? params.StandardId : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.PolicyItemCount = 'PolicyItemCount' in params ? params.PolicyItemCount : null;
        this.Enabled = 'Enabled' in params ? params.Enabled : null;
        this.Description = 'Description' in params ? params.Description : null;

    }
}

/**
 * DescribeEscapeRuleInfo response structure.
 * @class
 */
class DescribeEscapeRuleInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule information
         * @type {Array.<EscapeRule> || null}
         */
        this.RuleSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.RuleSet) {
            this.RuleSet = new Array();
            for (let z in params.RuleSet) {
                let obj = new EscapeRule();
                obj.deserialize(params.RuleSet[z]);
                this.RuleSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Vulnerability trend information
 * @class
 */
class VulTendencyInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of vulnerability trends
         * @type {Array.<RunTimeTendencyInfo> || null}
         */
        this.VulSet = null;

        /**
         * Image type affected by vulnerabilities:
`LOCAL`: Local image.
`REGISTRY`: Repository image.
         * @type {string || null}
         */
        this.ImageType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.VulSet) {
            this.VulSet = new Array();
            for (let z in params.VulSet) {
                let obj = new RunTimeTendencyInfo();
                obj.deserialize(params.VulSet[z]);
                this.VulSet.push(obj);
            }
        }
        this.ImageType = 'ImageType' in params ? params.ImageType : null;

    }
}

/**
 * DescribePurchaseStateInfo request structure.
 * @class
 */
class DescribePurchaseStateInfoRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * AddCompliancePolicyItemToWhitelist request structure.
 * @class
 */
class AddCompliancePolicyItemToWhitelistRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of IDs of check items to be ignored
         * @type {Array.<number> || null}
         */
        this.CustomerPolicyItemIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemIdSet = 'CustomerPolicyItemIdSet' in params ? params.CustomerPolicyItemIdSet : null;

    }
}

/**
 * Asset overview
 * @class
 */
class ComplianceAssetSummary extends  AbstractModel {
    constructor(){
        super();

        /**
         * Asset type
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Whether it is the first check. This parameter is used together with `CheckStatus`.
         * @type {boolean || null}
         */
        this.IsCustomerFirstCheck = null;

        /**
         * Check status

`CHECK_UNINIT`: Feature not enabled.

`CHECK_INIT`: To be checked.

`CHECK_RUNNING`: Checking.

`CHECK_FINISHED`: Checked.

`CHECK_FAILED`: Check failed.
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Check progress. Value range: 0-100. This field is valid only if the check is running.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CheckProgress = null;

        /**
         * Number of check items that the asset passed
         * @type {number || null}
         */
        this.PassedPolicyItemCount = null;

        /**
         * Number of check items that the asset failed
         * @type {number || null}
         */
        this.FailedPolicyItemCount = null;

        /**
         * Number of critical check items that the asset failed
         * @type {number || null}
         */
        this.FailedCriticalPolicyItemCount = null;

        /**
         * Number of high-risk check items that the asset failed
         * @type {number || null}
         */
        this.FailedHighRiskPolicyItemCount = null;

        /**
         * Number of medium-risk check items that the asset failed
         * @type {number || null}
         */
        this.FailedMediumRiskPolicyItemCount = null;

        /**
         * Number of low-risk check items that the asset failed
         * @type {number || null}
         */
        this.FailedLowRiskPolicyItemCount = null;

        /**
         * Number of prompt check items of the asset
         * @type {number || null}
         */
        this.NoticePolicyItemCount = null;

        /**
         * Number of assets that passed the check
         * @type {number || null}
         */
        this.PassedAssetCount = null;

        /**
         * Number of assets that failed the check
         * @type {number || null}
         */
        this.FailedAssetCount = null;

        /**
         * Asset compliance rate. Value range: 0-100.
         * @type {number || null}
         */
        this.AssetPassedRate = null;

        /**
         * Number of assets that failed the check
         * @type {number || null}
         */
        this.ScanFailedAssetCount = null;

        /**
         * Last check duration in seconds
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CheckCostTime = null;

        /**
         * Last check time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LastCheckTime = null;

        /**
         * Scheduled check rule
         * @type {CompliancePeriodTaskRule || null}
         */
        this.PeriodRule = null;

        /**
         * Total number of enabled check items
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.OpenPolicyItemCount = null;

        /**
         * Total number of ignored check items
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.IgnoredPolicyItemCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.IsCustomerFirstCheck = 'IsCustomerFirstCheck' in params ? params.IsCustomerFirstCheck : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.CheckProgress = 'CheckProgress' in params ? params.CheckProgress : null;
        this.PassedPolicyItemCount = 'PassedPolicyItemCount' in params ? params.PassedPolicyItemCount : null;
        this.FailedPolicyItemCount = 'FailedPolicyItemCount' in params ? params.FailedPolicyItemCount : null;
        this.FailedCriticalPolicyItemCount = 'FailedCriticalPolicyItemCount' in params ? params.FailedCriticalPolicyItemCount : null;
        this.FailedHighRiskPolicyItemCount = 'FailedHighRiskPolicyItemCount' in params ? params.FailedHighRiskPolicyItemCount : null;
        this.FailedMediumRiskPolicyItemCount = 'FailedMediumRiskPolicyItemCount' in params ? params.FailedMediumRiskPolicyItemCount : null;
        this.FailedLowRiskPolicyItemCount = 'FailedLowRiskPolicyItemCount' in params ? params.FailedLowRiskPolicyItemCount : null;
        this.NoticePolicyItemCount = 'NoticePolicyItemCount' in params ? params.NoticePolicyItemCount : null;
        this.PassedAssetCount = 'PassedAssetCount' in params ? params.PassedAssetCount : null;
        this.FailedAssetCount = 'FailedAssetCount' in params ? params.FailedAssetCount : null;
        this.AssetPassedRate = 'AssetPassedRate' in params ? params.AssetPassedRate : null;
        this.ScanFailedAssetCount = 'ScanFailedAssetCount' in params ? params.ScanFailedAssetCount : null;
        this.CheckCostTime = 'CheckCostTime' in params ? params.CheckCostTime : null;
        this.LastCheckTime = 'LastCheckTime' in params ? params.LastCheckTime : null;

        if (params.PeriodRule) {
            let obj = new CompliancePeriodTaskRule();
            obj.deserialize(params.PeriodRule)
            this.PeriodRule = obj;
        }
        this.OpenPolicyItemCount = 'OpenPolicyItemCount' in params ? params.OpenPolicyItemCount : null;
        this.IgnoredPolicyItemCount = 'IgnoredPolicyItemCount' in params ? params.IgnoredPolicyItemCount : null;

    }
}

/**
 * Trend of pending abnormal process events
 * @class
 */
class AbnormalProcessEventTendencyInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Date
         * @type {string || null}
         */
        this.Date = null;

        /**
         * Number of pending proxy events
         * @type {number || null}
         */
        this.ProxyToolEventCount = null;

        /**
         * Number of pending lateral movement events
         * @type {number || null}
         */
        this.TransferControlEventCount = null;

        /**
         * Number of pending malicious command events
         * @type {number || null}
         */
        this.AttackCmdEventCount = null;

        /**
         * Number of pending reverse shell events
         * @type {number || null}
         */
        this.ReverseShellEventCount = null;

        /**
         * Number of pending fileless execution events
         * @type {number || null}
         */
        this.FilelessEventCount = null;

        /**
         * Number of pending high-risk command events
         * @type {number || null}
         */
        this.RiskCmdEventCount = null;

        /**
         * Number of pending events of unusual startups found in the child process of the sensitive service
         * @type {number || null}
         */
        this.AbnormalChildProcessEventCount = null;

        /**
         * Number of pending custom rule events
         * @type {number || null}
         */
        this.UserDefinedRuleEventCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Date = 'Date' in params ? params.Date : null;
        this.ProxyToolEventCount = 'ProxyToolEventCount' in params ? params.ProxyToolEventCount : null;
        this.TransferControlEventCount = 'TransferControlEventCount' in params ? params.TransferControlEventCount : null;
        this.AttackCmdEventCount = 'AttackCmdEventCount' in params ? params.AttackCmdEventCount : null;
        this.ReverseShellEventCount = 'ReverseShellEventCount' in params ? params.ReverseShellEventCount : null;
        this.FilelessEventCount = 'FilelessEventCount' in params ? params.FilelessEventCount : null;
        this.RiskCmdEventCount = 'RiskCmdEventCount' in params ? params.RiskCmdEventCount : null;
        this.AbnormalChildProcessEventCount = 'AbnormalChildProcessEventCount' in params ? params.AbnormalChildProcessEventCount : null;
        this.UserDefinedRuleEventCount = 'UserDefinedRuleEventCount' in params ? params.UserDefinedRuleEventCount : null;

    }
}

/**
 * DescribeAssetClusterList response structure.
 * @class
 */
class DescribeAssetClusterListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster list
         * @type {Array.<AssetClusterListItem> || null}
         */
        this.List = null;

        /**
         * Total number of clusters
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new AssetClusterListItem();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Enablement/Disablement of the container escape scan policy
 * @class
 */
class EscapeRule extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule type   
`ESCAPE_HOST_ACESS_FILE`: Host file access escape.
   `ESCAPE_MOUNT_NAMESPACE`: Mount namespace escape.
   `ESCAPE_PRIVILEDGE`: Program privilege escalation escape.
   `ESCAPE_PRIVILEDGE_CONTAINER_START`: Privileged container startup escape.
   `ESCAPE_MOUNT_SENSITIVE_PTAH`: Sensitive path mount.
`ESCAPE_SYSCALL`: Syscall escape.
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Rule name
Host file access escape
Syscall escape
Mount namespace escape
Program privilege escalation escape
Privileged container startup escape
Sensitive path mount
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Whether to enable. Valid values: `false` (no); `true` (yes).
         * @type {boolean || null}
         */
        this.IsEnable = null;

        /**
         * Rule group. Valid values: `RISK_CONTAINER` (container in risk); `PROCESS_PRIVILEGE` (program privilege escalation); `CONTAINER_ESCAPE` (container escape).
         * @type {string || null}
         */
        this.Group = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Type = 'Type' in params ? params.Type : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;
        this.Group = 'Group' in params ? params.Group : null;

    }
}

/**
 * Information of a scheduled task of the compliance baseline check
 * @class
 */
class CompliancePeriodTask extends  AbstractModel {
    constructor(){
        super();

        /**
         * Scheduled task ID
         * @type {number || null}
         */
        this.PeriodTaskId = null;

        /**
         * Asset type
`ASSET_CONTAINER`: Container.
`ASSET_IMAGE`: Image.
`ASSET_HOST`: Server.
`ASSET_K8S`: K8s asset.
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Last trigger time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LastTriggerTime = null;

        /**
         * Total number of check items
         * @type {number || null}
         */
        this.TotalPolicyItemCount = null;

        /**
         * Cycle settings
         * @type {CompliancePeriodTaskRule || null}
         */
        this.PeriodRule = null;

        /**
         * List of compliance standards
         * @type {Array.<ComplianceBenchmarkStandard> || null}
         */
        this.BenchmarkStandardSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PeriodTaskId = 'PeriodTaskId' in params ? params.PeriodTaskId : null;
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.LastTriggerTime = 'LastTriggerTime' in params ? params.LastTriggerTime : null;
        this.TotalPolicyItemCount = 'TotalPolicyItemCount' in params ? params.TotalPolicyItemCount : null;

        if (params.PeriodRule) {
            let obj = new CompliancePeriodTaskRule();
            obj.deserialize(params.PeriodRule)
            this.PeriodRule = obj;
        }

        if (params.BenchmarkStandardSet) {
            this.BenchmarkStandardSet = new Array();
            for (let z in params.BenchmarkStandardSet) {
                let obj = new ComplianceBenchmarkStandard();
                obj.deserialize(params.BenchmarkStandardSet[z]);
                this.BenchmarkStandardSet.push(obj);
            }
        }

    }
}

/**
 * DescribeAssetImageRegistryRiskListExport response structure.
 * @class
 */
class DescribeAssetImageRegistryRiskListExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel file download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Security log alert message
 * @class
 */
class SecLogAlertMsgInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Alert type
         * @type {string || null}
         */
        this.MsgType = null;

        /**
         * Alert value
         * @type {string || null}
         */
        this.MsgValue = null;

        /**
         * Status. Valid values: `0` (disabled); `1` (enabled).
         * @type {boolean || null}
         */
        this.State = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MsgType = 'MsgType' in params ? params.MsgType : null;
        this.MsgValue = 'MsgValue' in params ? params.MsgValue : null;
        this.State = 'State' in params ? params.State : null;

    }
}

/**
 * Result of the automatic image licensing
 * @class
 */
class AutoAuthorizedImageInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Licensing time
         * @type {string || null}
         */
        this.AuthorizedTime = null;

        /**
         * Licensing result. Valid values: `SUCCESS` (success); `REACH_LIMIT` (reaching the upper limit on licenses); `LICENSE_INSUFFICIENT` (insufficient licenses).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Whether it is licensed. Valid values: `1` (yes); `0` (no).
         * @type {number || null}
         */
        this.IsAuthorized = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.AuthorizedTime = 'AuthorizedTime' in params ? params.AuthorizedTime : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.IsAuthorized = 'IsAuthorized' in params ? params.IsAuthorized : null;

    }
}

/**
 * UpdateAssetImageRegistryRegistryDetail response structure.
 * @class
 */
class UpdateAssetImageRegistryRegistryDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Connection error message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HealthCheckErr = null;

        /**
         * Name error message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.NameRepeatErr = null;

        /**
         * Unique repository ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RegistryId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HealthCheckErr = 'HealthCheckErr' in params ? params.HealthCheckErr : null;
        this.NameRepeatErr = 'NameRepeatErr' in params ? params.NameRepeatErr : null;
        this.RegistryId = 'RegistryId' in params ? params.RegistryId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifySecLogDeliveryKafkaSetting response structure.
 * @class
 */
class ModifySecLogDeliveryKafkaSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteAbnormalProcessRules response structure.
 * @class
 */
class DeleteAbnormalProcessRulesResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * 
 * @class
 */
class ImageRepoRegistryInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {number || null}
         */
        this.RegistryId = null;

        /**
         * 
         * @type {string || null}
         */
        this.Name = null;

        /**
         * 
         * @type {string || null}
         */
        this.RegistryType = null;

        /**
         * 
         * @type {string || null}
         */
        this.Url = null;

        /**
         * 
         * @type {string || null}
         */
        this.NetType = null;

        /**
         * 
         * @type {string || null}
         */
        this.RegistryRegion = null;

        /**
         * 
         * @type {string || null}
         */
        this.RegistryVersion = null;

        /**
         * 
         * @type {string || null}
         */
        this.ConnectMsg = null;

        /**
         * 
         * @type {string || null}
         */
        this.ConnDetectType = null;

        /**
         * 
         * @type {number || null}
         */
        this.ConnDetectHostCount = null;

        /**
         * 
         * @type {Array.<RegistryConnDetectResult> || null}
         */
        this.ConnDetectDetail = null;

        /**
         * 
         * @type {string || null}
         */
        this.InstanceID = null;

        /**
         * 
         * @type {string || null}
         */
        this.LatestSyncTime = null;

        /**
         * 
         * @type {string || null}
         */
        this.SyncStatus = null;

        /**
         * 
         * @type {string || null}
         */
        this.SyncFailReason = null;

        /**
         * 
         * @type {string || null}
         */
        this.SyncSolution = null;

        /**
         * 
         * @type {string || null}
         */
        this.SyncMessage = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RegistryId = 'RegistryId' in params ? params.RegistryId : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.Url = 'Url' in params ? params.Url : null;
        this.NetType = 'NetType' in params ? params.NetType : null;
        this.RegistryRegion = 'RegistryRegion' in params ? params.RegistryRegion : null;
        this.RegistryVersion = 'RegistryVersion' in params ? params.RegistryVersion : null;
        this.ConnectMsg = 'ConnectMsg' in params ? params.ConnectMsg : null;
        this.ConnDetectType = 'ConnDetectType' in params ? params.ConnDetectType : null;
        this.ConnDetectHostCount = 'ConnDetectHostCount' in params ? params.ConnDetectHostCount : null;

        if (params.ConnDetectDetail) {
            this.ConnDetectDetail = new Array();
            for (let z in params.ConnDetectDetail) {
                let obj = new RegistryConnDetectResult();
                obj.deserialize(params.ConnDetectDetail[z]);
                this.ConnDetectDetail.push(obj);
            }
        }
        this.InstanceID = 'InstanceID' in params ? params.InstanceID : null;
        this.LatestSyncTime = 'LatestSyncTime' in params ? params.LatestSyncTime : null;
        this.SyncStatus = 'SyncStatus' in params ? params.SyncStatus : null;
        this.SyncFailReason = 'SyncFailReason' in params ? params.SyncFailReason : null;
        this.SyncSolution = 'SyncSolution' in params ? params.SyncSolution : null;
        this.SyncMessage = 'SyncMessage' in params ? params.SyncMessage : null;

    }
}

/**
 * Runtime security - Basic policy information
 * @class
 */
class RuleBaseInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Valid values: `true` (default policy); `false` (custom policy).
         * @type {boolean || null}
         */
        this.IsDefault = null;

        /**
         * Number of associated images
         * @type {number || null}
         */
        this.EffectImageCount = null;

        /**
         * Policy ID
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Policy update time, which can be empty.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * Name of the editing user
         * @type {string || null}
         */
        this.EditUserName = null;

        /**
         * Valid values: `true` (enable the policy); `false` (disable the policy).
         * @type {boolean || null}
         */
        this.IsEnable = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsDefault = 'IsDefault' in params ? params.IsDefault : null;
        this.EffectImageCount = 'EffectImageCount' in params ? params.EffectImageCount : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.RuleName = 'RuleName' in params ? params.RuleName : null;
        this.EditUserName = 'EditUserName' in params ? params.EditUserName : null;
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;

    }
}

/**
 * List of processes
 * @class
 */
class ProcessInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Process start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * Operator
         * @type {string || null}
         */
        this.RunAs = null;

        /**
         * Command line parameter
         * @type {string || null}
         */
        this.CmdLine = null;

        /**
         * Exe path
         * @type {string || null}
         */
        this.Exe = null;

        /**
         * Server PID
         * @type {number || null}
         */
        this.PID = null;

        /**
         * Container PID
         * @type {number || null}
         */
        this.ContainerPID = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Server IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Process name
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Server name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIp = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Node type.
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * UID of the super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.RunAs = 'RunAs' in params ? params.RunAs : null;
        this.CmdLine = 'CmdLine' in params ? params.CmdLine : null;
        this.Exe = 'Exe' in params ? params.Exe : null;
        this.PID = 'PID' in params ? params.PID : null;
        this.ContainerPID = 'ContainerPID' in params ? params.ContainerPID : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.PublicIp = 'PublicIp' in params ? params.PublicIp : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;

    }
}

/**
 * Basic image information
 * @class
 */
class ImageInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Instance name
         * @type {string || null}
         */
        this.InstanceName = null;

        /**
         * Namespace
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image tag
         * @type {string || null}
         */
        this.ImageTag = null;

        /**
         * Forced scan
         * @type {string || null}
         */
        this.Force = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageDigest = null;

        /**
         * Repository type
         * @type {string || null}
         */
        this.RegistryType = null;

        /**
         * Image repository address
         * @type {string || null}
         */
        this.ImageRepoAddress = null;

        /**
         * Instance ID
         * @type {string || null}
         */
        this.InstanceId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.InstanceName = 'InstanceName' in params ? params.InstanceName : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageTag = 'ImageTag' in params ? params.ImageTag : null;
        this.Force = 'Force' in params ? params.Force : null;
        this.ImageDigest = 'ImageDigest' in params ? params.ImageDigest : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.ImageRepoAddress = 'ImageRepoAddress' in params ? params.ImageRepoAddress : null;
        this.InstanceId = 'InstanceId' in params ? params.InstanceId : null;

    }
}

/**
 * DescribeReverseShellDetail request structure.
 * @class
 */
class DescribeReverseShellDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.EventId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

    }
}

/**
 * ModifyReverseShellStatus request structure.
 * @class
 */
class ModifyReverseShellStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of event IDs
         * @type {Array.<string> || null}
         */
        this.EventIdSet = null;

        /**
         * Event status   
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
     `EVENT_DEL`: Deleted.
     `EVENT_ADD_WHITE`: Allowed.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event remarks
         * @type {string || null}
         */
        this.Remark = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIdSet = 'EventIdSet' in params ? params.EventIdSet : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

    }
}

/**
 * DescribePublicKey response structure.
 * @class
 */
class DescribePublicKeyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Public key
         * @type {string || null}
         */
        this.PublicKey = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PublicKey = 'PublicKey' in params ? params.PublicKey : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * SetCheckMode request structure.
 * @class
 */
class SetCheckModeRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of cluster IDs to be set
         * @type {Array.<string> || null}
         */
        this.ClusterIds = null;

        /**
         * Cluster check mode. Valid values: `Cluster_Normal` (normal mode); `Cluster_Actived` (proactive mode); `Cluster_Unset` (not set).
         * @type {string || null}
         */
        this.ClusterCheckMode = null;

        /**
         * Valid values: `0` (not set); `1` (on); `2` (off).
         * @type {number || null}
         */
        this.ClusterAutoCheck = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterIds = 'ClusterIds' in params ? params.ClusterIds : null;
        this.ClusterCheckMode = 'ClusterCheckMode' in params ? params.ClusterCheckMode : null;
        this.ClusterAutoCheck = 'ClusterAutoCheck' in params ? params.ClusterAutoCheck : null;

    }
}

/**
 * DescribeAssetImageRiskListExport request structure.
 * @class
 */
class DescribeAssetImageRiskListExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Filter
<li>Level- String - Required: No - Risk level. Valid values: `1`, `2`, `3`, `4`.</li>
<li>Behavior - String - Required: No - Risky behavior. Valid values: `1`, `2`, `3`, `4`.</li>
<li>Type - String - Required: No - Risk type. Valid values: `1`, `2`.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeAffectedWorkloadList request structure.
 * @class
 */
class DescribeAffectedWorkloadListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique ID of the check item
         * @type {number || null}
         */
        this.CheckItemId = null;

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - String
Name. Valid values: `WorkloadType`, `ClusterId`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CheckItemId = 'CheckItemId' in params ? params.CheckItemId : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeVulDefenceHost request structure.
 * @class
 */
class DescribeVulDefenceHostRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter condition
<li>`Status`: String - Required: No - Plugin status. Values: `SUCCESS` (normal); `FAIL` (abnormal); `NO_DEFENCE` (not defended).</li>
<li>`HostName`: String - Required: No - Server/Super node name</li>
<li>`HostIP`: String - Required: No - Server IP </li>
<li>`NodeType`: String  - Required: No - Node type</li>
<li>`HostName` - String - Required: No - Super node name </li>
<li>`NodeSubNetCIDR`: String - Required: No - Super node CIDR block</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field. Valid values: `ModifyTime` (update time); `CreateTime` (first enablement time).
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * List of emergency vulnerabilities
 * @class
 */
class EmergencyVulInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Vulnerability tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * CVSS V3 score
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CVSSV3Score = null;

        /**
         * Risk level
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Level = null;

        /**
         * CVE No.
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * Vulnerability type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Category = null;

        /**
         * Vulnerability disclosure time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.SubmitTime = null;

        /**
         * Last discovery time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LatestFoundTime = null;

        /**
         * Emergency vulnerability risk information. Valid values: `NOT_SCAN` (not scanned); `SCANNING` (scanning); `SCANNED_NOT_RISK` (scanned and at no risk); `SCANNED_RISK` (scanned and at risk).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Vulnerability ID
         * @type {number || null}
         */
        this.ID = null;

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Defense status. Valid values: `NO_DEFENDED`, `DEFENDED`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DefenceStatus = null;

        /**
         * Scope of servers with exploit prevention enabled. Valid values: `MANUAL` (specified servers); `ALL` (all servers).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DefenceScope = null;

        /**
         * Number of servers with exploit prevention enabled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DefenceHostCount = null;

        /**
         * Number of attacks defended against
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DefendedCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.CVSSV3Score = 'CVSSV3Score' in params ? params.CVSSV3Score : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.Category = 'Category' in params ? params.Category : null;
        this.SubmitTime = 'SubmitTime' in params ? params.SubmitTime : null;
        this.LatestFoundTime = 'LatestFoundTime' in params ? params.LatestFoundTime : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.ID = 'ID' in params ? params.ID : null;
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.DefenceStatus = 'DefenceStatus' in params ? params.DefenceStatus : null;
        this.DefenceScope = 'DefenceScope' in params ? params.DefenceScope : null;
        this.DefenceHostCount = 'DefenceHostCount' in params ? params.DefenceHostCount : null;
        this.DefendedCount = 'DefendedCount' in params ? params.DefendedCount : null;

    }
}

/**
 * ExportVirusList request structure.
 * @class
 */
class ExportVirusListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>FileName - String - Required: No - Filename</li>
<li>FilePath - String - Required: No - File path</li>
<li>VirusName - String - Required: No - Virus name</li>
<li>ContainerName- String - Required: Yes - Container name</li>
<li>ContainerId- string - Required: No - Container ID</li>
<li>ImageName- string - Required: No - Image name</li>
<li>ImageId- string - Required: No - Image ID</li>
<li>IsRealTime- int - Required: No - Whether it is real-time monitoring data</li>
<li>TaskId- string - Required: No - Task ID</li>
<li>TimeRange - string - Required: No - Time range ["2022-03-31 16:55:00", "2022-03-31 17:00:00"]</li>
<li>ContainerNetStatus - String - Required: No - Container network status. Valid values: `NORMAL`, `ISOLATED`, `ISOLATING`, `RESTORING`, `RESTORE_FAILED`.</li>
<li>ContainerStatus - string - Required: No - Container status. Valid values: `RUNNING`, `PAUSED`, `STOPPED`, `CREATED`, `DESTROYED`, `RESTARTING`, `REMOVING`.</li>
<li>AutoIsolateMode - string - Required: No - Isolation method. Valid values: `MANUAL`, `AUTO`.</li>
<li>MD5 - string - Required: No - MD5</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * CreateWebVulExportJob request structure.
 * @class
 */
class CreateWebVulExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `50000`. Maximum value: `50000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>OnlyAffectedContainer- string - Required: No - Show only vulnerabilities that affect containers. Valid values: `true`, `false`.</li>
<li>OnlyAffectedNewestImage-string - Required: No - Show only vulnerabilities that affect the latest image tags. Valid values: `true`, `false`.</li>
<li>Level- String - Required: No - Severity. Valid values: `CRITICAL` (critical); `HIGH` (high); `MIDDLE` (medium); `LOW` (low).</li>
<li>Tags- string - Required: No - Vulnerability tag. Valid values: `POC`, `EXP`.</li>
<li>CanBeFixed- string - Required: No - Whether the vulnerability can be fixed. Valid values: `true`, `false`.</li>
<li>CategoryType- string - Required: No - Sub-type of the vulnerability</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ContainerName- string - Required: No - Container name</li>
<li>ComponentName- string - Required: No - Component name</li>
<li>ComponentVersion- string - Required: No - Component version</li>
<li>Name- string - Required: No - Vulnerability name</li>
<li>FocusOnType - string - Required: No - Urgency. Valid values: `ALL` (all); `SERIOUS_LEVEL (critical and high risks); `IS_SUGGEST` (high-priority); `POC_EXP` (POC/EXP); `NETWORK_EXP` (remote EXP).</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * CreateK8sApiAbnormalEventExportJob request structure.
 * @class
 */
class CreateK8sApiAbnormalEventExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filters.
<li>TimeRange - String - Optional - Time range. Example: ["2022-03-31 16:55:00", "2022-03-31 17:00:00"]</li>
<li>`MatchRules` - String - Optional - Hit rule</li>
<li>`RiskLevel` - String - Optional - Threat level</li>
<li>`Status` - String - Optional - Event status</li>
<li>`MatchRuleType` - String - Optional - Hit rule type</li>
<li>`ClusterRunningStatus` - String - Optional - Cluster running status</li>
<li>`ClusterName` - String - Optional - Cluster name</li>
<li>`ClusterID` - String - Optional - Cluster ID</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sort order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * DescribeK8sApiAbnormalTendency response structure.
 * @class
 */
class DescribeK8sApiAbnormalTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trend list
         * @type {Array.<K8sApiAbnormalTendencyItem> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new K8sApiAbnormalTendencyItem();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Items in the K8sApi abnormal event list
 * @class
 */
class K8sApiAbnormalEventListItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event ID
         * @type {number || null}
         */
        this.ID = null;

        /**
         * Hit rule type
         * @type {string || null}
         */
        this.MatchRuleType = null;

        /**
         * Threat level
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Cluster running status
         * @type {string || null}
         */
        this.ClusterRunningStatus = null;

        /**
         * First creation time
         * @type {string || null}
         */
        this.FirstCreateTime = null;

        /**
         * Last creation time
         * @type {string || null}
         */
        this.LastCreateTime = null;

        /**
         * Number of alarms
         * @type {number || null}
         */
        this.AlarmCount = null;

        /**
         * Status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Rule type
         * @type {string || null}
         */
        this.RuleType = null;

        /**
         * Description
         * @type {string || null}
         */
        this.Desc = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.Suggestion = null;

        /**
         * Rule name
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * Hit rule
         * @type {K8sApiAbnormalRuleScopeInfo || null}
         */
        this.MatchRule = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ID = 'ID' in params ? params.ID : null;
        this.MatchRuleType = 'MatchRuleType' in params ? params.MatchRuleType : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.ClusterRunningStatus = 'ClusterRunningStatus' in params ? params.ClusterRunningStatus : null;
        this.FirstCreateTime = 'FirstCreateTime' in params ? params.FirstCreateTime : null;
        this.LastCreateTime = 'LastCreateTime' in params ? params.LastCreateTime : null;
        this.AlarmCount = 'AlarmCount' in params ? params.AlarmCount : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.RuleType = 'RuleType' in params ? params.RuleType : null;
        this.Desc = 'Desc' in params ? params.Desc : null;
        this.Suggestion = 'Suggestion' in params ? params.Suggestion : null;
        this.RuleName = 'RuleName' in params ? params.RuleName : null;

        if (params.MatchRule) {
            let obj = new K8sApiAbnormalRuleScopeInfo();
            obj.deserialize(params.MatchRule)
            this.MatchRule = obj;
        }

    }
}

/**
 * Security log access details
 * @class
 */
class SecLogJoinInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of connected general nodes
         * @type {number || null}
         */
        this.Count = null;

        /**
         * Number of connected super nodes
         * @type {number || null}
         */
        this.SuperNodeCount = null;

        /**
         * Whether it is accessed. Valid values: `true` (accessed); `false` (not accessed).
         * @type {boolean || null}
         */
        this.IsJoined = null;

        /**
         * Log type (
Container bash: "container_bash"
Container startup: "container_launch"
K8s API: "k8s_api"
)
         * @type {string || null}
         */
        this.LogType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Count = 'Count' in params ? params.Count : null;
        this.SuperNodeCount = 'SuperNodeCount' in params ? params.SuperNodeCount : null;
        this.IsJoined = 'IsJoined' in params ? params.IsJoined : null;
        this.LogType = 'LogType' in params ? params.LogType : null;

    }
}

/**
 * Promotion content
 * @class
 */
class PromotionActivityContent extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of months
         * @type {number || null}
         */
        this.MonthNum = null;

        /**
         * Minimum number of cores
         * @type {number || null}
         */
        this.CoresCountLimit = null;

        /**
         * Discount on the Pro Edition
         * @type {number || null}
         */
        this.ProfessionalDiscount = null;

        /**
         * Number of free images
         * @type {number || null}
         */
        this.ImageAuthorizationNum = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MonthNum = 'MonthNum' in params ? params.MonthNum : null;
        this.CoresCountLimit = 'CoresCountLimit' in params ? params.CoresCountLimit : null;
        this.ProfessionalDiscount = 'ProfessionalDiscount' in params ? params.ProfessionalDiscount : null;
        this.ImageAuthorizationNum = 'ImageAuthorizationNum' in params ? params.ImageAuthorizationNum : null;

    }
}

/**
 * DescribeAffectedClusterCount request structure.
 * @class
 */
class DescribeAffectedClusterCountRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAssetImageRegistryVulListExport request structure.
 * @class
 */
class DescribeAssetImageRegistryVulListExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Vulnerability level</li>
<li>Name - String - Required: No - Vulnerability name</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Image information
         * @type {ImageInfo || null}
         */
        this.ImageInfo = null;

        /**
         * Image ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

        if (params.ImageInfo) {
            let obj = new ImageInfo();
            obj.deserialize(params.ImageInfo)
            this.ImageInfo = obj;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * AddEditRiskSyscallWhiteList request structure.
 * @class
 */
class AddEditRiskSyscallWhiteListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Used only when an event is added to the allowlist
         * @type {string || null}
         */
        this.EventId = null;

        /**
         * Information of the allowed item to be added or edited. When an allowed item is added, `WhiteListInfo.id` can be empty; when an allowed item is edited, `WhiteListInfo.id` cannot be empty.
         * @type {RiskSyscallWhiteListInfo || null}
         */
        this.WhiteListInfo = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

        if (params.WhiteListInfo) {
            let obj = new RiskSyscallWhiteListInfo();
            obj.deserialize(params.WhiteListInfo)
            this.WhiteListInfo = obj;
        }

    }
}

/**
 * K8sApi abnormal request rule details
 * @class
 */
class K8sApiAbnormalRuleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule name
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * Status
         * @type {boolean || null}
         */
        this.Status = null;

        /**
         * Rule information list
         * @type {Array.<K8sApiAbnormalRuleScopeInfo> || null}
         */
        this.RuleInfoList = null;

        /**
         * Effective cluster IDSet
         * @type {Array.<string> || null}
         */
        this.EffectClusterIDSet = null;

        /**
         * Rule type
RT_SYSTEM: System rules
RT_USER: User-defined rules
         * @type {string || null}
         */
        this.RuleType = null;

        /**
         * Whether all clusters are effective
         * @type {boolean || null}
         */
        this.EffectAllCluster = null;

        /**
         * Rule ID
         * @type {string || null}
         */
        this.RuleID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleName = 'RuleName' in params ? params.RuleName : null;
        this.Status = 'Status' in params ? params.Status : null;

        if (params.RuleInfoList) {
            this.RuleInfoList = new Array();
            for (let z in params.RuleInfoList) {
                let obj = new K8sApiAbnormalRuleScopeInfo();
                obj.deserialize(params.RuleInfoList[z]);
                this.RuleInfoList.push(obj);
            }
        }
        this.EffectClusterIDSet = 'EffectClusterIDSet' in params ? params.EffectClusterIDSet : null;
        this.RuleType = 'RuleType' in params ? params.RuleType : null;
        this.EffectAllCluster = 'EffectAllCluster' in params ? params.EffectAllCluster : null;
        this.RuleID = 'RuleID' in params ? params.RuleID : null;

    }
}

/**
 * Container runtime security - Information of the reverse shell
 * @class
 */
class ReverseShellEventInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Process name
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Process path
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Generation time
         * @type {string || null}
         */
        this.FoundTime = null;

        /**
         * Event solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Status. `EVENT_UNDEAL`: Pending.
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
    `EVENT_ADD_WHITE`: Allowed.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event ID
         * @type {string || null}
         */
        this.EventId = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Parent process name
         * @type {string || null}
         */
        this.PProcessName = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Last generation time
         * @type {string || null}
         */
        this.LatestFoundTime = null;

        /**
         * Destination address
         * @type {string || null}
         */
        this.DstAddress = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
	"NODE_DESTROYED"      // The node is terminated.
	"CONTAINER_EXITED"    // The container exited.
	"CONTAINER_DESTROYED" // The container was terminated.
	"SHARED_HOST"         // The container shares the network with the server.
	"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
	"UNKNOW"              // The reason is unknown.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Container status
`RUNNING`: Running.
`PAUSED`: Paused.
`STOPPED`: Stopped.
`CREATED`: Created.
`DESTROYED`: Terminated.
`RESTARTING`: Restarting.
`REMOVING`: Removing.
         * @type {string || null}
         */
        this.ContainerStatus = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.FoundTime = 'FoundTime' in params ? params.FoundTime : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.EventId = 'EventId' in params ? params.EventId : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.PProcessName = 'PProcessName' in params ? params.PProcessName : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.LatestFoundTime = 'LatestFoundTime' in params ? params.LatestFoundTime : null;
        this.DstAddress = 'DstAddress' in params ? params.DstAddress : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.ContainerStatus = 'ContainerStatus' in params ? params.ContainerStatus : null;

    }
}

/**
 * DescribeSecLogJoinObjectList response structure.
 * @class
 */
class DescribeSecLogJoinObjectListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of accessed objects
         * @type {Array.<SecLogJoinObjectInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new SecLogJoinObjectInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateSystemVulExportJob request structure.
 * @class
 */
class CreateSystemVulExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `50000`. Maximum value: `50000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>OnlyAffectedContainer- string - Required: No - Show only vulnerabilities that affect containers. Valid values: `true`, `false`.</li>
<li>OnlyAffectedNewestImage-string - Required: No - Show only vulnerabilities that affect the latest image tags. Valid values: `true`, `false`.</li>
<li>Level- String - Required: No - Severity. Valid values: `CRITICAL` (critical); `HIGH` (high); `MIDDLE` (medium); `LOW` (low).</li>
<li>Tags- string - Required: No - Vulnerability tag. Valid values: `POC`, `EXP`.</li>
<li>CanBeFixed- string - Required: No - Whether the vulnerability can be fixed. Valid values: `true`, `false`.</li>
<li>CategoryType- string - Required: No - Sub-type of the vulnerability</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ContainerName- string - Required: No - Container name</li>
<li>ComponentName- string - Required: No - Component name</li>
<li>ComponentVersion- string - Required: No - Component version</li>
<li>Name- string - Required: No - Vulnerability name</li>
<li>FocusOnType - string - Required: No - Urgency. Valid values: `ALL` (all); `SERIOUS_LEVEL (critical and high risks); `IS_SUGGEST` (high-priority); `POC_EXP` (POC/EXP); `NETWORK_EXP` (remote EXP).</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeVulScanInfo request structure.
 * @class
 */
class DescribeVulScanInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the task to scan local images for vulnerabilities. If it is not specified, the ID of the last scan will be returned.
         * @type {number || null}
         */
        this.LocalTaskID = null;

        /**
         * ID of the task to scan repository images for vulnerabilities. If it is not specified, the ID of the last scan will be returned.
         * @type {number || null}
         */
        this.RegistryTaskID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LocalTaskID = 'LocalTaskID' in params ? params.LocalTaskID : null;
        this.RegistryTaskID = 'RegistryTaskID' in params ? params.RegistryTaskID : null;

    }
}

/**
 * DescribeRiskSyscallDetail request structure.
 * @class
 */
class DescribeRiskSyscallDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.EventId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

    }
}

/**
 * ScanComplianceAssetsByPolicyItem request structure.
 * @class
 */
class ScanComplianceAssetsByPolicyItemRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the specified check item
         * @type {number || null}
         */
        this.CustomerPolicyItemId = null;

        /**
         * List of IDs of customer assets to be scanned again
         * @type {Array.<number> || null}
         */
        this.CustomerAssetIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemId = 'CustomerPolicyItemId' in params ? params.CustomerPolicyItemId : null;
        this.CustomerAssetIdSet = 'CustomerAssetIdSet' in params ? params.CustomerAssetIdSet : null;

    }
}

/**
 * DescribeAbnormalProcessRules request structure.
 * @class
 */
class DescribeAbnormalProcessRulesRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeAssetImageRegistryList response structure.
 * @class
 */
class DescribeAssetImageRegistryListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of image repositories
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ImageRepoInfo> || null}
         */
        this.List = null;

        /**
         * Total number
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageRepoInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVirusAutoIsolateSampleDetail request structure.
 * @class
 */
class DescribeVirusAutoIsolateSampleDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * MD5 checksum of the file
         * @type {string || null}
         */
        this.MD5 = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MD5 = 'MD5' in params ? params.MD5 : null;

    }
}

/**
 * DescribeAssetImageVirusList response structure.
 * @class
 */
class DescribeAssetImageVirusListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of viruses in the image
         * @type {Array.<ImageVirusInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Virus scanning status
`0`: Not scanned.
`1`: Scanning.
`2`: Scanned.
`3`: Scan error.
`4`: Scan canceled.
         * @type {number || null}
         */
        this.VirusScanStatus = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageVirusInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.VirusScanStatus = 'VirusScanStatus' in params ? params.VirusScanStatus : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteComplianceAssetPolicySetFromWhitelist response structure.
 * @class
 */
class DeleteComplianceAssetPolicySetFromWhitelistResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeK8sApiAbnormalSummary response structure.
 * @class
 */
class DescribeK8sApiAbnormalSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The number of pending events
         * @type {number || null}
         */
        this.UnhandleEventCount = null;

        /**
         * The number of pending high-risk events
         * @type {number || null}
         */
        this.UnhandleHighLevelEventCount = null;

        /**
         * The number of pending medium-risk events
         * @type {number || null}
         */
        this.UnhandleMediumLevelEventCount = null;

        /**
         * The number of pending low-risk events
         * @type {number || null}
         */
        this.UnhandleLowLevelEventCount = null;

        /**
         * The number of pending notice-level events
         * @type {number || null}
         */
        this.UnhandleNoticeLevelEventCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UnhandleEventCount = 'UnhandleEventCount' in params ? params.UnhandleEventCount : null;
        this.UnhandleHighLevelEventCount = 'UnhandleHighLevelEventCount' in params ? params.UnhandleHighLevelEventCount : null;
        this.UnhandleMediumLevelEventCount = 'UnhandleMediumLevelEventCount' in params ? params.UnhandleMediumLevelEventCount : null;
        this.UnhandleLowLevelEventCount = 'UnhandleLowLevelEventCount' in params ? params.UnhandleLowLevelEventCount : null;
        this.UnhandleNoticeLevelEventCount = 'UnhandleNoticeLevelEventCount' in params ? params.UnhandleNoticeLevelEventCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogJoinTypeList response structure.
 * @class
 */
class DescribeSecLogJoinTypeListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of log access types
         * @type {Array.<SecLogJoinInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new SecLogJoinInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetSyncLastTime response structure.
 * @class
 */
class DescribeAssetSyncLastTimeResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Last asset sync time
         * @type {string || null}
         */
        this.AssetSyncLastTime = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetSyncLastTime = 'AssetSyncLastTime' in params ? params.AssetSyncLastTime : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateAssetImageScanSetting request structure.
 * @class
 */
class CreateAssetImageScanSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Switch
         * @type {boolean || null}
         */
        this.Enable = null;

        /**
         * Scan time
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Scan cycle
         * @type {number || null}
         */
        this.ScanPeriod = null;

        /**
         * Trojan scan
         * @type {boolean || null}
         */
        this.ScanVirus = null;

        /**
         * Sensitive data scan
         * @type {boolean || null}
         */
        this.ScanRisk = null;

        /**
         * Vulnerability scan
         * @type {boolean || null}
         */
        this.ScanVul = null;

        /**
         * All images
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * Custom image
         * @type {Array.<string> || null}
         */
        this.Images = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Enable = 'Enable' in params ? params.Enable : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.ScanPeriod = 'ScanPeriod' in params ? params.ScanPeriod : null;
        this.ScanVirus = 'ScanVirus' in params ? params.ScanVirus : null;
        this.ScanRisk = 'ScanRisk' in params ? params.ScanRisk : null;
        this.ScanVul = 'ScanVul' in params ? params.ScanVul : null;
        this.All = 'All' in params ? params.All : null;
        this.Images = 'Images' in params ? params.Images : null;

    }
}

/**
 * Escape allowlist
 * @class
 */
class EscapeWhiteListInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Allowed item ID
         * @type {number || null}
         */
        this.ID = null;

        /**
         * Number of associated servers
         * @type {number || null}
         */
        this.HostCount = null;

        /**
         * Number of associated containers
         * @type {number || null}
         */
        this.ContainerCount = null;

        /**
         * Allowed event type
         * @type {Array.<string> || null}
         */
        this.EventType = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.InsertTime = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.ImageSize = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ID = 'ID' in params ? params.ID : null;
        this.HostCount = 'HostCount' in params ? params.HostCount : null;
        this.ContainerCount = 'ContainerCount' in params ? params.ContainerCount : null;
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.InsertTime = 'InsertTime' in params ? params.InsertTime : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.ImageSize = 'ImageSize' in params ? params.ImageSize : null;

    }
}

/**
 * CreateNetworkFirewallUndoPublish response structure.
 * @class
 */
class CreateNetworkFirewallUndoPublishResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeIndexList response structure.
 * @class
 */
class DescribeIndexListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ES index information
         * @type {string || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Data = 'Data' in params ? params.Data : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyVulDefenceSetting request structure.
 * @class
 */
class ModifyVulDefenceSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether it is enabled. Valid values: `0` (disabled); `1` (enabled).
         * @type {number || null}
         */
        this.IsEnabled = null;

        /**
         * Servers to enable exploit prevention. Values: `0` (custom); `1` (all).
         * @type {number || null}
         */
        this.Scope = null;

        /**
         * Specified servers with exploit prevention enabled
         * @type {Array.<string> || null}
         */
        this.HostIDs = null;

        /**
         * Super nodes to enable exploit prevention. Values: `0` (custom); `1` (all).
         * @type {number || null}
         */
        this.SuperScope = null;

        /**
         * List of super node IDs
         * @type {Array.<string> || null}
         */
        this.NodeIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsEnabled = 'IsEnabled' in params ? params.IsEnabled : null;
        this.Scope = 'Scope' in params ? params.Scope : null;
        this.HostIDs = 'HostIDs' in params ? params.HostIDs : null;
        this.SuperScope = 'SuperScope' in params ? params.SuperScope : null;
        this.NodeIds = 'NodeIds' in params ? params.NodeIds : null;

    }
}

/**
 * DescribeAssetSummary response structure.
 * @class
 */
class DescribeAssetSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of applications
         * @type {number || null}
         */
        this.AppCnt = null;

        /**
         * Number of containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * Number of paused containers
         * @type {number || null}
         */
        this.ContainerPause = null;

        /**
         * Number of running containers
         * @type {number || null}
         */
        this.ContainerRunning = null;

        /**
         * Number of stopped containers
         * @type {number || null}
         */
        this.ContainerStop = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Number of databases
         * @type {number || null}
         */
        this.DbCnt = null;

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageCnt = null;

        /**
         * Number of online servers
         * @type {number || null}
         */
        this.HostOnline = null;

        /**
         * Number of servers
         * @type {number || null}
         */
        this.HostCnt = null;

        /**
         * Number of images at risk
         * @type {number || null}
         */
        this.ImageHasRiskInfoCnt = null;

        /**
         * Number of images with viruses
         * @type {number || null}
         */
        this.ImageHasVirusCnt = null;

        /**
         * Number of images with vulnerabilities
         * @type {number || null}
         */
        this.ImageHasVulsCnt = null;

        /**
         * Number of untrusted images
         * @type {number || null}
         */
        this.ImageUntrustCnt = null;

        /**
         * Number of listened ports
         * @type {number || null}
         */
        this.ListenPortCnt = null;

        /**
         * Number of processes
         * @type {number || null}
         */
        this.ProcessCnt = null;

        /**
         * Number of web services
         * @type {number || null}
         */
        this.WebServiceCnt = null;

        /**
         * Last image scan time
         * @type {string || null}
         */
        this.LatestImageScanTime = null;

        /**
         * Number of images at risk
         * @type {number || null}
         */
        this.ImageUnsafeCnt = null;

        /**
         * Number of servers not installed with the agent
         * @type {number || null}
         */
        this.HostUnInstallCnt = null;

        /**
         * Number of super nodes
         * @type {number || null}
         */
        this.SuperNodeCnt = null;

        /**
         * Number of running super nodes
         * @type {number || null}
         */
        this.SuperNodeRunningCnt = null;

        /**
         * 
         * @type {number || null}
         */
        this.TodayNewImageCnt = null;

        /**
         * 
         * @type {number || null}
         */
        this.TodayUnsafeImageCnt = null;

        /**
         * 
         * @type {number || null}
         */
        this.RecommendedFixImageCnt = null;

        /**
         * 
         * @type {number || null}
         */
        this.ScannedImageCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AppCnt = 'AppCnt' in params ? params.AppCnt : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.ContainerPause = 'ContainerPause' in params ? params.ContainerPause : null;
        this.ContainerRunning = 'ContainerRunning' in params ? params.ContainerRunning : null;
        this.ContainerStop = 'ContainerStop' in params ? params.ContainerStop : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.DbCnt = 'DbCnt' in params ? params.DbCnt : null;
        this.ImageCnt = 'ImageCnt' in params ? params.ImageCnt : null;
        this.HostOnline = 'HostOnline' in params ? params.HostOnline : null;
        this.HostCnt = 'HostCnt' in params ? params.HostCnt : null;
        this.ImageHasRiskInfoCnt = 'ImageHasRiskInfoCnt' in params ? params.ImageHasRiskInfoCnt : null;
        this.ImageHasVirusCnt = 'ImageHasVirusCnt' in params ? params.ImageHasVirusCnt : null;
        this.ImageHasVulsCnt = 'ImageHasVulsCnt' in params ? params.ImageHasVulsCnt : null;
        this.ImageUntrustCnt = 'ImageUntrustCnt' in params ? params.ImageUntrustCnt : null;
        this.ListenPortCnt = 'ListenPortCnt' in params ? params.ListenPortCnt : null;
        this.ProcessCnt = 'ProcessCnt' in params ? params.ProcessCnt : null;
        this.WebServiceCnt = 'WebServiceCnt' in params ? params.WebServiceCnt : null;
        this.LatestImageScanTime = 'LatestImageScanTime' in params ? params.LatestImageScanTime : null;
        this.ImageUnsafeCnt = 'ImageUnsafeCnt' in params ? params.ImageUnsafeCnt : null;
        this.HostUnInstallCnt = 'HostUnInstallCnt' in params ? params.HostUnInstallCnt : null;
        this.SuperNodeCnt = 'SuperNodeCnt' in params ? params.SuperNodeCnt : null;
        this.SuperNodeRunningCnt = 'SuperNodeRunningCnt' in params ? params.SuperNodeRunningCnt : null;
        this.TodayNewImageCnt = 'TodayNewImageCnt' in params ? params.TodayNewImageCnt : null;
        this.TodayUnsafeImageCnt = 'TodayUnsafeImageCnt' in params ? params.TodayUnsafeImageCnt : null;
        this.RecommendedFixImageCnt = 'RecommendedFixImageCnt' in params ? params.RecommendedFixImageCnt : null;
        this.ScannedImageCnt = 'ScannedImageCnt' in params ? params.ScannedImageCnt : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateNetworkFirewallClusterRefresh response structure.
 * @class
 */
class CreateNetworkFirewallClusterRefreshResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created cluster check task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the check task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateComponentExportJob response structure.
 * @class
 */
class CreateComponentExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeReverseShellWhiteLists response structure.
 * @class
 */
class DescribeReverseShellWhiteListsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Allowlist
         * @type {Array.<ReverseShellWhiteListBaseInfo> || null}
         */
        this.WhiteListSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.WhiteListSet) {
            this.WhiteListSet = new Array();
            for (let z in params.WhiteListSet) {
                let obj = new ReverseShellWhiteListBaseInfo();
                obj.deserialize(params.WhiteListSet[z]);
                this.WhiteListSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulContainerList request structure.
 * @class
 */
class DescribeVulContainerListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>OnlyAffectedNewestImage- Bool- Required: No - Show only vulnerabilities that affect the latest image tags</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ContainerName- String - Required: No - Container name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DeleteReverseShellEvents request structure.
 * @class
 */
class DeleteReverseShellEventsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event IDs
         * @type {Array.<string> || null}
         */
        this.EventIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIdSet = 'EventIdSet' in params ? params.EventIdSet : null;

    }
}

/**
 * CLS logset information
 * @class
 */
class ClsLogsetInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Logset ID
         * @type {string || null}
         */
        this.LogsetID = null;

        /**
         * Logset name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LogsetName = null;

        /**
         * List of CLS topics
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ClsTopicInfo> || null}
         */
        this.TopicList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LogsetID = 'LogsetID' in params ? params.LogsetID : null;
        this.LogsetName = 'LogsetName' in params ? params.LogsetName : null;

        if (params.TopicList) {
            this.TopicList = new Array();
            for (let z in params.TopicList) {
                let obj = new ClsTopicInfo();
                obj.deserialize(params.TopicList[z]);
                this.TopicList.push(obj);
            }
        }

    }
}

/**
 * ModifyEscapeEventStatus response structure.
 * @class
 */
class ModifyEscapeEventStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CheckRepeatAssetImageRegistry response structure.
 * @class
 */
class CheckRepeatAssetImageRegistryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether it is repeated
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.IsRepeat = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsRepeat = 'IsRepeat' in params ? params.IsRepeat : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Exploit prevention event details
 * @class
 */
class VulDefenceEvent extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability CVE ID
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.VulName = null;

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Intrusion status
         * @type {string || null}
         */
        this.EventType = null;

        /**
         * Attacker IP
         * @type {string || null}
         */
        this.SourceIP = null;

        /**
         * Region of the attacker IP
         * @type {string || null}
         */
        this.City = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerID = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Processing status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event ID
         * @type {number || null}
         */
        this.EventID = null;

        /**
         * First discovery time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Isolation status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Last discovery time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MergeTime = null;

        /**
         * Container status
`RUNNING`: Running.
`PAUSED`: Paused.
`STOPPED`: Stopped.
`CREATED`: Created.
`DESTROYED`: Terminated.
`RESTARTING`: Restarting.
`REMOVING`: Removing.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
	"NODE_DESTROYED"      // The node is terminated.
	"CONTAINER_EXITED"    // The container exited.
	"CONTAINER_DESTROYED" // The container was terminated.
	"SHARED_HOST"         // The container shares the network with the server.
	"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
	"UNKNOW"              // The reason is unknown.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Node QUuid/Super node ID
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.QUUID = null;

        /**
         * Server private IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * General node/Super node name
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * UID of a super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * ID of a super node
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.VulName = 'VulName' in params ? params.VulName : null;
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.SourceIP = 'SourceIP' in params ? params.SourceIP : null;
        this.City = 'City' in params ? params.City : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.ContainerID = 'ContainerID' in params ? params.ContainerID : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.EventID = 'EventID' in params ? params.EventID : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.MergeTime = 'MergeTime' in params ? params.MergeTime : null;
        this.ContainerStatus = 'ContainerStatus' in params ? params.ContainerStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.QUUID = 'QUUID' in params ? params.QUUID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;

    }
}

/**
 * DescribeAccessControlEventsExport request structure.
 * @class
 */
class DescribeAccessControlEventsExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * ExportVirusList response structure.
 * @class
 */
class ExportVirusListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteReverseShellWhiteLists response structure.
 * @class
 */
class DeleteReverseShellWhiteListsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNetworkFirewallAuditRecord response structure.
 * @class
 */
class DescribeNetworkFirewallAuditRecordResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of cluster audits
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Audit details of the cluster
         * @type {Array.<NetworkAuditRecord> || null}
         */
        this.AuditList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.AuditList) {
            this.AuditList = new Array();
            for (let z in params.AuditList) {
                let obj = new NetworkAuditRecord();
                obj.deserialize(params.AuditList[z]);
                this.AuditList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogCleanSettingInfo response structure.
 * @class
 */
class DescribeSecLogCleanSettingInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Minimum storage for triggering clearing
         * @type {number || null}
         */
        this.ReservesLimit = null;

        /**
         * Storage limit for stopping clearing
         * @type {number || null}
         */
        this.ReservesDeadline = null;

        /**
         * Storage period for triggering clearing
         * @type {number || null}
         */
        this.DayLimit = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ReservesLimit = 'ReservesLimit' in params ? params.ReservesLimit : null;
        this.ReservesDeadline = 'ReservesDeadline' in params ? params.ReservesDeadline : null;
        this.DayLimit = 'DayLimit' in params ? params.DayLimit : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * UpdateNetworkFirewallPolicyYamlDetail response structure.
 * @class
 */
class UpdateNetworkFirewallPolicyYamlDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageBindRuleInfo response structure.
 * @class
 */
class DescribeAssetImageBindRuleInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of rules bound to images
         * @type {Array.<ImagesBindRuleInfo> || null}
         */
        this.ImageBindRuleSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.ImageBindRuleSet) {
            this.ImageBindRuleSet = new Array();
            for (let z in params.ImageBindRuleSet) {
                let obj = new ImagesBindRuleInfo();
                obj.deserialize(params.ImageBindRuleSet[z]);
                this.ImageBindRuleSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeESHits request structure.
 * @class
 */
class DescribeESHitsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ES query condition in JSON
         * @type {string || null}
         */
        this.Query = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be returned. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Query = 'Query' in params ? params.Query : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

    }
}

/**
 * DescribeTcssSummary response structure.
 * @class
 */
class DescribeTcssSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of images
         * @type {number || null}
         */
        this.ImageCnt = null;

        /**
         * Number of scanned images
         * @type {number || null}
         */
        this.ScannedImageCnt = null;

        /**
         * Number of images to be scanned
         * @type {number || null}
         */
        this.UnScannedImageCnt = null;

        /**
         * Number of local images
         * @type {number || null}
         */
        this.LocalImageCnt = null;

        /**
         * Number of repository images
         * @type {number || null}
         */
        this.RepositoryImageCnt = null;

        /**
         * Number of local images at risk
         * @type {number || null}
         */
        this.RiskLocalImageCnt = null;

        /**
         * Number of repository images at risk
         * @type {number || null}
         */
        this.RiskRepositoryImageCnt = null;

        /**
         * Number of containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * Number of containers at risk
         * @type {number || null}
         */
        this.RiskContainerCnt = null;

        /**
         * Number of clusters
         * @type {number || null}
         */
        this.ClusterCnt = null;

        /**
         * Number of clusters at risk
         * @type {number || null}
         */
        this.RiskClusterCnt = null;

        /**
         * Number of vulnerabilities to be scanned
         * @type {number || null}
         */
        this.UnScannedVulCnt = null;

        /**
         * Number of risk vulnerabilities
         * @type {number || null}
         */
        this.RiskVulCnt = null;

        /**
         * Number of security baseline items to be scanned
         * @type {number || null}
         */
        this.UnScannedBaseLineCnt = null;

        /**
         * Number of security baseline risks
         * @type {number || null}
         */
        this.RiskBaseLineCnt = null;

        /**
         * Number of pending (high-risk) events at runtime
         * @type {number || null}
         */
        this.RuntimeUnhandleEventCnt = null;

        /**
         * Number of clusters to be scanned
         * @type {number || null}
         */
        this.UnScannedClusterCnt = null;

        /**
         * Whether images are scanned
         * @type {boolean || null}
         */
        this.ScanImageStatus = null;

        /**
         * Whether clusters are scanned
         * @type {boolean || null}
         */
        this.ScanClusterStatus = null;

        /**
         * Whether baseline items are scanned
         * @type {boolean || null}
         */
        this.ScanBaseLineStatus = null;

        /**
         * Whether vulnerabilities are scanned for
         * @type {boolean || null}
         */
        this.ScanVulStatus = null;

        /**
         * Number of images affected by vulnerabilities
         * @type {number || null}
         */
        this.VulRiskImageCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageCnt = 'ImageCnt' in params ? params.ImageCnt : null;
        this.ScannedImageCnt = 'ScannedImageCnt' in params ? params.ScannedImageCnt : null;
        this.UnScannedImageCnt = 'UnScannedImageCnt' in params ? params.UnScannedImageCnt : null;
        this.LocalImageCnt = 'LocalImageCnt' in params ? params.LocalImageCnt : null;
        this.RepositoryImageCnt = 'RepositoryImageCnt' in params ? params.RepositoryImageCnt : null;
        this.RiskLocalImageCnt = 'RiskLocalImageCnt' in params ? params.RiskLocalImageCnt : null;
        this.RiskRepositoryImageCnt = 'RiskRepositoryImageCnt' in params ? params.RiskRepositoryImageCnt : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.RiskContainerCnt = 'RiskContainerCnt' in params ? params.RiskContainerCnt : null;
        this.ClusterCnt = 'ClusterCnt' in params ? params.ClusterCnt : null;
        this.RiskClusterCnt = 'RiskClusterCnt' in params ? params.RiskClusterCnt : null;
        this.UnScannedVulCnt = 'UnScannedVulCnt' in params ? params.UnScannedVulCnt : null;
        this.RiskVulCnt = 'RiskVulCnt' in params ? params.RiskVulCnt : null;
        this.UnScannedBaseLineCnt = 'UnScannedBaseLineCnt' in params ? params.UnScannedBaseLineCnt : null;
        this.RiskBaseLineCnt = 'RiskBaseLineCnt' in params ? params.RiskBaseLineCnt : null;
        this.RuntimeUnhandleEventCnt = 'RuntimeUnhandleEventCnt' in params ? params.RuntimeUnhandleEventCnt : null;
        this.UnScannedClusterCnt = 'UnScannedClusterCnt' in params ? params.UnScannedClusterCnt : null;
        this.ScanImageStatus = 'ScanImageStatus' in params ? params.ScanImageStatus : null;
        this.ScanClusterStatus = 'ScanClusterStatus' in params ? params.ScanClusterStatus : null;
        this.ScanBaseLineStatus = 'ScanBaseLineStatus' in params ? params.ScanBaseLineStatus : null;
        this.ScanVulStatus = 'ScanVulStatus' in params ? params.ScanVulStatus : null;
        this.VulRiskImageCnt = 'VulRiskImageCnt' in params ? params.VulRiskImageCnt : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteRiskSyscallEvents request structure.
 * @class
 */
class DeleteRiskSyscallEventsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event IDs
         * @type {Array.<string> || null}
         */
        this.EventIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIdSet = 'EventIdSet' in params ? params.EventIdSet : null;

    }
}

/**
 * DescribeAssetContainerList request structure.
 * @class
 */
class DescribeAssetContainerListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter condition
<li>`ContainerName`: String - Required: No - Container name</li>
<li>`Status` - String - Required: No - Container status. Values: `0` (created); `1` (running); `2` (paused); `3` (restarting); `4` (removing); `5` (exited); `6` (dead).</li>
<li>`Runas`: String - Required: No - Operator</li>
<li>`ImageName`: String - Required: No - Image name</li>
<li>`HostIP`: String - Required: No - Server IP</li>
<li>`OrderBy` - String - Required: No - Sorting field, which supports dynamic sorting by `cpu_usage` or `mem_usage` such as ["cpu_usage","+"]. '+' indicates ascending, and '-' indicates descending.</li>
<li>`NetStatus`: String - Required: No - Container network status. Values: `normal`, `isolated`, `isolating`, `isolate_failed`, `restoring`, `restore_failed`.</li>
<li>`PodID`: String - Required: No- Pod ID </li>
<li>`NodeUniqueID`: String - Required: No - Super Node</li>
<li>`PodUid`: String - Required: No - Pod</li>
<li>`PodIP`: String - Required: No - Pod IP</li>
<li>`NodeType`: String - Required: No - Values: `NORMAL` (general nodes), `SUPER` (super nodes)</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeEscapeSafeState response structure.
 * @class
 */
class DescribeEscapeSafeStateResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Valid values: `Unsafe` (at risk); `Safe` (no risks); `UnKnown` (unknown risks).
         * @type {string || null}
         */
        this.IsSafe = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsSafe = 'IsSafe' in params ? params.IsSafe : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeImageRiskSummary request structure.
 * @class
 */
class DescribeImageRiskSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * CreateDefenceVulExportJob response structure.
 * @class
 */
class CreateDefenceVulExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * StopVirusScanTask request structure.
 * @class
 */
class StopVirusScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskId = null;

        /**
         * ID of the container to be stopped. If it is left empty, the entire task will be stopped.
         * @type {Array.<string> || null}
         */
        this.ContainerIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.ContainerIds = 'ContainerIds' in params ? params.ContainerIds : null;

    }
}

/**
 * Runtime security - Abnormal process detection policy
 * @class
 */
class AbnormalProcessRuleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Valid values: `true` (enabled); `false` (disabled).
         * @type {boolean || null}
         */
        this.IsEnable = null;

        /**
         * IDs of associated images. An empty array indicates all images.
         * @type {Array.<string> || null}
         */
        this.ImageIds = null;

        /**
         * Array of sub-policies of the user policy
         * @type {Array.<AbnormalProcessChildRuleInfo> || null}
         */
        this.ChildRules = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * Policy ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Array of sub-policies of the preset policy
         * @type {Array.<AbnormalProcessSystemChildRuleInfo> || null}
         */
        this.SystemChildRules = null;

        /**
         * Whether it is the default preset policy
         * @type {boolean || null}
         */
        this.IsDefault = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;
        this.ImageIds = 'ImageIds' in params ? params.ImageIds : null;

        if (params.ChildRules) {
            this.ChildRules = new Array();
            for (let z in params.ChildRules) {
                let obj = new AbnormalProcessChildRuleInfo();
                obj.deserialize(params.ChildRules[z]);
                this.ChildRules.push(obj);
            }
        }
        this.RuleName = 'RuleName' in params ? params.RuleName : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;

        if (params.SystemChildRules) {
            this.SystemChildRules = new Array();
            for (let z in params.SystemChildRules) {
                let obj = new AbnormalProcessSystemChildRuleInfo();
                obj.deserialize(params.SystemChildRules[z]);
                this.SystemChildRules.push(obj);
            }
        }
        this.IsDefault = 'IsDefault' in params ? params.IsDefault : null;

    }
}

/**
 * ScanComplianceAssetsByPolicyItem response structure.
 * @class
 */
class ScanComplianceAssetsByPolicyItemResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of another check task
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateRiskDnsEventExportJob request structure.
 * @class
 */
class CreateRiskDnsEventExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filters.
<li>`EventStatus` - String - Optional - Event status. Values: `EVENT_UNDEAL` (Pending); `EVENT_DEALED` (Handled); `EVENT_IGNORE` (Ignored); `EVENT_ADD_WHITE` (Added to the allowlist)</li>
<li>`ContainerStatus` - String - Optional - Container running status. `CREATED`, `RUNNING`, `PAUSED`, `STOPPED`, `RESTARTING`: `REMOVING`, `DESTROYED (Terminated)</li>
<li>`ContainerNetStatus` - String - Optional - Container network status. Values: `NORMAL`, `ISOLATED`, `ISOLATE_FAILED` (Isolation failed`; `RESTORE_FAILED` (Failed to restore from isolation), `RESTORING` (Restoring); `ISOLATING`</li>
<li>`EventType` - String - Optional - Event type. Values: `DOMAIN` (Malicious domain); `IP` (Malicious IP)</li>
<li>`TimeRange` - String - Optional - Time range, where the first value represents the start time and the second value represents the end time</li>
<li>`RiskDns` - String - Optional - Malicious domain. </li>
<li>`RiskIP`- String - Optional - Malicious IP. </li>
<li>`ContainerName` - String - Optional - Container name. </li>
<li>`ContainerID` - String - Optional - Container ID. </li>
<li>`ImageName` - String - Optional - Image name. </li>
<li>`ImageID` - String - Optional - Image ID. </li>
<li>`HostName` - String - Optional - Server name. </li>
<li>`HostIP` - String - Optional - Private IP. </li>
<li>`PublicIP` - String - Optional - Public IP. </li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * The number of results displayed per page. The maximum value is 100,000.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: 0
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sort order: `asc`, `desc`
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field: Number of events: EventCount
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * Allowed item
 * @class
 */
class ComplianceWhitelistItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Allowed item ID
         * @type {number || null}
         */
        this.WhitelistItemId = null;

        /**
         * ID of the customer check item
         * @type {number || null}
         */
        this.CustomerPolicyItemId = null;

        /**
         * Check item name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Compliance standard name
         * @type {string || null}
         */
        this.StandardName = null;

        /**
         * Compliance standard ID
         * @type {number || null}
         */
        this.StandardId = null;

        /**
         * Number of assets affected by the check item
         * @type {number || null}
         */
        this.AffectedAssetCount = null;

        /**
         * Last update time
         * @type {string || null}
         */
        this.LastUpdateTime = null;

        /**
         * Allowed time
         * @type {string || null}
         */
        this.InsertTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.WhitelistItemId = 'WhitelistItemId' in params ? params.WhitelistItemId : null;
        this.CustomerPolicyItemId = 'CustomerPolicyItemId' in params ? params.CustomerPolicyItemId : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.StandardName = 'StandardName' in params ? params.StandardName : null;
        this.StandardId = 'StandardId' in params ? params.StandardId : null;
        this.AffectedAssetCount = 'AffectedAssetCount' in params ? params.AffectedAssetCount : null;
        this.LastUpdateTime = 'LastUpdateTime' in params ? params.LastUpdateTime : null;
        this.InsertTime = 'InsertTime' in params ? params.InsertTime : null;

    }
}

/**
 * DescribeAssetPortList request structure.
 * @class
 */
class DescribeAssetPortListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>All - String - Required: No - Optional field for the fuzzy query</li>
<li>RunAs - String - Required: No - Operator</li>
<li>ContainerID - String - Required: No - Container ID</li>
<li>HostID- String - Required: Yes - Server ID</li>
<li>HostIP- string - Required: No - Server IP</li>
<li>ProcessName- string - Required: No - Process name</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeComplianceTaskPolicyItemSummaryList response structure.
 * @class
 */
class DescribeComplianceTaskPolicyItemSummaryListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the last compliance check task, which is the source of the displayed data.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Total number of check items
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of the aggregated information of each check item
         * @type {Array.<CompliancePolicyItemSummary> || null}
         */
        this.PolicyItemSummaryList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.PolicyItemSummaryList) {
            this.PolicyItemSummaryList = new Array();
            for (let z in params.PolicyItemSummaryList) {
                let obj = new CompliancePolicyItemSummary();
                obj.deserialize(params.PolicyItemSummaryList[z]);
                this.PolicyItemSummaryList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Container asset details
 * @class
 */
class ComplianceContainerDetailInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Container ID on the server
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Pod name of the container
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PodName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.PodName = 'PodName' in params ? params.PodName : null;

    }
}

/**
 * DescribeReverseShellEvents request structure.
 * @class
 */
class DescribeReverseShellEventsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameters
`InnerNetAlarmShow` - int - Required: Values: `1` (show private network alert); `0` (do not show)
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * AddNetworkFirewallPolicyDetail response structure.
 * @class
 */
class AddNetworkFirewallPolicyDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNetworkFirewallPolicyStatus request structure.
 * @class
 */
class DescribeNetworkFirewallPolicyStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {number || null}
         */
        this.TaskId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;

    }
}

/**
 * DescribeSecLogKafkaUIN response structure.
 * @class
 */
class DescribeSecLogKafkaUINResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Target UIN
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DstUIN = null;

        /**
         * Licensing status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.Status = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DstUIN = 'DstUIN' in params ? params.DstUIN : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAbnormalProcessRuleDetail request structure.
 * @class
 */
class DescribeAbnormalProcessRuleDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique policy ID
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Image ID, which is used when an image is added to the allowlist.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

    }
}

/**
 * DescribeLogStorageStatistic request structure.
 * @class
 */
class DescribeLogStorageStatisticRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * List of trojans at runtime
 * @class
 */
class VirusInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filename
         * @type {string || null}
         */
        this.FileName = null;

        /**
         * File path
         * @type {string || null}
         */
        this.FilePath = null;

        /**
         * Virus name
         * @type {string || null}
         */
        this.VirusName = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.ModifyTime = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Container status
`RUNNING`: Running.
`PAUSED`: Paused.
`STOPPED`: Stopped.
`CREATED`: Created.
`DESTROYED`: Terminated.
`RESTARTING`: Restarting.
`REMOVING`: Removing.
         * @type {string || null}
         */
        this.ContainerStatus = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * `DEAL_NONE`: Pending.
`DEAL_IGNORE`: Ignored.
`DEAL_ADD_WHITELIST`: Allowed.
`DEAL_DEL`: Deleted.
`DEAL_ISOLATE`: Isolated.
`DEAL_ISOLATING`: Isolating.
`DEAL_ISOLATE_FAILED`: Isolation failed.
`DEAL_RECOVERING`: Recovering.
`DEAL_RECOVER_FAILED`: Recovery failed.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event ID
         * @type {string || null}
         */
        this.Id = null;

        /**
         * Event description
         * @type {string || null}
         */
        this.HarmDescribe = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.SuggestScheme = null;

        /**
         * Sub-status of the failure:
`FILE_NOT_FOUND`: The file does not exist.
`FILE_ABNORMAL`: The file is abnormal.
`FILE_ABNORMAL_DEAL_RECOVER`: The file is abnormal when recovered.
`BACKUP_FILE_NOT_FOUND`: The backup file does not exist.
`CONTAINER_NOT_FOUND_DEAL_ISOLATE`: The container does not exist during isolation.
`CONTAINER_NOT_FOUND_DEAL_RECOVER`: The container does not exist during recovery.
`TIMEOUT`: Timed out.
`TOO_MANY`: Too many tasks.
`OFFLINE`: Offline.
`INTERNAL`: Internal service error.
`VALIDATION`: Invalid parameter.
         * @type {string || null}
         */
        this.SubStatus = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
	"NODE_DESTROYED"      // The node is terminated.
	"CONTAINER_EXITED"    // The container exited.
	"CONTAINER_DESTROYED" // The container was terminated.
	"SHARED_HOST"         // The container shares the network with the server.
	"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
	"UNKNOW"              // The reason is unknown.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * MD5 checksum
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MD5 = null;

        /**
         * Risk level. Valid values: `RISK_CRITICAL`, `RISK_HIGH`, `RISK_MEDIUM`, `RISK_LOW`, `RISK_NOTICE`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Check platform
`1`: Tencent Cloud Security Engine.
`2`: tav.
`3`: binaryAi.
`4`: Unusual behavior.
`5`: Threat intelligence.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.CheckPlatform = null;

        /**
         * Node ID.
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod (instance) name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * ID of the cluster where the node resides
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Public IP of the node
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Node private IP
         * @type {string || null}
         */
        this.InnerIP = null;

        /**
         * UID of the node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * ID for the general node
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.FileName = 'FileName' in params ? params.FileName : null;
        this.FilePath = 'FilePath' in params ? params.FilePath : null;
        this.VirusName = 'VirusName' in params ? params.VirusName : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.ModifyTime = 'ModifyTime' in params ? params.ModifyTime : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.ContainerStatus = 'ContainerStatus' in params ? params.ContainerStatus : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.HarmDescribe = 'HarmDescribe' in params ? params.HarmDescribe : null;
        this.SuggestScheme = 'SuggestScheme' in params ? params.SuggestScheme : null;
        this.SubStatus = 'SubStatus' in params ? params.SubStatus : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.MD5 = 'MD5' in params ? params.MD5 : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.CheckPlatform = 'CheckPlatform' in params ? params.CheckPlatform : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.InnerIP = 'InnerIP' in params ? params.InnerIP : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;

    }
}

/**
 * DescribeVulIgnoreRegistryImageList request structure.
 * @class
 */
class DescribeVulIgnoreRegistryImageListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

    }
}

/**
 * AddEditImageAutoAuthorizedRule response structure.
 * @class
 */
class AddEditImageAutoAuthorizedRuleResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Input parameters for a cluster check task
 * @class
 */
class ClusterCheckTaskItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the specified cluster to be scanned
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Cluster region
         * @type {string || null}
         */
        this.ClusterRegion = null;

        /**
         * IP of the specified node to be scanned
         * @type {string || null}
         */
        this.NodeIp = null;

        /**
         * Name of the specified workload to be scanned
         * @type {string || null}
         */
        this.WorkloadName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.ClusterRegion = 'ClusterRegion' in params ? params.ClusterRegion : null;
        this.NodeIp = 'NodeIp' in params ? params.NodeIp : null;
        this.WorkloadName = 'WorkloadName' in params ? params.WorkloadName : null;

    }
}

/**
 * DescribeVirusAutoIsolateSampleList request structure.
 * @class
 */
class DescribeVirusAutoIsolateSampleListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filters.
<li>`MD5` - String - Optional - md5</li>
<li>`AutoIsolateSwitch` - String - Optional - Automatic isolation switch</li>
<li>`VirusName` - String - Optional - Virus name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * ModifySecLogJoinObjects response structure.
 * @class
 */
class ModifySecLogJoinObjectsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAffectedClusterCount response structure.
 * @class
 */
class DescribeAffectedClusterCountResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of critical clusters
         * @type {number || null}
         */
        this.SeriousRiskClusterCount = null;

        /**
         * Number of high-risk clusters
         * @type {number || null}
         */
        this.HighRiskClusterCount = null;

        /**
         * Number of medium-risk clusters
         * @type {number || null}
         */
        this.MiddleRiskClusterCount = null;

        /**
         * Number of low-risk clusters
         * @type {number || null}
         */
        this.HintRiskClusterCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.SeriousRiskClusterCount = 'SeriousRiskClusterCount' in params ? params.SeriousRiskClusterCount : null;
        this.HighRiskClusterCount = 'HighRiskClusterCount' in params ? params.HighRiskClusterCount : null;
        this.MiddleRiskClusterCount = 'MiddleRiskClusterCount' in params ? params.MiddleRiskClusterCount : null;
        this.HintRiskClusterCount = 'HintRiskClusterCount' in params ? params.HintRiskClusterCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * RenewImageAuthorizeState request structure.
 * @class
 */
class RenewImageAuthorizeStateRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether all images are unlicensed
         * @type {boolean || null}
         */
        this.AllImages = null;

        /**
         * Image IDs
         * @type {Array.<string> || null}
         */
        this.ImageIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AllImages = 'AllImages' in params ? params.AllImages : null;
        this.ImageIds = 'ImageIds' in params ? params.ImageIds : null;

    }
}

/**
 * DescribeVirusAutoIsolateSetting request structure.
 * @class
 */
class DescribeVirusAutoIsolateSettingRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * CreateAssetImageRegistryScanTaskOneKey request structure.
 * @class
 */
class CreateAssetImageRegistryScanTaskOneKeyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to scan all images
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * List of scanned images
         * @type {Array.<ImageInfo> || null}
         */
        this.Images = null;

        /**
         * Array of scan types
         * @type {Array.<string> || null}
         */
        this.ScanType = null;

        /**
         * List of IDs of scanned images
         * @type {Array.<number> || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.All = 'All' in params ? params.All : null;

        if (params.Images) {
            this.Images = new Array();
            for (let z in params.Images) {
                let obj = new ImageInfo();
                obj.deserialize(params.Images[z]);
                this.Images.push(obj);
            }
        }
        this.ScanType = 'ScanType' in params ? params.ScanType : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * RemoveAssetImageRegistryRegistryDetail request structure.
 * @class
 */
class RemoveAssetImageRegistryRegistryDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique repository ID
         * @type {number || null}
         */
        this.RegistryId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RegistryId = 'RegistryId' in params ? params.RegistryId : null;

    }
}

/**
 * Custom rule of the network cluster policy
 * @class
 */
class NetworkCustomPolicy extends  AbstractModel {
    constructor(){
        super();

        /**
         * Network policy direction. Valid values: `FROM`, `TO`.
         * @type {string || null}
         */
        this.Direction = null;

        /**
         * Network policy port
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<NetworkPorts> || null}
         */
        this.Ports = null;

        /**
         * Network policy object

`PublishedNoConfirm`: Enabled and to be confirmed.

`PublishedConfirmed`: Enabled and confirmed.

`unPublishing`: Disabled.

`Publishing`: Enabled.

`unPublishEdit`: To be enabled.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<NetworkPeer> || null}
         */
        this.Peer = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Direction = 'Direction' in params ? params.Direction : null;

        if (params.Ports) {
            this.Ports = new Array();
            for (let z in params.Ports) {
                let obj = new NetworkPorts();
                obj.deserialize(params.Ports[z]);
                this.Ports.push(obj);
            }
        }

        if (params.Peer) {
            this.Peer = new Array();
            for (let z in params.Peer) {
                let obj = new NetworkPeer();
                obj.deserialize(params.Peer[z]);
                this.Peer.push(obj);
            }
        }

    }
}

/**
 * DeleteNetworkFirewallPolicyDetail request structure.
 * @class
 */
class DeleteNetworkFirewallPolicyDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Array of cluster IDs
         * @type {Array.<number> || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * ModifyEscapeEventStatus request structure.
 * @class
 */
class ModifyEscapeEventStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of event IDs
         * @type {Array.<string> || null}
         */
        this.EventIdSet = null;

        /**
         * Event status:
`EVENT_UNDEAL`: Pending (Unignored).
`EVENT_DEALED`: Processed.
`EVENT_IGNORE`: Ignored.
`EVENT_DELETE`: Deleted.
`EVENT_ADD_WHITE`: Allowed.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Array of allowed image IDs
         * @type {Array.<string> || null}
         */
        this.ImageIDs = null;

        /**
         * Allowed event type
   `ESCAPE_CGROUPS`: Cgroup escape.
   `ESCAPE_TAMPER_SENSITIVE_FILE`: File tamper escape.
   `ESCAPE_DOCKER_API`: Docker API access escape.
   `ESCAPE_VUL_OCCURRED`: Vulnerability exploit.
   `MOUNT_SENSITIVE_PTAH`: Sensitive path mount.
   `PRIVILEGE_CONTAINER_START`: Privileged container.
   `PRIVILEGE`: Program privilege escalation escape.
         * @type {Array.<string> || null}
         */
        this.EventType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIdSet = 'EventIdSet' in params ? params.EventIdSet : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.ImageIDs = 'ImageIDs' in params ? params.ImageIDs : null;
        this.EventType = 'EventType' in params ? params.EventType : null;

    }
}

/**
 * Information of the runtime rule bound to the image
 * @class
 */
class ImagesBindRuleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Number of associated containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * Bound rule ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Rule name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * Image size
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ImageSize = null;

        /**
         * Last scan time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.RuleName = 'RuleName' in params ? params.RuleName : null;
        this.ImageSize = 'ImageSize' in params ? params.ImageSize : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;

    }
}

/**
 * List of images associated with servers
 * @class
 */
class ImageHost extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.HostID = 'HostID' in params ? params.HostID : null;

    }
}

/**
 * AddComplianceAssetPolicySetToWhitelist response structure.
 * @class
 */
class AddComplianceAssetPolicySetToWhitelistResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeUnauthorizedCoresTendency response structure.
 * @class
 */
class DescribeUnauthorizedCoresTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trend of unlicensed cores
         * @type {Array.<UnauthorizedCoresTendency> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new UnauthorizedCoresTendency();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNetworkFirewallPolicyStatus response structure.
 * @class
 */
class DescribeNetworkFirewallPolicyStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task status. Valid values: `Task_Running`, `Task_Succ`, `Task_Error`, `Task_NoExist`.
         * @type {string || null}
         */
        this.TaskStatus = null;

        /**
         * Task result, such as `NameRepeat` and `K8sRuleIngressPortError`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.TaskResult = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskStatus = 'TaskStatus' in params ? params.TaskStatus : null;
        this.TaskResult = 'TaskResult' in params ? params.TaskResult : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetContainerList response structure.
 * @class
 */
class DescribeAssetContainerListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of containers
         * @type {Array.<ContainerInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ContainerInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyContainerNetStatus request structure.
 * @class
 */
class ModifyContainerNetStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerID = null;

        /**
         * Status
`EVENT_ISOLATE_CONTAINER`: Isolate the container.
`EVENT_RESOTRE_CONTAINER`: Recover the container.
)
         * @type {string || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerID = 'ContainerID' in params ? params.ContainerID : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * DescribeVulIgnoreLocalImageList request structure.
 * @class
 */
class DescribeVulIgnoreLocalImageListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order. Valid values: `DESC`, `ASC`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field: `ImageSize`.
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeVirusMonitorSetting response structure.
 * @class
 */
class DescribeVirusMonitorSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to enable real-time monitoring
         * @type {boolean || null}
         */
        this.EnableScan = null;

        /**
         * Scan all paths
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.ScanPathAll = null;

        /**
         * Valid when `ScanPathAll` is `true`. Valid values of `ScanPathAll`: `0` (scan the following paths); `1` (scan all paths except the following).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanPathType = null;

        /**
         * Specified path to be excluded or scanned
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.ScanPath = null;

        /**
         * Path scanning mode: 
`SCAN_PATH_ALL`: Scan all paths
`SCAN_PATH_DEFAULT`: Scan the default path
`SCAN_PATH_USER_DEFINE`: Scan the custom path

         * @type {string || null}
         */
        this.ScanPathMode = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EnableScan = 'EnableScan' in params ? params.EnableScan : null;
        this.ScanPathAll = 'ScanPathAll' in params ? params.ScanPathAll : null;
        this.ScanPathType = 'ScanPathType' in params ? params.ScanPathType : null;
        this.ScanPath = 'ScanPath' in params ? params.ScanPath : null;
        this.ScanPathMode = 'ScanPathMode' in params ? params.ScanPathMode : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSystemVulList request structure.
 * @class
 */
class DescribeSystemVulListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>OnlyAffectedContainer- string - Required: No - Show only vulnerabilities that affect containers. Valid values: `true`, `false`.</li>
<li>OnlyAffectedNewestImage-string - Required: No - Show only vulnerabilities that affect the latest image tags. Valid values: `true`, `false`.</li>
<li>Level- String - Required: No - Severity. Valid values: `CRITICAL` (critical); `HIGH` (high); `MIDDLE` (medium); `LOW` (low).</li>
<li>Tags- string - Required: No - Vulnerability tag. Valid values: `POC`, `EXP`.</li>
<li>CanBeFixed- string - Required: No - Whether the vulnerability can be fixed. Valid values: `true`, `false`.</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ContainerName- string - Required: No - Container name</li>
<li>ComponentName- string - Required: No - Component name</li>
<li>ComponentVersion- string - Required: No - Component version</li>
<li>Name- string - Required: No - Vulnerability name</li>
<li>FocusOnType - string - Required: No - Urgency. Valid values: `ALL` (all); `SERIOUS_LEVEL (critical and high risks); `IS_SUGGEST` (high-priority); `POC_EXP` (POC/EXP); `NETWORK_EXP` (remote EXP).</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeContainerSecEventSummary request structure.
 * @class
 */
class DescribeContainerSecEventSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAssetImageRegistrySummary response structure.
 * @class
 */
class DescribeAssetImageRegistrySummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogCleanSettingInfo request structure.
 * @class
 */
class DescribeSecLogCleanSettingInfoRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeVulScanAuthorizedImageSummary response structure.
 * @class
 */
class DescribeVulScanAuthorizedImageSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of all licensed local images
         * @type {number || null}
         */
        this.AllAuthorizedImageCount = null;

        /**
         * Number of licensed but not scanned local images
         * @type {number || null}
         */
        this.UnScanAuthorizedImageCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AllAuthorizedImageCount = 'AllAuthorizedImageCount' in params ? params.AllAuthorizedImageCount : null;
        this.UnScanAuthorizedImageCount = 'UnScanAuthorizedImageCount' in params ? params.UnScanAuthorizedImageCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeImageAuthorizedInfo response structure.
 * @class
 */
class DescribeImageAuthorizedInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of valid image licenses
         * @type {number || null}
         */
        this.TotalAuthorizedCnt = null;

        /**
         * Number of used image licenses
         * @type {number || null}
         */
        this.UsedAuthorizedCnt = null;

        /**
         * Number of images with scan enabled
         * @type {number || null}
         */
        this.ScannedImageCnt = null;

        /**
         * Number of images with scan not enabled
         * @type {number || null}
         */
        this.NotScannedImageCnt = null;

        /**
         * Number of local images with scan not enabled
         * @type {number || null}
         */
        this.NotScannedLocalImageCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalAuthorizedCnt = 'TotalAuthorizedCnt' in params ? params.TotalAuthorizedCnt : null;
        this.UsedAuthorizedCnt = 'UsedAuthorizedCnt' in params ? params.UsedAuthorizedCnt : null;
        this.ScannedImageCnt = 'ScannedImageCnt' in params ? params.ScannedImageCnt : null;
        this.NotScannedImageCnt = 'NotScannedImageCnt' in params ? params.NotScannedImageCnt : null;
        this.NotScannedLocalImageCnt = 'NotScannedLocalImageCnt' in params ? params.NotScannedLocalImageCnt : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAbnormalProcessEvents request structure.
 * @class
 */
class DescribeAbnormalProcessEventsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * ModifyAbnormalProcessRuleStatus response structure.
 * @class
 */
class ModifyAbnormalProcessRuleStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVirusList request structure.
 * @class
 */
class DescribeVirusListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>FileName - String - Required: No - Filename</li>
<li>FilePath - String - Required: No - File path</li>
<li>VirusName - String - Required: No - Virus name</li>
<li>ContainerName- String - Required: Yes - Container name</li>
<li>ContainerId- string - Required: No - Container ID</li>
<li>ImageName- string - Required: No - Image name</li>
<li>ImageId- string - Required: No - Image ID</li>
<li>IsRealTime- int - Required: No - Whether it is real-time monitoring data</li>
<li>TaskId- string - Required: No - Task ID</li>
<li>ContainerNetStatus - String - Required: No - Container network status. Valid values: `NORMAL`, `ISOLATED`, `ISOLATING`, `RESTORING`, `RESTORE_FAILED`.</li>
<li>TimeRange - string - Required: No - Time range ["2022-03-31 16:55:00", "2022-03-31 17:00:00"]</li>
<li>ContainerStatus - string - Required: No - Container status. Valid values: `RUNNING`, `PAUSED`, `STOPPED`, `CREATED`, `DESTROYED`, `RESTARTING`, `REMOVING`.</li>
<li>AutoIsolateMode - string - Required: No - Isolation method. Valid values: `MANUAL`, `AUTO`.</li>
<li>MD5 - string - Required: No - MD5</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeComplianceAssetList request structure.
 * @class
 */
class DescribeComplianceAssetListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of asset types
         * @type {Array.<string> || null}
         */
        this.AssetTypeSet = null;

        /**
         * Initial offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Query filter
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetTypeSet = 'AssetTypeSet' in params ? params.AssetTypeSet : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * ModifyVirusScanSetting response structure.
 * @class
 */
class ModifyVirusScanSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Vulnerability in the image
 * @class
 */
class ImagesVul extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability ID
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Component
         * @type {string || null}
         */
        this.Component = null;

        /**
         * Version
         * @type {string || null}
         */
        this.Version = null;

        /**
         * Category
         * @type {string || null}
         */
        this.Category = null;

        /**
         * Category 2
         * @type {string || null}
         */
        this.CategoryType = null;

        /**
         * Risk level
         * @type {number || null}
         */
        this.Level = null;

        /**
         * Description
         * @type {string || null}
         */
        this.Des = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.OfficialSolution = null;

        /**
         * Reference
         * @type {string || null}
         */
        this.Reference = null;

        /**
         * Defense solution
         * @type {string || null}
         */
        this.DefenseSolution = null;

        /**
         * Submission time
         * @type {string || null}
         */
        this.SubmitTime = null;

        /**
         * CVSS V3 score
         * @type {number || null}
         */
        this.CVSSV3Score = null;

        /**
         * CVSS V3 description
         * @type {string || null}
         */
        this.CVSSV3Desc = null;

        /**
         * Whether it is of high priority. Valid values: `true` (yes); `false` (no).
         * @type {boolean || null}
         */
        this.IsSuggest = null;

        /**
         * Number of the fixed version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FixedVersions = null;

        /**
         * Vulnerability tag. Valid values: `CanBeFixed`, `DynamicLevelPoc`, `DynamicLevelExp`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tag = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.Component = 'Component' in params ? params.Component : null;
        this.Version = 'Version' in params ? params.Version : null;
        this.Category = 'Category' in params ? params.Category : null;
        this.CategoryType = 'CategoryType' in params ? params.CategoryType : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.Des = 'Des' in params ? params.Des : null;
        this.OfficialSolution = 'OfficialSolution' in params ? params.OfficialSolution : null;
        this.Reference = 'Reference' in params ? params.Reference : null;
        this.DefenseSolution = 'DefenseSolution' in params ? params.DefenseSolution : null;
        this.SubmitTime = 'SubmitTime' in params ? params.SubmitTime : null;
        this.CVSSV3Score = 'CVSSV3Score' in params ? params.CVSSV3Score : null;
        this.CVSSV3Desc = 'CVSSV3Desc' in params ? params.CVSSV3Desc : null;
        this.IsSuggest = 'IsSuggest' in params ? params.IsSuggest : null;
        this.FixedVersions = 'FixedVersions' in params ? params.FixedVersions : null;
        this.Tag = 'Tag' in params ? params.Tag : null;

    }
}

/**
 * DescribePromotionActivity response structure.
 * @class
 */
class DescribePromotionActivityResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Promotion content
         * @type {Array.<PromotionActivityContent> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new PromotionActivityContent();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyVirusMonitorSetting request structure.
 * @class
 */
class ModifyVirusMonitorSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to enable scheduled scan
         * @type {boolean || null}
         */
        this.EnableScan = null;

        /**
         * Scan all paths
         * @type {boolean || null}
         */
        this.ScanPathAll = null;

        /**
         * Valid when `ScanPathAll` is `true`. Valid values of `ScanPathAll`: `0` (scan the following paths); `1` (scan all paths except the following; the scope cannot be greater than `1`).
         * @type {number || null}
         */
        this.ScanPathType = null;

        /**
         * Specified path to be excluded or scanned
         * @type {Array.<string> || null}
         */
        this.ScanPath = null;

        /**
         * Path scanning mode: 
`SCAN_PATH_ALL`: Scan all paths
`SCAN_PATH_DEFAULT`: Scan the default path
`SCAN_PATH_USER_DEFINE`: Scan the custom path

         * @type {string || null}
         */
        this.ScanPathMode = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EnableScan = 'EnableScan' in params ? params.EnableScan : null;
        this.ScanPathAll = 'ScanPathAll' in params ? params.ScanPathAll : null;
        this.ScanPathType = 'ScanPathType' in params ? params.ScanPathType : null;
        this.ScanPath = 'ScanPath' in params ? params.ScanPath : null;
        this.ScanPathMode = 'ScanPathMode' in params ? params.ScanPathMode : null;

    }
}

/**
 * ModifyEscapeWhiteList request structure.
 * @class
 */
class ModifyEscapeWhiteListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Allowed event type
   `ESCAPE_CGROUPS`: Cgroup escape.
   `ESCAPE_TAMPER_SENSITIVE_FILE`: File tamper escape.
   `ESCAPE_DOCKER_API`: Docker API access escape.
   `ESCAPE_VUL_OCCURRED`: Vulnerability exploit.
   `MOUNT_SENSITIVE_PTAH`: Sensitive path mount.
   `PRIVILEGE_CONTAINER_START`: Privileged container.
   `PRIVILEGE`: Program privilege escalation escape.
         * @type {Array.<string> || null}
         */
        this.EventType = null;

        /**
         * Allowed item ID
         * @type {Array.<number> || null}
         */
        this.IDSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.IDSet = 'IDSet' in params ? params.IDSet : null;

    }
}

/**
 * AddAndPublishNetworkFirewallPolicyDetail response structure.
 * @class
 */
class AddAndPublishNetworkFirewallPolicyDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSearchExportList request structure.
 * @class
 */
class DescribeSearchExportListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ES query condition in JSON
         * @type {string || null}
         */
        this.Query = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Query = 'Query' in params ? params.Query : null;

    }
}

/**
 * DescribeReverseShellWhiteListDetail request structure.
 * @class
 */
class DescribeReverseShellWhiteListDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Allowed item ID
         * @type {string || null}
         */
        this.WhiteListId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.WhiteListId = 'WhiteListId' in params ? params.WhiteListId : null;

    }
}

/**
 * AddCompliancePolicyAssetSetToWhitelist response structure.
 * @class
 */
class AddCompliancePolicyAssetSetToWhitelistResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulContainerList response structure.
 * @class
 */
class DescribeVulContainerListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of containers
         * @type {Array.<VulAffectedContainerInfo> || null}
         */
        this.List = null;

        /**
         * Total number of containers
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulAffectedContainerInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeRiskSyscallNames request structure.
 * @class
 */
class DescribeRiskSyscallNamesRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * ModifyVulDefenceEventStatus response structure.
 * @class
 */
class ModifyVulDefenceEventStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeEscapeEventInfo response structure.
 * @class
 */
class DescribeEscapeEventInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Array of escape events
         * @type {Array.<EscapeEventInfo> || null}
         */
        this.EventSet = null;

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventSet) {
            this.EventSet = new Array();
            for (let z in params.EventSet) {
                let obj = new EscapeEventInfo();
                obj.deserialize(params.EventSet[z]);
                this.EventSet.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeK8sApiAbnormalRuleInfo response structure.
 * @class
 */
class DescribeK8sApiAbnormalRuleInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule details
         * @type {K8sApiAbnormalRuleInfo || null}
         */
        this.Info = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Info) {
            let obj = new K8sApiAbnormalRuleInfo();
            obj.deserialize(params.Info)
            this.Info = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeESHits response structure.
 * @class
 */
class DescribeESHitsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ES query result in JSON
         * @type {string || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Data = 'Data' in params ? params.Data : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeImageRegistryTimingScanTask response structure.
 * @class
 */
class DescribeImageRegistryTimingScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Scheduled scan switch
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.Enable = null;

        /**
         * Scheduled scan time
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Scheduled scan interval
         * @type {number || null}
         */
        this.ScanPeriod = null;

        /**
         * Array of scan types
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.ScanType = null;

        /**
         * Scan of all images
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * Scan of specified images
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ImageInfo> || null}
         */
        this.Images = null;

        /**
         * ID of the specified image
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<number> || null}
         */
        this.Id = null;

        /**
         * Whether to scan the latest image tag
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.Latest = null;

        /**
         * 
         * @type {string || null}
         */
        this.ScanEndTime = null;

        /**
         * 
         * @type {Array.<string> || null}
         */
        this.RegistryType = null;

        /**
         * 
         * @type {boolean || null}
         */
        this.ContainerRunning = null;

        /**
         * 
         * @type {number || null}
         */
        this.ScanScope = null;

        /**
         * 
         * @type {Array.<string> || null}
         */
        this.Namespace = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Enable = 'Enable' in params ? params.Enable : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.ScanPeriod = 'ScanPeriod' in params ? params.ScanPeriod : null;
        this.ScanType = 'ScanType' in params ? params.ScanType : null;
        this.All = 'All' in params ? params.All : null;

        if (params.Images) {
            this.Images = new Array();
            for (let z in params.Images) {
                let obj = new ImageInfo();
                obj.deserialize(params.Images[z]);
                this.Images.push(obj);
            }
        }
        this.Id = 'Id' in params ? params.Id : null;
        this.Latest = 'Latest' in params ? params.Latest : null;
        this.ScanEndTime = 'ScanEndTime' in params ? params.ScanEndTime : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.ContainerRunning = 'ContainerRunning' in params ? params.ContainerRunning : null;
        this.ScanScope = 'ScanScope' in params ? params.ScanScope : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Response parameters structure of the cluster asset
 * @class
 */
class ClusterInfoItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Cluster version
         * @type {string || null}
         */
        this.ClusterVersion = null;

        /**
         * Cluster OS
         * @type {string || null}
         */
        this.ClusterOs = null;

        /**
         * Cluster type
         * @type {string || null}
         */
        this.ClusterType = null;

        /**
         * Number of nodes in the cluster
         * @type {number || null}
         */
        this.ClusterNodeNum = null;

        /**
         * Cluster region
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Status of the monitoring component. Valid values: `Defender_Uninstall`, `Defender_Normal`, `Defender_Error`, `Defender_Installing`.
         * @type {string || null}
         */
        this.DefenderStatus = null;

        /**
         * Cluster status
         * @type {string || null}
         */
        this.ClusterStatus = null;

        /**
         * Cluster check mode. Valid values: `Cluster_Normal`, `Cluster_Actived`.
         * @type {string || null}
         */
        this.ClusterCheckMode = null;

        /**
         * Whether automatic and regular check is enabled
         * @type {boolean || null}
         */
        this.ClusterAutoCheck = null;

        /**
         * Cause of the failure to deploy the defender. When it is `UserDaemonSetNotReady`, `UnreadyNodeNum` is changed to "The defenders on N nodes are ready". If it is another value, the error message is directly displayed.
         * @type {string || null}
         */
        this.DefenderErrorReason = null;

        /**
         * Number of nodes where the defender is not ready
         * @type {number || null}
         */
        this.UnreadyNodeNum = null;

        /**
         * Number of critical check items
         * @type {number || null}
         */
        this.SeriousRiskCount = null;

        /**
         * Number of high-risk check items
         * @type {number || null}
         */
        this.HighRiskCount = null;

        /**
         * Number of medium-risk check items
         * @type {number || null}
         */
        this.MiddleRiskCount = null;

        /**
         * Number of prompt-risk check items
         * @type {number || null}
         */
        this.HintRiskCount = null;

        /**
         * Check failure cause
         * @type {string || null}
         */
        this.CheckFailReason = null;

        /**
         * Check status. Valid values: `Task_Running`, `NoRisk`, `HasRisk`, `Uncheck`, `Task_Error`.
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Task creation time and check time
         * @type {string || null}
         */
        this.TaskCreateTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.ClusterVersion = 'ClusterVersion' in params ? params.ClusterVersion : null;
        this.ClusterOs = 'ClusterOs' in params ? params.ClusterOs : null;
        this.ClusterType = 'ClusterType' in params ? params.ClusterType : null;
        this.ClusterNodeNum = 'ClusterNodeNum' in params ? params.ClusterNodeNum : null;
        this.Region = 'Region' in params ? params.Region : null;
        this.DefenderStatus = 'DefenderStatus' in params ? params.DefenderStatus : null;
        this.ClusterStatus = 'ClusterStatus' in params ? params.ClusterStatus : null;
        this.ClusterCheckMode = 'ClusterCheckMode' in params ? params.ClusterCheckMode : null;
        this.ClusterAutoCheck = 'ClusterAutoCheck' in params ? params.ClusterAutoCheck : null;
        this.DefenderErrorReason = 'DefenderErrorReason' in params ? params.DefenderErrorReason : null;
        this.UnreadyNodeNum = 'UnreadyNodeNum' in params ? params.UnreadyNodeNum : null;
        this.SeriousRiskCount = 'SeriousRiskCount' in params ? params.SeriousRiskCount : null;
        this.HighRiskCount = 'HighRiskCount' in params ? params.HighRiskCount : null;
        this.MiddleRiskCount = 'MiddleRiskCount' in params ? params.MiddleRiskCount : null;
        this.HintRiskCount = 'HintRiskCount' in params ? params.HintRiskCount : null;
        this.CheckFailReason = 'CheckFailReason' in params ? params.CheckFailReason : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.TaskCreateTime = 'TaskCreateTime' in params ? params.TaskCreateTime : null;

    }
}

/**
 * DescribeComplianceScanFailedAssetList response structure.
 * @class
 */
class DescribeComplianceScanFailedAssetListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of assets that failed the check
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of aggregated information of each type of asset that failed the check
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ComplianceScanFailedAsset> || null}
         */
        this.ScanFailedAssetList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.ScanFailedAssetList) {
            this.ScanFailedAssetList = new Array();
            for (let z in params.ScanFailedAssetList) {
                let obj = new ComplianceScanFailedAsset();
                obj.deserialize(params.ScanFailedAssetList[z]);
                this.ScanFailedAssetList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyReverseShellStatus response structure.
 * @class
 */
class ModifyReverseShellStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteMachine response structure.
 * @class
 */
class DeleteMachineResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddCompliancePolicyAssetSetToWhitelist request structure.
 * @class
 */
class AddCompliancePolicyAssetSetToWhitelistRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Check item ID
         * @type {number || null}
         */
        this.CustomerPolicyItemId = null;

        /**
         * List of IDs of assets to be ignored in the specified check item
         * @type {Array.<number> || null}
         */
        this.CustomerAssetItemIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemId = 'CustomerPolicyItemId' in params ? params.CustomerPolicyItemId : null;
        this.CustomerAssetItemIdSet = 'CustomerAssetItemIdSet' in params ? params.CustomerAssetItemIdSet : null;

    }
}

/**
 * DescribeEscapeWhiteList response structure.
 * @class
 */
class DescribeEscapeWhiteListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Allowlist of escapes
         * @type {Array.<EscapeWhiteListInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new EscapeWhiteListInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageHostList request structure.
 * @class
 */
class DescribeAssetImageHostListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter. Valid values: `ImageID`, `HostID`.
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * Container runtime security - Information of the abnormal process
 * @class
 */
class AbnormalProcessEventInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Process directory
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Event type. `MALICE_PROCESS_START`: Malicious process startup.
         * @type {string || null}
         */
        this.EventType = null;

        /**
         * Name of the hit rule. Valid values: `PROXY_TOOL` (proxy); `TRANSFER_CONTROL` (lateral movement); `ATTACK_CMD` (malicious command); `REVERSE_SHELL` (reverse shell); `FILELESS` (fileless execution); `RISK_CMD` (high-risk command); `ABNORMAL_CHILD_PROC` (unusual start found in the child process of the sensitive service); `USER_DEFINED_RULE` (custom rule).
         * @type {string || null}
         */
        this.MatchRuleName = null;

        /**
         * Generation time
         * @type {string || null}
         */
        this.FoundTime = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Action execution result. `BEHAVIOR_NONE`: None.
    `BEHAVIOR_ALERT`: Alert.
    `BEHAVIOR_RELEASE`: Allow.
    `BEHAVIOR_HOLDUP_FAILED`: Failed to block.
    `BEHAVIOR_HOLDUP_SUCCESSED`: Blocked.
         * @type {string || null}
         */
        this.Behavior = null;

        /**
         * Status. `EVENT_UNDEAL`: Pending.
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.Id = null;

        /**
         * Image ID, which is used for redirect.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Container ID, which is used for redirect.
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Event solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Hit policy ID
         * @type {string || null}
         */
        this.MatchRuleId = null;

        /**
         * Action of the hit rule:
`RULE_MODE_RELEASE`: Allow.
`RULE_MODE_ALERT`: Alert.
`RULE_MODE_HOLDUP`: Block.
         * @type {string || null}
         */
        this.MatchAction = null;

        /**
         * Information of the process that hits the rule
         * @type {string || null}
         */
        this.MatchProcessPath = null;

        /**
         * Whether the rule exists
         * @type {boolean || null}
         */
        this.RuleExist = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Last generation time
         * @type {string || null}
         */
        this.LatestFoundTime = null;

        /**
         * Rule group ID
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Name of the hit policy. Valid values: `SYSTEM_DEFINED_RULE` (preset policy); name of the custom policy.
         * @type {string || null}
         */
        this.MatchGroupName = null;

        /**
         * Level of the hit rule. Valid values: `HIGH` (high); `MIDDLE` (medium); `LOW` (low).
         * @type {string || null}
         */
        this.MatchRuleLevel = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
"NODE_DESTROYED"      // The node is terminated.
"CONTAINER_EXITED"    // The container exited.
"CONTAINER_DESTROYED" // The container was terminated.
"SHARED_HOST"         // The container shares the network with the server.
"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
"UNKNOW"              // The reason is unknown.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Container status
`RUNNING`: Running.
`PAUSED`: Paused.
`STOPPED`: Stopped.
`CREATED`: Created.
`DESTROYED`: Terminated.
`RESTARTING`: Restarting.
`REMOVING`: Removing.
         * @type {string || null}
         */
        this.ContainerStatus = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * Node public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * uuid
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Private IP of the node
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.MatchRuleName = 'MatchRuleName' in params ? params.MatchRuleName : null;
        this.FoundTime = 'FoundTime' in params ? params.FoundTime : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.Behavior = 'Behavior' in params ? params.Behavior : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.MatchRuleId = 'MatchRuleId' in params ? params.MatchRuleId : null;
        this.MatchAction = 'MatchAction' in params ? params.MatchAction : null;
        this.MatchProcessPath = 'MatchProcessPath' in params ? params.MatchProcessPath : null;
        this.RuleExist = 'RuleExist' in params ? params.RuleExist : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.LatestFoundTime = 'LatestFoundTime' in params ? params.LatestFoundTime : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.MatchGroupName = 'MatchGroupName' in params ? params.MatchGroupName : null;
        this.MatchRuleLevel = 'MatchRuleLevel' in params ? params.MatchRuleLevel : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.ContainerStatus = 'ContainerStatus' in params ? params.ContainerStatus : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;

    }
}

/**
 * DescribeCompliancePeriodTaskList response structure.
 * @class
 */
class DescribeCompliancePeriodTaskListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of scheduled tasks
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of scheduled task information
         * @type {Array.<CompliancePeriodTask> || null}
         */
        this.PeriodTaskSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.PeriodTaskSet) {
            this.PeriodTaskSet = new Array();
            for (let z in params.PeriodTaskSet) {
                let obj = new CompliancePeriodTask();
                obj.deserialize(params.PeriodTaskSet[z]);
                this.PeriodTaskSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageScanSetting request structure.
 * @class
 */
class DescribeAssetImageScanSettingRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * Container runtime security - Information of the sub-policy of the preset access control policy
 * @class
 */
class AccessControlSystemChildRuleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Sub-policy ID
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Policy mode. `RULE_MODE_RELEASE`: Allow.
   `RULE_MODE_ALERT`: Alert.
   `RULE_MODE_HOLDUP`: Block.
         * @type {string || null}
         */
        this.RuleMode = null;

        /**
         * Sub-policy status. Valid values: `true` (enabled); `false` (disabled).
         * @type {boolean || null}
         */
        this.IsEnable = null;

        /**
         * Intrusion behavior type detected by the sub-policy
`CHANGE_CRONTAB`: Tampering with the scheduled task.
`CHANGE_SYS_BIN`: Tampering with the system program.
`CHANGE_USRCFG`: Tampering with user configuration.
         * @type {string || null}
         */
        this.RuleType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.RuleMode = 'RuleMode' in params ? params.RuleMode : null;
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;
        this.RuleType = 'RuleType' in params ? params.RuleType : null;

    }
}

/**
 * DescribeSecLogAlertMsg response structure.
 * @class
 */
class DescribeSecLogAlertMsgResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Alert message queue
         * @type {Array.<SecLogAlertMsgInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new SecLogAlertMsgInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeInspectionReport request structure.
 * @class
 */
class DescribeInspectionReportRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAgentDaemonSetCmd request structure.
 * @class
 */
class DescribeAgentDaemonSetCmdRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether it is from Tencent Cloud
         * @type {boolean || null}
         */
        this.IsCloud = null;

        /**
         * Network type. Valid values: `basic` (classic network); `private` (VPC); `public` (public network); `direct` (Direct Connect).
         * @type {string || null}
         */
        this.NetType = null;

        /**
         * Region, which is required when `NetType` is `direct`.
         * @type {string || null}
         */
        this.RegionCode = null;

        /**
         * VpcId, which is required when `NetType` is `direct`.
         * @type {string || null}
         */
        this.VpcId = null;

        /**
         * Command validity, which is required for non-Tencent Cloud instances.
         * @type {string || null}
         */
        this.ExpireDate = null;

        /**
         * Custom parameters of the cluster
         * @type {Array.<ClusterCustomParameters> || null}
         */
        this.ClusterCustomParameters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsCloud = 'IsCloud' in params ? params.IsCloud : null;
        this.NetType = 'NetType' in params ? params.NetType : null;
        this.RegionCode = 'RegionCode' in params ? params.RegionCode : null;
        this.VpcId = 'VpcId' in params ? params.VpcId : null;
        this.ExpireDate = 'ExpireDate' in params ? params.ExpireDate : null;

        if (params.ClusterCustomParameters) {
            this.ClusterCustomParameters = new Array();
            for (let z in params.ClusterCustomParameters) {
                let obj = new ClusterCustomParameters();
                obj.deserialize(params.ClusterCustomParameters[z]);
                this.ClusterCustomParameters.push(obj);
            }
        }

    }
}

/**
 * DescribeSecLogAlertMsg request structure.
 * @class
 */
class DescribeSecLogAlertMsgRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Alert type
Log storage alert: log_reserve_full
Log storage period alert: log_save_day_limit
Unavailable Kafka instance/public domain name: kafka_instance_domain_unavailable
Incorrect Kafka username/password: kafka_user_passwd_wrong
Kafka backend error field: kafka_field_wrong
         * @type {Array.<string> || null}
         */
        this.Type = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Type = 'Type' in params ? params.Type : null;

    }
}

/**
 * AddNetworkFirewallPolicyYamlDetail response structure.
 * @class
 */
class AddNetworkFirewallPolicyYamlDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Container runtime security - Information of the access control event
 * @class
 */
class AccessControlEventInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Process name
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Name of the hit rule
         * @type {string || null}
         */
        this.MatchRuleName = null;

        /**
         * Generation time
         * @type {string || null}
         */
        this.FoundTime = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Action execution result. `BEHAVIOR_NONE`: None.
    `BEHAVIOR_ALERT`: Alert.
    `BEHAVIOR_RELEASE`: Allow.
    `BEHAVIOR_HOLDUP_FAILED`: Failed to block.
    `BEHAVIOR_HOLDUP_SUCCESSED`: Blocked.
         * @type {string || null}
         */
        this.Behavior = null;

        /**
         * Status. `0`: Pending. `EVENT_UNDEAL`: Pending.
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.Id = null;

        /**
         * Filename
         * @type {string || null}
         */
        this.FileName = null;

        /**
         * Event type. `FILE_ABNORMAL_READ`: Abnormal file read.
         * @type {string || null}
         */
        this.EventType = null;

        /**
         * Image ID, which is used for redirect.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Container ID, which is used for redirect.
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Event solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Hit policy ID
         * @type {string || null}
         */
        this.MatchRuleId = null;

        /**
         * Action of the hit rule:
`RULE_MODE_RELEASE`: Allow.
`RULE_MODE_ALERT`: Alert.
`RULE_MODE_HOLDUP`: Block.
         * @type {string || null}
         */
        this.MatchAction = null;

        /**
         * Information of the process that hits the rule
         * @type {string || null}
         */
        this.MatchProcessPath = null;

        /**
         * Information of the file that hits the rule
         * @type {string || null}
         */
        this.MatchFilePath = null;

        /**
         * File path containing the name
         * @type {string || null}
         */
        this.FilePath = null;

        /**
         * Whether the rule exists
         * @type {boolean || null}
         */
        this.RuleExist = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Last generation time
         * @type {string || null}
         */
        this.LatestFoundTime = null;

        /**
         * Rule group ID
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
"NODE_DESTROYED"      // The node is terminated.
"CONTAINER_EXITED"    // The container exited.
"CONTAINER_DESTROYED" // The container was terminated.
"SHARED_HOST"         // The container shares the network with the server.
"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
"UNKNOW"              // The reason is unknown.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Container status
`RUNNING`: Running.
`PAUSED`: Paused.
`STOPPED`: Stopped.
`CREATED`: Created.
`DESTROYED`: Terminated.
`RESTARTING`: Restarting.
`REMOVING`: Removing.
         * @type {string || null}
         */
        this.ContainerStatus = null;

        /**
         * Node name: For super nodes, the node_id is displayed.
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Node unique ID. It's used for super nodes.
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * Node public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * uuid
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Private IP of the node
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.MatchRuleName = 'MatchRuleName' in params ? params.MatchRuleName : null;
        this.FoundTime = 'FoundTime' in params ? params.FoundTime : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.Behavior = 'Behavior' in params ? params.Behavior : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.FileName = 'FileName' in params ? params.FileName : null;
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.MatchRuleId = 'MatchRuleId' in params ? params.MatchRuleId : null;
        this.MatchAction = 'MatchAction' in params ? params.MatchAction : null;
        this.MatchProcessPath = 'MatchProcessPath' in params ? params.MatchProcessPath : null;
        this.MatchFilePath = 'MatchFilePath' in params ? params.MatchFilePath : null;
        this.FilePath = 'FilePath' in params ? params.FilePath : null;
        this.RuleExist = 'RuleExist' in params ? params.RuleExist : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.LatestFoundTime = 'LatestFoundTime' in params ? params.LatestFoundTime : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.ContainerStatus = 'ContainerStatus' in params ? params.ContainerStatus : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;

    }
}

/**
 * DescribeClusterSummary response structure.
 * @class
 */
class DescribeClusterSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of clusters
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Number of clusters at risk
         * @type {number || null}
         */
        this.RiskClusterCount = null;

        /**
         * Number of clusters not checked
         * @type {number || null}
         */
        this.UncheckClusterCount = null;

        /**
         * Number of managed clusters
         * @type {number || null}
         */
        this.ManagedClusterCount = null;

        /**
         * Number of self-deployed clusters
         * @type {number || null}
         */
        this.IndependentClusterCount = null;

        /**
         * Number of clusters involving no risks
         * @type {number || null}
         */
        this.NoRiskClusterCount = null;

        /**
         * Number of checked clusters
         * @type {number || null}
         */
        this.CheckedClusterCount = null;

        /**
         * Number of clusters automatically checked
         * @type {number || null}
         */
        this.AutoCheckClusterCount = null;

        /**
         * Number of clusters manually checked
         * @type {number || null}
         */
        this.ManualCheckClusterCount = null;

        /**
         * Number of clusters that failed the check
         * @type {number || null}
         */
        this.FailedClusterCount = null;

        /**
         * Number of clusters not imported
         * @type {number || null}
         */
        this.NotImportedClusterCount = null;

        /**
         * Number of EKS clusters
         * @type {number || null}
         */
        this.ServerlessClusterCount = null;

        /**
         * 
         * @type {number || null}
         */
        this.TkeClusterCount = null;

        /**
         * 
         * @type {number || null}
         */
        this.UserCreateTencentClusterCount = null;

        /**
         * 
         * @type {number || null}
         */
        this.UserCreateHybridClusterCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RiskClusterCount = 'RiskClusterCount' in params ? params.RiskClusterCount : null;
        this.UncheckClusterCount = 'UncheckClusterCount' in params ? params.UncheckClusterCount : null;
        this.ManagedClusterCount = 'ManagedClusterCount' in params ? params.ManagedClusterCount : null;
        this.IndependentClusterCount = 'IndependentClusterCount' in params ? params.IndependentClusterCount : null;
        this.NoRiskClusterCount = 'NoRiskClusterCount' in params ? params.NoRiskClusterCount : null;
        this.CheckedClusterCount = 'CheckedClusterCount' in params ? params.CheckedClusterCount : null;
        this.AutoCheckClusterCount = 'AutoCheckClusterCount' in params ? params.AutoCheckClusterCount : null;
        this.ManualCheckClusterCount = 'ManualCheckClusterCount' in params ? params.ManualCheckClusterCount : null;
        this.FailedClusterCount = 'FailedClusterCount' in params ? params.FailedClusterCount : null;
        this.NotImportedClusterCount = 'NotImportedClusterCount' in params ? params.NotImportedClusterCount : null;
        this.ServerlessClusterCount = 'ServerlessClusterCount' in params ? params.ServerlessClusterCount : null;
        this.TkeClusterCount = 'TkeClusterCount' in params ? params.TkeClusterCount : null;
        this.UserCreateTencentClusterCount = 'UserCreateTencentClusterCount' in params ? params.UserCreateTencentClusterCount : null;
        this.UserCreateHybridClusterCount = 'UserCreateHybridClusterCount' in params ? params.UserCreateHybridClusterCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogDeliveryClsOptions response structure.
 * @class
 */
class DescribeSecLogDeliveryClsOptionsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of optional CLS logsets, which is returned only when `ClsRegion` is not empty.
         * @type {Array.<ClsLogsetInfo> || null}
         */
        this.LogSetList = null;

        /**
         * List of optional regions, which is returned only when `ClsRegion` is empty.
         * @type {Array.<RegionInfo> || null}
         */
        this.RegionList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.LogSetList) {
            this.LogSetList = new Array();
            for (let z in params.LogSetList) {
                let obj = new ClsLogsetInfo();
                obj.deserialize(params.LogSetList[z]);
                this.LogSetList.push(obj);
            }
        }

        if (params.RegionList) {
            this.RegionList = new Array();
            for (let z in params.RegionList) {
                let obj = new RegionInfo();
                obj.deserialize(params.RegionList[z]);
                this.RegionList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteMachine request structure.
 * @class
 */
class DeleteMachineRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Agent UUID
         * @type {string || null}
         */
        this.Uuid = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Uuid = 'Uuid' in params ? params.Uuid : null;

    }
}

/**
 * CreateVulImageExportJob request structure.
 * @class
 */
class CreateVulImageExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Number of results to be returned. Default value: `50000`. Maximum value: `50000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>OnlyAffectedNewestImage- Bool- Required: No - Show only vulnerabilities that affect the latest image tags</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>ClientIP- string - Required: No - Private IP</li>
<li>PublicIP- string - Required: No - Public IP</li>
<li>ComponentName- string - Required: No - Component name</li>
<li>ComponentVersion- string - Required: No - Component version</li>
<li>HostName- string - Required: No - Server name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeValueAddedSrvInfo request structure.
 * @class
 */
class DescribeValueAddedSrvInfoRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeCompliancePolicyItemAffectedSummary response structure.
 * @class
 */
class DescribeCompliancePolicyItemAffectedSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Aggregated information of the assets affected by each check item
         * @type {CompliancePolicyItemSummary || null}
         */
        this.PolicyItemSummary = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.PolicyItemSummary) {
            let obj = new CompliancePolicyItemSummary();
            obj.deserialize(params.PolicyItemSummary)
            this.PolicyItemSummary = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyRiskSyscallStatus response structure.
 * @class
 */
class ModifyRiskSyscallStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulSummary request structure.
 * @class
 */
class DescribeVulSummaryRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>OnlyAffectedNewestImage- string- Required: No - Show only vulnerabilities that affect the latest image tags. Valid values: `true`, `false`.</li>
<li>OnlyAffectedContainer-string- Required: No - Show only vulnerabilities that affect containers. Valid values: `true`, `false`.</li>
<li>CategoryType- string - Required: No - Vulnerability type. Valid values: `SYSTEM` (system vulnerability); `WEB` (web application vulnerability); `ALL` (all vulnerabilities).</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeAutoAuthorizedRuleHost response structure.
 * @class
 */
class DescribeAutoAuthorizedRuleHostResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of servers licensed based on the automatic image licensing rule
         * @type {Array.<AutoAuthorizedRuleHostInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new AutoAuthorizedRuleHostInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteIgnoreVul response structure.
 * @class
 */
class DeleteIgnoreVulResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAssetImageRegistryScanStopOneKey request structure.
 * @class
 */
class ModifyAssetImageRegistryScanStopOneKeyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to scan all images
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * List of scanned images
         * @type {Array.<ImageInfo> || null}
         */
        this.Images = null;

        /**
         * List of IDs of scanned images
         * @type {Array.<number> || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.All = 'All' in params ? params.All : null;

        if (params.Images) {
            this.Images = new Array();
            for (let z in params.Images) {
                let obj = new ImageInfo();
                obj.deserialize(params.Images[z]);
                this.Images.push(obj);
            }
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * DeleteSearchTemplate request structure.
 * @class
 */
class DeleteSearchTemplateRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Template ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * SwitchImageAutoAuthorizedRule response structure.
 * @class
 */
class SwitchImageAutoAuthorizedRuleResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeExportJobResult request structure.
 * @class
 */
class DescribeExportJobResultRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Value of the `JobId` field returned by `CreateExportComplianceStatusListJob`
         * @type {string || null}
         */
        this.JobId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;

    }
}

/**
 * DescribeNetworkFirewallNamespaceLabelList request structure.
 * @class
 */
class DescribeNetworkFirewallNamespaceLabelListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - String
Name. Valid values: `ClusterName`, `ClusterId`, `ClusterType`, `Region`, `ClusterCheckMode`, `ClusterAutoCheck`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeK8sApiAbnormalEventList request structure.
 * @class
 */
class DescribeK8sApiAbnormalEventListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filters.
<li>TimeRange - String - Optional - Time range. Example: ["2022-03-31 16:55:00", "2022-03-31 17:00:00"]</li>
<li>`MatchRules` - String - Optional - Hit rule</li>
<li>`RiskLevel` - String - Optional - Threat level</li>
<li>`Status` - String - Optional - Event status</li>
<li>`MatchRuleType` - String - Optional - Hit rule type</li>
<li>`ClusterRunningStatus` - String - Optional - Cluster running status</li>
<li>`ClusterName` - String - Optional - Cluster name</li>
<li>`ClusterID` - String - Optional - Cluster ID</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * The number of results returned. Default value: 10. Maximum value: 100.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: 0
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sort order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
`LatestFoundTime`: Last creation time
`AlarmCount`: Number of alarms
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeAffectedWorkloadList response structure.
 * @class
 */
class DescribeAffectedWorkloadListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of affected workloads
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of affected workloads
         * @type {Array.<AffectedWorkloadItem> || null}
         */
        this.AffectedWorkloadList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.AffectedWorkloadList) {
            this.AffectedWorkloadList = new Array();
            for (let z in params.AffectedWorkloadList) {
                let obj = new AffectedWorkloadItem();
                obj.deserialize(params.AffectedWorkloadList[z]);
                this.AffectedWorkloadList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateComplianceTask response structure.
 * @class
 */
class CreateComplianceTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created compliance check task
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryList request structure.
 * @class
 */
class DescribeAssetImageRegistryListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter field
`IsAuthorized` (whether licensed). Valid values: `all` (all); `0` (unlicensed); `1` (licensed).
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Whether to show only the latest repository images. Default value: `false`.
         * @type {boolean || null}
         */
        this.OnlyShowLatest = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.OnlyShowLatest = 'OnlyShowLatest' in params ? params.OnlyShowLatest : null;

    }
}

/**
 * Vulnerability protection plugin information
 * @class
 */
class VulDefencePlugin extends  AbstractModel {
    constructor(){
        super();

        /**
         * PID of the Java process
         * @type {number || null}
         */
        this.PID = null;

        /**
         * Main class name of the process
         * @type {string || null}
         */
        this.MainClass = null;

        /**
         * Plugin status. Valid values: `INJECTING` (injecting); `SUCCESS` (injected successfully); `FAIL` (injection failed); `TIMEOUT` (plugin timed out); `QUIT` (plugin exited).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Error log
         * @type {string || null}
         */
        this.ErrorLog = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PID = 'PID' in params ? params.PID : null;
        this.MainClass = 'MainClass' in params ? params.MainClass : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.ErrorLog = 'ErrorLog' in params ? params.ErrorLog : null;

    }
}

/**
 * DescribeAbnormalProcessEventTendency response structure.
 * @class
 */
class DescribeAbnormalProcessEventTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trend of pending abnormal process events
         * @type {Array.<AbnormalProcessEventTendencyInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new AbnormalProcessEventTendencyInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeScanIgnoreVulList request structure.
 * @class
 */
class DescribeScanIgnoreVulListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>CVEID- string - Required: No - CVE No.</li>
<li>VulName- string - Required: No - Vulnerability name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order. Valid values: `DESC`, `ASC`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field: `UpdateTime`.
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeReverseShellWhiteLists request structure.
 * @class
 */
class DescribeReverseShellWhiteListsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * CheckNetworkFirewallPolicyYaml request structure.
 * @class
 */
class CheckNetworkFirewallPolicyYamlRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.PolicyName = null;

        /**
         * Base64-encoded NetworkPolicy YAML string
         * @type {string || null}
         */
        this.Yaml = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.PolicyName = 'PolicyName' in params ? params.PolicyName : null;
        this.Yaml = 'Yaml' in params ? params.Yaml : null;
        this.Description = 'Description' in params ? params.Description : null;

    }
}

/**
 * DescribeRiskList request structure.
 * @class
 */
class DescribeRiskListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the cluster to be queried. If it is not specified, all risk items will be queried.
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - String
Name. Valid values: `RiskLevel` (risk level); `RiskTarget` (check target and risky target); `RiskType` (risk type); `RiskAttribute` (risk type of the check item).
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * Information of the server with exploit prevention enabled
 * @class
 */
class VulDefenceHost extends  AbstractModel {
    constructor(){
        super();

        /**
         * General node/Super node name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Server IP, which is the private IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Node QUuid/Super node ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Plugin status. Valid values: `SUCCESS` (normal); `FAIL` (abnormal); `NO_DEFENDED` (not defended).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * First enablement time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.ModifyTime = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Super node subnet name
         * @type {string || null}
         */
        this.NodeSubNetName = null;

        /**
         * Super node subnet IP range
         * @type {string || null}
         */
        this.NodeSubNetCIDR = null;

        /**
         * Super node subnet ID
         * @type {string || null}
         */
        this.NodeSubNetID = null;

        /**
         * UID of a super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * ID of a super node
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.ModifyTime = 'ModifyTime' in params ? params.ModifyTime : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeSubNetName = 'NodeSubNetName' in params ? params.NodeSubNetName : null;
        this.NodeSubNetCIDR = 'NodeSubNetCIDR' in params ? params.NodeSubNetCIDR : null;
        this.NodeSubNetID = 'NodeSubNetID' in params ? params.NodeSubNetID : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodName = 'PodName' in params ? params.PodName : null;

    }
}

/**
 * ModifyAccessControlStatus response structure.
 * @class
 */
class ModifyAccessControlStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteReverseShellWhiteLists request structure.
 * @class
 */
class DeleteReverseShellWhiteListsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * IDs of allowed items
         * @type {Array.<string> || null}
         */
        this.WhiteListIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.WhiteListIdSet = 'WhiteListIdSet' in params ? params.WhiteListIdSet : null;

    }
}

/**
 * DescribeEmergencyVulList response structure.
 * @class
 */
class DescribeEmergencyVulListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of vulnerabilities
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of vulnerabilities
         * @type {Array.<EmergencyVulInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new EmergencyVulInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetAppServiceList request structure.
 * @class
 */
class DescribeAssetAppServiceListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Keywords- String - Required: No - Optional field for the fuzzy query</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * ModifyImageAuthorized response structure.
 * @class
 */
class ModifyImageAuthorizedResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Response parameters structure of the network cluster asset
 * @class
 */
class NetworkClusterInfoItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Cluster version
         * @type {string || null}
         */
        this.ClusterVersion = null;

        /**
         * Cluster OS
         * @type {string || null}
         */
        this.ClusterOs = null;

        /**
         * Cluster type
         * @type {string || null}
         */
        this.ClusterType = null;

        /**
         * Cluster region
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Cluster network plugin
         * @type {string || null}
         */
        this.NetworkPolicyPlugin = null;

        /**
         * Cluster status
         * @type {string || null}
         */
        this.ClusterStatus = null;

        /**
         * Total number of policies
         * @type {number || null}
         */
        this.TotalRuleCount = null;

        /**
         * Number of enabled policies
         * @type {number || null}
         */
        this.EnableRuleCount = null;

        /**
         * Status of the cluster network plugin. Valid values: `Running` (normal); `Error` (abnormal).
         * @type {string || null}
         */
        this.NetworkPolicyPluginStatus = null;

        /**
         * Error message of the cluster network plugin
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.NetworkPolicyPluginError = null;

        /**
         * Cluster network plugin
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ClusterNetworkSettings = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.ClusterVersion = 'ClusterVersion' in params ? params.ClusterVersion : null;
        this.ClusterOs = 'ClusterOs' in params ? params.ClusterOs : null;
        this.ClusterType = 'ClusterType' in params ? params.ClusterType : null;
        this.Region = 'Region' in params ? params.Region : null;
        this.NetworkPolicyPlugin = 'NetworkPolicyPlugin' in params ? params.NetworkPolicyPlugin : null;
        this.ClusterStatus = 'ClusterStatus' in params ? params.ClusterStatus : null;
        this.TotalRuleCount = 'TotalRuleCount' in params ? params.TotalRuleCount : null;
        this.EnableRuleCount = 'EnableRuleCount' in params ? params.EnableRuleCount : null;
        this.NetworkPolicyPluginStatus = 'NetworkPolicyPluginStatus' in params ? params.NetworkPolicyPluginStatus : null;
        this.NetworkPolicyPluginError = 'NetworkPolicyPluginError' in params ? params.NetworkPolicyPluginError : null;
        this.ClusterNetworkSettings = 'ClusterNetworkSettings' in params ? params.ClusterNetworkSettings : null;

    }
}

/**
 * AddEscapeWhiteList response structure.
 * @class
 */
class AddEscapeWhiteListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifySecLogCleanSettingInfo response structure.
 * @class
 */
class ModifySecLogCleanSettingInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeWebVulList request structure.
 * @class
 */
class DescribeWebVulListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>OnlyAffectedContainer- string - Required: No - Show only vulnerabilities that affect containers. Valid values: `true`, `false`.</li>
<li>OnlyAffectedNewestImage-string - Required: No - Show only vulnerabilities that affect the latest image tags. Valid values: `true`, `false`.</li>
<li>Level- String - Required: No - Severity. Valid values: `CRITICAL` (critical); `HIGH` (high); `MIDDLE` (medium); `LOW` (low).</li>
<li>Tags- string - Required: No - Vulnerability tag. Valid values: `POC`, `EXP`.</li>
<li>CanBeFixed- string - Required: No - Whether the vulnerability can be fixed. Valid values: `true`, `false`.</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ContainerName- string - Required: No - Container name</li>
<li>ComponentName- string - Required: No - Component name</li>
<li>ComponentVersion- string - Required: No - Component version</li>
<li>Name- string - Required: No - Vulnerability name</li>
<li>FocusOnType - string - Required: No - Urgency. Valid values: `ALL` (all); `SERIOUS_LEVEL (critical and high risks); `IS_SUGGEST` (high-priority); `POC_EXP` (POC/EXP); `NETWORK_EXP` (remote EXP).</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * ModifyVirusScanSetting request structure.
 * @class
 */
class ModifyVirusScanSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to enable scheduled scan
         * @type {boolean || null}
         */
        this.EnableScan = null;

        /**
         * Check cycle in days. Valid values: `1`, `3`, `7`.
         * @type {number || null}
         */
        this.Cycle = null;

        /**
         * Scan start time
         * @type {string || null}
         */
        this.BeginScanAt = null;

        /**
         * Scan all paths. Valid values: `true` (all); `false` (specified).
         * @type {boolean || null}
         */
        this.ScanPathAll = null;

        /**
         * Valid when `ScanPathAll` is `true`. Valid values of `ScanPathAll`: `0` (scan the following paths); `1` (scan all paths except the following).
         * @type {number || null}
         */
        this.ScanPathType = null;

        /**
         * Timeout period in hours. Value range: 5-24.
         * @type {number || null}
         */
        this.Timeout = null;

        /**
         * Scanning scope. Valid values: `0` (container); `1` (server).
         * @type {number || null}
         */
        this.ScanRangeType = null;

        /**
         * Valid values: `true` (all); `false` (specified).
         * @type {boolean || null}
         */
        this.ScanRangeAll = null;

        /**
         * ID of the specified container or server to be scanned, which is based on `ScanRangeType`.
         * @type {Array.<string> || null}
         */
        this.ScanIds = null;

        /**
         * Scanned path
         * @type {Array.<string> || null}
         */
        this.ScanPath = null;

        /**
         * Path scanning mode: 
`SCAN_PATH_ALL`: Scan all paths
`SCAN_PATH_DEFAULT`: Scan the default path
`SCAN_PATH_USER_DEFINE`: Scan the custom path

         * @type {string || null}
         */
        this.ScanPathMode = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EnableScan = 'EnableScan' in params ? params.EnableScan : null;
        this.Cycle = 'Cycle' in params ? params.Cycle : null;
        this.BeginScanAt = 'BeginScanAt' in params ? params.BeginScanAt : null;
        this.ScanPathAll = 'ScanPathAll' in params ? params.ScanPathAll : null;
        this.ScanPathType = 'ScanPathType' in params ? params.ScanPathType : null;
        this.Timeout = 'Timeout' in params ? params.Timeout : null;
        this.ScanRangeType = 'ScanRangeType' in params ? params.ScanRangeType : null;
        this.ScanRangeAll = 'ScanRangeAll' in params ? params.ScanRangeAll : null;
        this.ScanIds = 'ScanIds' in params ? params.ScanIds : null;
        this.ScanPath = 'ScanPath' in params ? params.ScanPath : null;
        this.ScanPathMode = 'ScanPathMode' in params ? params.ScanPathMode : null;

    }
}

/**
 * DescribeVulDefenceEvent request structure.
 * @class
 */
class DescribeVulDefenceEventRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>Status- String - Required: No - Plugin status. Valid values: `EVENT_UNDEAL` (pending); `EVENT_DEALED` (processed); `EVENT_IGNORE` (ignored); `EVENT_DEFENDED` (defended).</li>
<li>ContainerStatus- String - Required: No - Container status. Valid values: `CREATED` (created); `RUNNING` (running); `PAUSED` (suspended); 	`STOPPED` (stopped); `RESTARTING` (restarting); `REMOVING` (removing); `DESTROYED` (terminated).</li>
<li>ContainerNetStatus- String - Required: No - Container network status. Valid values: `NORMAL` (not isolated); `ISOLATED` (isolated); `ISOLATE_FAILED` (isolation failed); `RESTORE_FAILED` (recovery failed); `RESTORING` (recovering); `ISOLATING` (isolating).</li>
<li>EventType - String - Required: No - Intrusion status. Valid values: `EVENT_DEFENDED` (defended successfully); `EVENT_ATTACK` (attack attempt).</li>
<li>TimeRange- String - Required: No - Time range. The first value indicates the start time, and the second the end time.</li>
<li>VulName- string - Required: No - Vulnerability name</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>SourceIP- string - Required: No - Attacker IP</li>
<li>ContainerName- string - Required: No - Container name</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ImageName- string - Required: No - Image name</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>HostName- string - Required: No - Server name</li>
<li>HostIP- string - Required: No - Private IP</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field: `EventCount` (number of events).
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeVirusSummary response structure.
 * @class
 */
class DescribeVirusSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the last scan task
         * @type {string || null}
         */
        this.TaskId = null;

        /**
         * Number of containers affected by the trojan
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RiskContainerCnt = null;

        /**
         * Number of pending risks
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RiskCnt = null;

        /**
         * Update time of the virus library
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VirusDataBaseModifyTime = null;

        /**
         * Increase in the number of containers affected by trojans from yesterday
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RiskContainerIncrease = null;

        /**
         * Increase in the number of pending risks from yesterday
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RiskIncrease = null;

        /**
         * Increase in the number of isolated events from yesterday
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.IsolateIncrease = null;

        /**
         * Total number of isolated events
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.IsolateCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.RiskContainerCnt = 'RiskContainerCnt' in params ? params.RiskContainerCnt : null;
        this.RiskCnt = 'RiskCnt' in params ? params.RiskCnt : null;
        this.VirusDataBaseModifyTime = 'VirusDataBaseModifyTime' in params ? params.VirusDataBaseModifyTime : null;
        this.RiskContainerIncrease = 'RiskContainerIncrease' in params ? params.RiskContainerIncrease : null;
        this.RiskIncrease = 'RiskIncrease' in params ? params.RiskIncrease : null;
        this.IsolateIncrease = 'IsolateIncrease' in params ? params.IsolateIncrease : null;
        this.IsolateCnt = 'IsolateCnt' in params ? params.IsolateCnt : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetDBServiceList request structure.
 * @class
 */
class DescribeAssetDBServiceListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Keywords- String - Required: No - Optional field for the fuzzy query</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * UpdateAndPublishNetworkFirewallPolicyYamlDetail request structure.
 * @class
 */
class UpdateAndPublishNetworkFirewallPolicyYamlDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy ID
         * @type {number || null}
         */
        this.Id = null;

        /**
         * Base64-encoded NetworkPolicy YAML string
         * @type {string || null}
         */
        this.Yaml = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.Yaml = 'Yaml' in params ? params.Yaml : null;
        this.Description = 'Description' in params ? params.Description : null;

    }
}

/**
 * DescribeProVersionInfo response structure.
 * @class
 */
class DescribeProVersionInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Start time of the Pro Edition, which is not empty only when the edition is purchased.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * End time of the Pro Edition, which is not empty only when more resources are purchased.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Number of cores to be purchased
         * @type {number || null}
         */
        this.CoresCnt = null;

        /**
         * Upper limit for elastic billing
         * @type {number || null}
         */
        this.MaxPostPayCoresCnt = null;

        /**
         * Resource ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ResourceId = null;

        /**
         * Purchase status
`Pending`: To be purchased.
`Normal`: Purchased.
`Isolate`: Isolated.
         * @type {string || null}
         */
        this.BuyStatus = null;

        /**
         * Whether it has been purchased before. Valid values: `false` (no); `true` (yes).
         * @type {boolean || null}
         */
        this.IsPurchased = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;
        this.CoresCnt = 'CoresCnt' in params ? params.CoresCnt : null;
        this.MaxPostPayCoresCnt = 'MaxPostPayCoresCnt' in params ? params.MaxPostPayCoresCnt : null;
        this.ResourceId = 'ResourceId' in params ? params.ResourceId : null;
        this.BuyStatus = 'BuyStatus' in params ? params.BuyStatus : null;
        this.IsPurchased = 'IsPurchased' in params ? params.IsPurchased : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddEditAbnormalProcessRule response structure.
 * @class
 */
class AddEditAbnormalProcessRuleResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ScanComplianceScanFailedAssets request structure.
 * @class
 */
class ScanComplianceScanFailedAssetsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of IDs of customer assets to be scanned again
         * @type {Array.<number> || null}
         */
        this.CustomerAssetIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetIdSet = 'CustomerAssetIdSet' in params ? params.CustomerAssetIdSet : null;

    }
}

/**
 * ModifySecLogDeliveryClsSetting response structure.
 * @class
 */
class ModifySecLogDeliveryClsSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeComplianceTaskAssetSummary request structure.
 * @class
 */
class DescribeComplianceTaskAssetSummaryRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of asset types
`ASSET_CONTAINER`: Container.
`ASSET_IMAGE`: Image.
`ASSET_HOST`: Server.
`ASSET_K8S`: K8s asset.
         * @type {Array.<string> || null}
         */
        this.AssetTypeSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetTypeSet = 'AssetTypeSet' in params ? params.AssetTypeSet : null;

    }
}

/**
 * CreateCheckComponent response structure.
 * @class
 */
class CreateCheckComponentResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Valid values: `InstallSucc` (installed successfully); `InstallFailed` (failed to install).
         * @type {string || null}
         */
        this.InstallResult = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.InstallResult = 'InstallResult' in params ? params.InstallResult : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeImageRegistryTimingScanTask request structure.
 * @class
 */
class DescribeImageRegistryTimingScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeRiskSyscallWhiteListDetail response structure.
 * @class
 */
class DescribeRiskSyscallWhiteListDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Basic information of the allowlist
         * @type {RiskSyscallWhiteListInfo || null}
         */
        this.WhiteListDetailInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.WhiteListDetailInfo) {
            let obj = new RiskSyscallWhiteListInfo();
            obj.deserialize(params.WhiteListDetailInfo)
            this.WhiteListDetailInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddNetworkFirewallPolicyYamlDetail request structure.
 * @class
 */
class AddNetworkFirewallPolicyYamlDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.PolicyName = null;

        /**
         * Base64-encoded NetworkPolicy YAML string
         * @type {string || null}
         */
        this.Yaml = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.PolicyName = 'PolicyName' in params ? params.PolicyName : null;
        this.Yaml = 'Yaml' in params ? params.Yaml : null;
        this.Description = 'Description' in params ? params.Description : null;

    }
}

/**
 * DescribeVulLevelImageSummary response structure.
 * @class
 */
class DescribeVulLevelImageSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Percentage of high-risk vulnerabilities in the latest local images
         * @type {number || null}
         */
        this.HighLevelVulLocalImagePercent = null;

        /**
         * Percentage of medium-risk vulnerabilities in the latest local images
         * @type {number || null}
         */
        this.MediumLevelVulLocalImagePercent = null;

        /**
         * Percentage of low-risk vulnerabilities in the latest local images
         * @type {number || null}
         */
        this.LowLevelVulLocalImagePercent = null;

        /**
         * Percentage of critical vulnerabilities in the latest local images
         * @type {number || null}
         */
        this.CriticalLevelVulLocalImagePercent = null;

        /**
         * Number of affected local images on the latest version
         * @type {number || null}
         */
        this.LocalNewestImageCount = null;

        /**
         * Number of affected repository images on the latest version
         * @type {number || null}
         */
        this.RegistryNewestImageCount = null;

        /**
         * Percentage of high-risk vulnerabilities in the latest repository image
         * @type {number || null}
         */
        this.HighLevelVulRegistryImagePercent = null;

        /**
         * Percentage of medium-risk vulnerabilities in the latest repository image
         * @type {number || null}
         */
        this.MediumLevelVulRegistryImagePercent = null;

        /**
         * Percentage of low-risk vulnerabilities in the latest repository image
         * @type {number || null}
         */
        this.LowLevelVulRegistryImagePercent = null;

        /**
         * Percentage of critical vulnerabilities in the latest repository image
         * @type {number || null}
         */
        this.CriticalLevelVulRegistryImagePercent = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HighLevelVulLocalImagePercent = 'HighLevelVulLocalImagePercent' in params ? params.HighLevelVulLocalImagePercent : null;
        this.MediumLevelVulLocalImagePercent = 'MediumLevelVulLocalImagePercent' in params ? params.MediumLevelVulLocalImagePercent : null;
        this.LowLevelVulLocalImagePercent = 'LowLevelVulLocalImagePercent' in params ? params.LowLevelVulLocalImagePercent : null;
        this.CriticalLevelVulLocalImagePercent = 'CriticalLevelVulLocalImagePercent' in params ? params.CriticalLevelVulLocalImagePercent : null;
        this.LocalNewestImageCount = 'LocalNewestImageCount' in params ? params.LocalNewestImageCount : null;
        this.RegistryNewestImageCount = 'RegistryNewestImageCount' in params ? params.RegistryNewestImageCount : null;
        this.HighLevelVulRegistryImagePercent = 'HighLevelVulRegistryImagePercent' in params ? params.HighLevelVulRegistryImagePercent : null;
        this.MediumLevelVulRegistryImagePercent = 'MediumLevelVulRegistryImagePercent' in params ? params.MediumLevelVulRegistryImagePercent : null;
        this.LowLevelVulRegistryImagePercent = 'LowLevelVulRegistryImagePercent' in params ? params.LowLevelVulRegistryImagePercent : null;
        this.CriticalLevelVulRegistryImagePercent = 'CriticalLevelVulRegistryImagePercent' in params ? params.CriticalLevelVulRegistryImagePercent : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ScanComplianceAssets response structure.
 * @class
 */
class ScanComplianceAssetsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of another check task
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeCompliancePeriodTaskList request structure.
 * @class
 */
class DescribeCompliancePeriodTaskListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Asset type. Valid values:
`ASSET_CONTAINER`: Container.
`ASSET_IMAGE`: Image.
`ASSET_HOST`: Server.
`ASSET_K8S`: K8s asset.
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

    }
}

/**
 * CreateAssetImageVirusExportJob response structure.
 * @class
 */
class CreateAssetImageVirusExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeIndexList request structure.
 * @class
 */
class DescribeIndexListRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * CreateWebVulExportJob response structure.
 * @class
 */
class CreateWebVulExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeReverseShellWhiteListDetail response structure.
 * @class
 */
class DescribeReverseShellWhiteListDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Basic information of the event
         * @type {ReverseShellWhiteListInfo || null}
         */
        this.WhiteListDetailInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.WhiteListDetailInfo) {
            let obj = new ReverseShellWhiteListInfo();
            obj.deserialize(params.WhiteListDetailInfo)
            this.WhiteListDetailInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeUnauthorizedCoresTendency request structure.
 * @class
 */
class DescribeUnauthorizedCoresTendencyRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAssetImageVulListExport response structure.
 * @class
 */
class DescribeAssetImageVulListExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel file download URL
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Ranking of top vulnerabilities
 * @class
 */
class VulTopRankingInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.VulName = null;

        /**
         * Severity. Valid values: `CRITICAL` (critical); `HIGH` (high);`MIDDLE` (medium);`LOW` (low).
         * @type {string || null}
         */
        this.Level = null;

        /**
         * Number of affected images
         * @type {number || null}
         */
        this.AffectedImageCount = null;

        /**
         * Number of affected containers
         * @type {number || null}
         */
        this.AffectedContainerCount = null;

        /**
         * Vulnerability ID
         * @type {number || null}
         */
        this.ID = null;

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.VulName = 'VulName' in params ? params.VulName : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.AffectedImageCount = 'AffectedImageCount' in params ? params.AffectedImageCount : null;
        this.AffectedContainerCount = 'AffectedContainerCount' in params ? params.AffectedContainerCount : null;
        this.ID = 'ID' in params ? params.ID : null;
        this.PocID = 'PocID' in params ? params.PocID : null;

    }
}

/**
 * DescribeProVersionInfo request structure.
 * @class
 */
class DescribeProVersionInfoRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeVulLevelSummary request structure.
 * @class
 */
class DescribeVulLevelSummaryRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability type. Valid values: `SYSTEM` (system vulnerability); `WEB` (web application vulnerability); `EMERGENCY` (emergency vulnerability).
         * @type {string || null}
         */
        this.CategoryType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CategoryType = 'CategoryType' in params ? params.CategoryType : null;

    }
}

/**
 * Description of the container escape event at runtime
 * @class
 */
class EscapeEventDescription extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event rule
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event remarks
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Last processing time of the event
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.OperationTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Description = 'Description' in params ? params.Description : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.OperationTime = 'OperationTime' in params ? params.OperationTime : null;

    }
}

/**
 * DescribeAssetImageDetail response structure.
 * @class
 */
class DescribeAssetImageDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.Size = null;

        /**
         * Number of associated servers
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.HostCnt = null;

        /**
         * Number of associated containers
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * Last scan time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Number of vulnerabilities
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VulCnt = null;

        /**
         * Number of risky behaviors
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RiskCnt = null;

        /**
         * Number of sensitive data items
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.SensitiveInfoCnt = null;

        /**
         * Whether it is a trusted image
         * @type {boolean || null}
         */
        this.IsTrustImage = null;

        /**
         * Image system
         * @type {string || null}
         */
        this.OsName = null;

        /**
         * Image scan error in the agent
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AgentError = null;

        /**
         * Image scan error on the backend
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanError = null;

        /**
         * System architecture
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Architecture = null;

        /**
         * Author
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Author = null;

        /**
         * Build history
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.BuildHistory = null;

        /**
         * Trojan scanning progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanVirusProgress = null;

        /**
         * Vulnerability scan progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanVulProgress = null;

        /**
         * Sensitive data scanning progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanRiskProgress = null;

        /**
         * Trojan scan error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanVirusError = null;

        /**
         * Vulnerability scan error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanVulError = null;

        /**
         * Sensitive data error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanRiskError = null;

        /**
         * Image scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanStatus = null;

        /**
         * Number of viruses and trojans
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VirusCnt = null;

        /**
         * Image scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

        /**
         * Remaining scan time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RemainScanTime = null;

        /**
         * Valid values: `1` (licensed); `0` (unlicensed).
         * @type {number || null}
         */
        this.IsAuthorized = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.Size = 'Size' in params ? params.Size : null;
        this.HostCnt = 'HostCnt' in params ? params.HostCnt : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.VulCnt = 'VulCnt' in params ? params.VulCnt : null;
        this.RiskCnt = 'RiskCnt' in params ? params.RiskCnt : null;
        this.SensitiveInfoCnt = 'SensitiveInfoCnt' in params ? params.SensitiveInfoCnt : null;
        this.IsTrustImage = 'IsTrustImage' in params ? params.IsTrustImage : null;
        this.OsName = 'OsName' in params ? params.OsName : null;
        this.AgentError = 'AgentError' in params ? params.AgentError : null;
        this.ScanError = 'ScanError' in params ? params.ScanError : null;
        this.Architecture = 'Architecture' in params ? params.Architecture : null;
        this.Author = 'Author' in params ? params.Author : null;
        this.BuildHistory = 'BuildHistory' in params ? params.BuildHistory : null;
        this.ScanVirusProgress = 'ScanVirusProgress' in params ? params.ScanVirusProgress : null;
        this.ScanVulProgress = 'ScanVulProgress' in params ? params.ScanVulProgress : null;
        this.ScanRiskProgress = 'ScanRiskProgress' in params ? params.ScanRiskProgress : null;
        this.ScanVirusError = 'ScanVirusError' in params ? params.ScanVirusError : null;
        this.ScanVulError = 'ScanVulError' in params ? params.ScanVulError : null;
        this.ScanRiskError = 'ScanRiskError' in params ? params.ScanRiskError : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;
        this.VirusCnt = 'VirusCnt' in params ? params.VirusCnt : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.RemainScanTime = 'RemainScanTime' in params ? params.RemainScanTime : null;
        this.IsAuthorized = 'IsAuthorized' in params ? params.IsAuthorized : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateAssetImageRegistryScanTaskOneKey response structure.
 * @class
 */
class CreateAssetImageRegistryScanTaskOneKeyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {number || null}
         */
        this.TaskID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of the sub-policy of the preset policy for abnormal processes
 * @class
 */
class AbnormalProcessSystemChildRuleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Sub-policy ID
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Sub-policy status. Valid values: `true` (enabled); `false` (disabled).
         * @type {boolean || null}
         */
        this.IsEnable = null;

        /**
         * Policy mode. `RULE_MODE_RELEASE`: Allow.
   `RULE_MODE_ALERT`: Alert.
   `RULE_MODE_HOLDUP`: Block.
         * @type {string || null}
         */
        this.RuleMode = null;

        /**
         * Behavior type detected by the sub-policy
`PROXY_TOOL`: Proxy.
`TRANSFER_CONTROL`: Lateral movement.
`ATTACK_CMD`: Malicious command.
`REVERSE_SHELL`: Reverse shell.
`FILELESS`: Fileless execution.
`RISK_CMD`: High-risk command.
`ABNORMAL_CHILD_PROC`: Unusual start found in the child process of the sensitive service.
         * @type {string || null}
         */
        this.RuleType = null;

        /**
         * Severity. Valid values: `HIGH` (high); `MIDDLE` (medium); `LOW` (low).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RuleLevel = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;
        this.RuleMode = 'RuleMode' in params ? params.RuleMode : null;
        this.RuleType = 'RuleType' in params ? params.RuleType : null;
        this.RuleLevel = 'RuleLevel' in params ? params.RuleLevel : null;

    }
}

/**
 * DescribeAssetImageVulListExport request structure.
 * @class
 */
class DescribeAssetImageVulListExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Name- String - Required: No - Vulnerability name</li>
<li>Level - String - Required: No - Risk level. Valid values: `1`, `2`, `3`, `4`.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeExportJobResult response structure.
 * @class
 */
class DescribeExportJobResultResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export status. Valid values: `SUCCESS`, `FAILURE`, `RUNNING`.
         * @type {string || null}
         */
        this.ExportStatus = null;

        /**
         * Download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadURL = null;

        /**
         * Export progress when `ExportStatus` is `RUNNING`. Value range: Floating points between `0` and `100`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ExportProgress = null;

        /**
         * Failure cause
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FailureMsg = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportStatus = 'ExportStatus' in params ? params.ExportStatus : null;
        this.DownloadURL = 'DownloadURL' in params ? params.DownloadURL : null;
        this.ExportProgress = 'ExportProgress' in params ? params.ExportProgress : null;
        this.FailureMsg = 'FailureMsg' in params ? params.FailureMsg : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of an allowed reverse shell
 * @class
 */
class ReverseShellWhiteListBaseInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Allowed item ID
         * @type {string || null}
         */
        this.Id = null;

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageCount = null;

        /**
         * Connection process name
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Destination address IP
         * @type {string || null}
         */
        this.DstIp = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Target port
         * @type {string || null}
         */
        this.DstPort = null;

        /**
         * Whether it is allowed globally. `true`: Yes.
         * @type {boolean || null}
         */
        this.IsGlobal = null;

        /**
         * Array of image IDs. An empty array indicates all.
         * @type {Array.<string> || null}
         */
        this.ImageIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Id = 'Id' in params ? params.Id : null;
        this.ImageCount = 'ImageCount' in params ? params.ImageCount : null;
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.DstIp = 'DstIp' in params ? params.DstIp : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.DstPort = 'DstPort' in params ? params.DstPort : null;
        this.IsGlobal = 'IsGlobal' in params ? params.IsGlobal : null;
        this.ImageIds = 'ImageIds' in params ? params.ImageIds : null;

    }
}

/**
 * Container runtime - Access control policy information
 * @class
 */
class AccessControlRuleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Switch. Valid values: `true` (on); `false` (off).
         * @type {boolean || null}
         */
        this.IsEnable = null;

        /**
         * IDs of associated images. An empty array indicates all images.
         * @type {Array.<string> || null}
         */
        this.ImageIds = null;

        /**
         * Array of sub-policies of the user policy
         * @type {Array.<AccessControlChildRuleInfo> || null}
         */
        this.ChildRules = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * Policy ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Array of sub-policies of the preset policy
         * @type {Array.<AccessControlSystemChildRuleInfo> || null}
         */
        this.SystemChildRules = null;

        /**
         * Whether it is the default preset policy
         * @type {boolean || null}
         */
        this.IsDefault = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;
        this.ImageIds = 'ImageIds' in params ? params.ImageIds : null;

        if (params.ChildRules) {
            this.ChildRules = new Array();
            for (let z in params.ChildRules) {
                let obj = new AccessControlChildRuleInfo();
                obj.deserialize(params.ChildRules[z]);
                this.ChildRules.push(obj);
            }
        }
        this.RuleName = 'RuleName' in params ? params.RuleName : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;

        if (params.SystemChildRules) {
            this.SystemChildRules = new Array();
            for (let z in params.SystemChildRules) {
                let obj = new AccessControlSystemChildRuleInfo();
                obj.deserialize(params.SystemChildRules[z]);
                this.SystemChildRules.push(obj);
            }
        }
        this.IsDefault = 'IsDefault' in params ? params.IsDefault : null;

    }
}

/**
 * DescribeAssetHostList response structure.
 * @class
 */
class DescribeAssetHostListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of servers
         * @type {Array.<HostInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new HostInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeABTestConfig request structure.
 * @class
 */
class DescribeABTestConfigRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Canary project name
         * @type {string || null}
         */
        this.ProjectName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProjectName = 'ProjectName' in params ? params.ProjectName : null;

    }
}

/**
 * Configuration range of K8sApi abnormal event rules 
 * @class
 */
class K8sApiAbnormalRuleScopeInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Range
System event:
ANONYMOUS_ACCESS: Anonymous access
ABNORMAL_UA_REQ: Abnormal UA request
ANONYMOUS_ABNORMAL_PERMISSION: Abnormal changes on permissions of an anonymous user
GET_CREDENTIALS: Credential information acquisition
MOUNT_SENSITIVE_PATH: Sensitive path mounting
COMMAND_RUN: Command execution
PRIVILEGE_CONTAINER: Privilege container
EXCEPTION_CRONTAB_TASK: Aabnormal scheduled task
STATICS_POD: Static pod creation
ABNORMAL_CREATE_POD: Abnormal pod creation
USER_DEFINED: User defined
         * @type {string || null}
         */
        this.Scope = null;

        /**
         * Action (RULE_MODE_ALERT: Alarm RULE_MODE_RELEASE: Release)
         * @type {string || null}
         */
        this.Action = null;

        /**
         * Threat level: "HIGH": High-risk level; "MIDDLE": Middle-risk level; "LOW": Low-risk level; "NOTICE": Notice level
Note: This field may return `null`, indicating that no valid value was found.
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Switch status (true: On; false: Off): applicable to system rules.
Note: This field may return `null`, indicating that no valid value was found.
         * @type {boolean || null}
         */
        this.Status = null;

        /**
         * Whether to delete: applicable to custom rule input parameters.
Note: This field may return `null`, indicating that no valid value was found.
         * @type {boolean || null}
         */
        this.IsDelete = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Scope = 'Scope' in params ? params.Scope : null;
        this.Action = 'Action' in params ? params.Action : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.IsDelete = 'IsDelete' in params ? params.IsDelete : null;

    }
}

/**
 * StopVulScanTask request structure.
 * @class
 */
class StopVulScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the task to scan local images for vulnerabilities
         * @type {number || null}
         */
        this.LocalTaskID = null;

        /**
         * Local image ID. If it is not specified, it indicates all.
         * @type {Array.<string> || null}
         */
        this.LocalImageIDs = null;

        /**
         * Repository image ID. If it is not specified, it indicates all.
         * @type {Array.<number> || null}
         */
        this.RegistryImageIDs = null;

        /**
         * ID of the task to scan repository images for vulnerabilities
         * @type {number || null}
         */
        this.RegistryTaskID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LocalTaskID = 'LocalTaskID' in params ? params.LocalTaskID : null;
        this.LocalImageIDs = 'LocalImageIDs' in params ? params.LocalImageIDs : null;
        this.RegistryImageIDs = 'RegistryImageIDs' in params ? params.RegistryImageIDs : null;
        this.RegistryTaskID = 'RegistryTaskID' in params ? params.RegistryTaskID : null;

    }
}

/**
 * List of image repositories
 * @class
 */
class ImageRepoInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image digest
         * @type {string || null}
         */
        this.ImageDigest = null;

        /**
         * Image repository address
         * @type {string || null}
         */
        this.ImageRepoAddress = null;

        /**
         * Repository type
         * @type {string || null}
         */
        this.RegistryType = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image tag
         * @type {string || null}
         */
        this.ImageTag = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.ImageSize = null;

        /**
         * Last scan time
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Scanning status
         * @type {string || null}
         */
        this.ScanStatus = null;

        /**
         * Number of vulnerabilities
         * @type {number || null}
         */
        this.VulCnt = null;

        /**
         * Number of viruses and trojans
         * @type {number || null}
         */
        this.VirusCnt = null;

        /**
         * Number of risky behaviors
         * @type {number || null}
         */
        this.RiskCnt = null;

        /**
         * Number of sensitive data items
         * @type {number || null}
         */
        this.SentiveInfoCnt = null;

        /**
         * Whether it is a trusted image
         * @type {boolean || null}
         */
        this.IsTrustImage = null;

        /**
         * Image system
         * @type {string || null}
         */
        this.OsName = null;

        /**
         * Trojan scan error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanVirusError = null;

        /**
         * Vulnerability scan error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanVulError = null;

        /**
         * Instance ID
         * @type {string || null}
         */
        this.InstanceId = null;

        /**
         * Instance name
         * @type {string || null}
         */
        this.InstanceName = null;

        /**
         * Namespace
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * High-risk scan error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanRiskError = null;

        /**
         * Sensitive data scanning progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanVirusProgress = null;

        /**
         * Trojan scanning progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanVulProgress = null;

        /**
         * Vulnerability scanning progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanRiskProgress = null;

        /**
         * Remaining scan time in seconds
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanRemainTime = null;

        /**
         * CVE scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CveStatus = null;

        /**
         * High-risk scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskStatus = null;

        /**
         * Trojan scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VirusStatus = null;

        /**
         * Overall progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Progress = null;

        /**
         * Licensing status
         * @type {number || null}
         */
        this.IsAuthorized = null;

        /**
         * Repository region
         * @type {string || null}
         */
        this.RegistryRegion = null;

        /**
         * List of IDs
         * @type {number || null}
         */
        this.Id = null;

        /**
         * Image ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Image creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageCreateTime = null;

        /**
         * Whether it is the latest image tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.IsLatestImage = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageDigest = 'ImageDigest' in params ? params.ImageDigest : null;
        this.ImageRepoAddress = 'ImageRepoAddress' in params ? params.ImageRepoAddress : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageTag = 'ImageTag' in params ? params.ImageTag : null;
        this.ImageSize = 'ImageSize' in params ? params.ImageSize : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;
        this.VulCnt = 'VulCnt' in params ? params.VulCnt : null;
        this.VirusCnt = 'VirusCnt' in params ? params.VirusCnt : null;
        this.RiskCnt = 'RiskCnt' in params ? params.RiskCnt : null;
        this.SentiveInfoCnt = 'SentiveInfoCnt' in params ? params.SentiveInfoCnt : null;
        this.IsTrustImage = 'IsTrustImage' in params ? params.IsTrustImage : null;
        this.OsName = 'OsName' in params ? params.OsName : null;
        this.ScanVirusError = 'ScanVirusError' in params ? params.ScanVirusError : null;
        this.ScanVulError = 'ScanVulError' in params ? params.ScanVulError : null;
        this.InstanceId = 'InstanceId' in params ? params.InstanceId : null;
        this.InstanceName = 'InstanceName' in params ? params.InstanceName : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.ScanRiskError = 'ScanRiskError' in params ? params.ScanRiskError : null;
        this.ScanVirusProgress = 'ScanVirusProgress' in params ? params.ScanVirusProgress : null;
        this.ScanVulProgress = 'ScanVulProgress' in params ? params.ScanVulProgress : null;
        this.ScanRiskProgress = 'ScanRiskProgress' in params ? params.ScanRiskProgress : null;
        this.ScanRemainTime = 'ScanRemainTime' in params ? params.ScanRemainTime : null;
        this.CveStatus = 'CveStatus' in params ? params.CveStatus : null;
        this.RiskStatus = 'RiskStatus' in params ? params.RiskStatus : null;
        this.VirusStatus = 'VirusStatus' in params ? params.VirusStatus : null;
        this.Progress = 'Progress' in params ? params.Progress : null;
        this.IsAuthorized = 'IsAuthorized' in params ? params.IsAuthorized : null;
        this.RegistryRegion = 'RegistryRegion' in params ? params.RegistryRegion : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ImageCreateTime = 'ImageCreateTime' in params ? params.ImageCreateTime : null;
        this.IsLatestImage = 'IsLatestImage' in params ? params.IsLatestImage : null;

    }
}

/**
 * CreateAssetImageRegistryScanTask response structure.
 * @class
 */
class CreateAssetImageRegistryScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {number || null}
         */
        this.TaskID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribePublicKey request structure.
 * @class
 */
class DescribePublicKeyRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * List of ports
 * @class
 */
class PortInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Type
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Server port
         * @type {number || null}
         */
        this.PublicPort = null;

        /**
         * Container port
         * @type {number || null}
         */
        this.ContainerPort = null;

        /**
         * Container PID
         * @type {number || null}
         */
        this.ContainerPID = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Server IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Process name
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Monitored address in the container
         * @type {string || null}
         */
        this.ListenContainer = null;

        /**
         * Monitored address outside the container
         * @type {string || null}
         */
        this.ListenHost = null;

        /**
         * Operating account
         * @type {string || null}
         */
        this.RunAs = null;

        /**
         * Server name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIp = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Node type.
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * UID of the super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Type = 'Type' in params ? params.Type : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.PublicPort = 'PublicPort' in params ? params.PublicPort : null;
        this.ContainerPort = 'ContainerPort' in params ? params.ContainerPort : null;
        this.ContainerPID = 'ContainerPID' in params ? params.ContainerPID : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.ListenContainer = 'ListenContainer' in params ? params.ListenContainer : null;
        this.ListenHost = 'ListenHost' in params ? params.ListenHost : null;
        this.RunAs = 'RunAs' in params ? params.RunAs : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.PublicIp = 'PublicIp' in params ? params.PublicIp : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;

    }
}

/**
 * DescribeAssetImageRegistrySummary request structure.
 * @class
 */
class DescribeAssetImageRegistrySummaryRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeVirusManualScanEstimateTimeout response structure.
 * @class
 */
class DescribeVirusManualScanEstimateTimeoutResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Estimated timeout period (hour)
         * @type {number || null}
         */
        this.Timeout = null;

        /**
         * Number of containers scanned in parallel on a single server
         * @type {number || null}
         */
        this.ContainerScanConcurrencyCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Timeout = 'Timeout' in params ? params.Timeout : null;
        this.ContainerScanConcurrencyCount = 'ContainerScanConcurrencyCount' in params ? params.ContainerScanConcurrencyCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeTaskResultSummary response structure.
 * @class
 */
class DescribeTaskResultSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of nodes affected by critical risks in the last seven days
         * @type {Array.<number> || null}
         */
        this.SeriousRiskNodeCount = null;

        /**
         * Number of nodes affected by high risks in the last seven days
         * @type {Array.<number> || null}
         */
        this.HighRiskNodeCount = null;

        /**
         * Number of nodes affected by medium risks in the last seven days
         * @type {Array.<number> || null}
         */
        this.MiddleRiskNodeCount = null;

        /**
         * Number of nodes affected by prompt risks in the last seven days
         * @type {Array.<number> || null}
         */
        this.HintRiskNodeCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.SeriousRiskNodeCount = 'SeriousRiskNodeCount' in params ? params.SeriousRiskNodeCount : null;
        this.HighRiskNodeCount = 'HighRiskNodeCount' in params ? params.HighRiskNodeCount : null;
        this.MiddleRiskNodeCount = 'MiddleRiskNodeCount' in params ? params.MiddleRiskNodeCount : null;
        this.HintRiskNodeCount = 'HintRiskNodeCount' in params ? params.HintRiskNodeCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of server IDs
 * @class
 */
class HostInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Server IP, which is the private IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Server name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Project
         * @type {string || null}
         */
        this.Group = null;

        /**
         * Docker version
         * @type {string || null}
         */
        this.DockerVersion = null;

        /**
         * Docker file system type
         * @type {string || null}
         */
        this.DockerFileSystemDriver = null;

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageCnt = null;

        /**
         * Number of containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * Agent status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Whether it is Containerd
         * @type {boolean || null}
         */
        this.IsContainerd = null;

        /**
         * Server source. Valid values: `CVM`, `ECM`, `LH`, `BM`, `Other`. The first four values indicate Tencent Cloud instances, while the last one indicates non-Tencent Cloud instances.
         * @type {string || null}
         */
        this.MachineType = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIp = null;

        /**
         * Server UUID
         * @type {string || null}
         */
        this.Uuid = null;

        /**
         * Server instance ID
         * @type {string || null}
         */
        this.InstanceID = null;

        /**
         * Region ID
         * @type {number || null}
         */
        this.RegionID = null;

        /**
         * Project
Note: This field may return `null`, indicating that no valid value was found.
         * @type {ProjectInfo || null}
         */
        this.Project = null;

        /**
         * Tags
Note: This field may return `null`, indicating that no valid value was found.
         * @type {Array.<TagInfo> || null}
         */
        this.Tags = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * 
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * 
         * @type {string || null}
         */
        this.ClusterAccessedStatus = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.Group = 'Group' in params ? params.Group : null;
        this.DockerVersion = 'DockerVersion' in params ? params.DockerVersion : null;
        this.DockerFileSystemDriver = 'DockerFileSystemDriver' in params ? params.DockerFileSystemDriver : null;
        this.ImageCnt = 'ImageCnt' in params ? params.ImageCnt : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.IsContainerd = 'IsContainerd' in params ? params.IsContainerd : null;
        this.MachineType = 'MachineType' in params ? params.MachineType : null;
        this.PublicIp = 'PublicIp' in params ? params.PublicIp : null;
        this.Uuid = 'Uuid' in params ? params.Uuid : null;
        this.InstanceID = 'InstanceID' in params ? params.InstanceID : null;
        this.RegionID = 'RegionID' in params ? params.RegionID : null;

        if (params.Project) {
            let obj = new ProjectInfo();
            obj.deserialize(params.Project)
            this.Project = obj;
        }

        if (params.Tags) {
            this.Tags = new Array();
            for (let z in params.Tags) {
                let obj = new TagInfo();
                obj.deserialize(params.Tags[z]);
                this.Tags.push(obj);
            }
        }
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.ClusterAccessedStatus = 'ClusterAccessedStatus' in params ? params.ClusterAccessedStatus : null;

    }
}

/**
 * DescribeVirusScanTimeoutSetting request structure.
 * @class
 */
class DescribeVirusScanTimeoutSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Scan type. Valid values: `0` (quick scan); `1` (scheduled scan).
         * @type {number || null}
         */
        this.ScanType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ScanType = 'ScanType' in params ? params.ScanType : null;

    }
}

/**
 * ModifySecLogJoinState response structure.
 * @class
 */
class ModifySecLogJoinStateResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAccessControlRuleStatus response structure.
 * @class
 */
class ModifyAccessControlRuleStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAssetImageScanStop request structure.
 * @class
 */
class ModifyAssetImageScanStopRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskID = null;

        /**
         * Image ID
         * @type {Array.<string> || null}
         */
        this.Images = null;

        /**
         * Filter
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Specified image IDs to be excluded
         * @type {string || null}
         */
        this.ExcludeImageIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;
        this.Images = 'Images' in params ? params.Images : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.ExcludeImageIds = 'ExcludeImageIds' in params ? params.ExcludeImageIds : null;

    }
}

/**
 * CreateRefreshTask request structure.
 * @class
 */
class CreateRefreshTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {Array.<string> || null}
         */
        this.ClusterIDs = null;

        /**
         * 
         * @type {boolean || null}
         */
        this.IsSyncListOnly = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterIDs = 'ClusterIDs' in params ? params.ClusterIDs : null;
        this.IsSyncListOnly = 'IsSyncListOnly' in params ? params.IsSyncListOnly : null;

    }
}

/**
 * DescribeK8sApiAbnormalEventList response structure.
 * @class
 */
class DescribeK8sApiAbnormalEventListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event list
         * @type {Array.<K8sApiAbnormalEventListItem> || null}
         */
        this.List = null;

        /**
         * Total count
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new K8sApiAbnormalEventListItem();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNewestVul request structure.
 * @class
 */
class DescribeNewestVulRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAbnormalProcessLevelSummary response structure.
 * @class
 */
class DescribeAbnormalProcessLevelSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of pending high-risk events of abnormal processes
         * @type {number || null}
         */
        this.HighLevelEventCount = null;

        /**
         * Number of pending medium-risk events of abnormal processes
         * @type {number || null}
         */
        this.MediumLevelEventCount = null;

        /**
         * Number of pending low-risk events of abnormal processes
         * @type {number || null}
         */
        this.LowLevelEventCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HighLevelEventCount = 'HighLevelEventCount' in params ? params.HighLevelEventCount : null;
        this.MediumLevelEventCount = 'MediumLevelEventCount' in params ? params.MediumLevelEventCount : null;
        this.LowLevelEventCount = 'LowLevelEventCount' in params ? params.LowLevelEventCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddEscapeWhiteList request structure.
 * @class
 */
class AddEscapeWhiteListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Allowed event type
   `ESCAPE_CGROUPS`: Cgroup escape.
   `ESCAPE_TAMPER_SENSITIVE_FILE`: File tamper escape.
   `ESCAPE_DOCKER_API`: Docker API access escape.
   `ESCAPE_VUL_OCCURRED`: Vulnerability exploit.
   `MOUNT_SENSITIVE_PTAH`: Sensitive path mount.
   `PRIVILEGE_CONTAINER_START`: Privileged container.
   `PRIVILEGE`: Program privilege escalation escape.
         * @type {Array.<string> || null}
         */
        this.EventType = null;

        /**
         * Array of allowed image IDs
         * @type {Array.<string> || null}
         */
        this.ImageIDs = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.ImageIDs = 'ImageIDs' in params ? params.ImageIDs : null;

    }
}

/**
 * DescribeESAggregations request structure.
 * @class
 */
class DescribeESAggregationsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ES aggregation condition in JSON
         * @type {string || null}
         */
        this.Query = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Query = 'Query' in params ? params.Query : null;

    }
}

/**
 * Response parameters structure of the network cluster Pod
 * @class
 */
class NetworkClusterPodInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Pod space
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Pod label
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Labels = null;

        /**
         * Pod type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.WorkloadKind = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.Labels = 'Labels' in params ? params.Labels : null;
        this.WorkloadKind = 'WorkloadKind' in params ? params.WorkloadKind : null;

    }
}

/**
 * DescribeAssetImageRiskListExport response structure.
 * @class
 */
class DescribeAssetImageRiskListExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel file download URL
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifySecLogCleanSettingInfo request structure.
 * @class
 */
class ModifySecLogCleanSettingInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Minimum storage (50-99) for triggering clearing
         * @type {number || null}
         */
        this.ReservesLimit = null;

        /**
         * Storage limit (greater than 0 and smaller than `ReservesLimit`) for stopping clearing
         * @type {number || null}
         */
        this.ReservesDeadline = null;

        /**
         * Storage period (no less than one day) for triggering clearing
         * @type {number || null}
         */
        this.DayLimit = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ReservesLimit = 'ReservesLimit' in params ? params.ReservesLimit : null;
        this.ReservesDeadline = 'ReservesDeadline' in params ? params.ReservesDeadline : null;
        this.DayLimit = 'DayLimit' in params ? params.DayLimit : null;

    }
}

/**
 * DescribeAccessControlEvents request structure.
 * @class
 */
class DescribeAccessControlEventsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeAccessControlRuleDetail request structure.
 * @class
 */
class DescribeAccessControlRuleDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique policy ID
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Image ID, which is used only when allowing an event.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

    }
}

/**
 * ModifyVirusScanTimeoutSetting request structure.
 * @class
 */
class ModifyVirusScanTimeoutSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Timeout period in hours. Value range: 5-24.
         * @type {number || null}
         */
        this.Timeout = null;

        /**
         * Scan type. Valid values: `0` (quick scan); `1` (scheduled scan).
         * @type {number || null}
         */
        this.ScanType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Timeout = 'Timeout' in params ? params.Timeout : null;
        this.ScanType = 'ScanType' in params ? params.ScanType : null;

    }
}

/**
 * CreateProcessEventsExportJob response structure.
 * @class
 */
class CreateProcessEventsExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Image risk details
 * @class
 */
class ImageRiskInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Behavior
         * @type {number || null}
         */
        this.Behavior = null;

        /**
         * Type
         * @type {number || null}
         */
        this.Type = null;

        /**
         * Level
         * @type {number || null}
         */
        this.Level = null;

        /**
         * Details
         * @type {string || null}
         */
        this.Desc = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.InstructionContent = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Behavior = 'Behavior' in params ? params.Behavior : null;
        this.Type = 'Type' in params ? params.Type : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.Desc = 'Desc' in params ? params.Desc : null;
        this.InstructionContent = 'InstructionContent' in params ? params.InstructionContent : null;

    }
}

/**
 * DescribeRiskSyscallDetail response structure.
 * @class
 */
class DescribeRiskSyscallDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Basic information of the event
         * @type {RunTimeEventBaseInfo || null}
         */
        this.EventBaseInfo = null;

        /**
         * Process information
         * @type {ProcessDetailInfo || null}
         */
        this.ProcessInfo = null;

        /**
         * Parent process information
         * @type {ProcessDetailBaseInfo || null}
         */
        this.ParentProcessInfo = null;

        /**
         * Event description
         * @type {RiskSyscallEventDescription || null}
         */
        this.EventDetail = null;

        /**
         * Ancestor process information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ProcessBaseInfo || null}
         */
        this.AncestorProcessInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventBaseInfo) {
            let obj = new RunTimeEventBaseInfo();
            obj.deserialize(params.EventBaseInfo)
            this.EventBaseInfo = obj;
        }

        if (params.ProcessInfo) {
            let obj = new ProcessDetailInfo();
            obj.deserialize(params.ProcessInfo)
            this.ProcessInfo = obj;
        }

        if (params.ParentProcessInfo) {
            let obj = new ProcessDetailBaseInfo();
            obj.deserialize(params.ParentProcessInfo)
            this.ParentProcessInfo = obj;
        }

        if (params.EventDetail) {
            let obj = new RiskSyscallEventDescription();
            obj.deserialize(params.EventDetail)
            this.EventDetail = obj;
        }

        if (params.AncestorProcessInfo) {
            let obj = new ProcessBaseInfo();
            obj.deserialize(params.AncestorProcessInfo)
            this.AncestorProcessInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteK8sApiAbnormalRule response structure.
 * @class
 */
class DeleteK8sApiAbnormalRuleResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Server asset details
 * @class
 */
class ComplianceHostDetailInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Docker version on the server
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DockerVersion = null;

        /**
         * K8s version on the server
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.K8SVersion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DockerVersion = 'DockerVersion' in params ? params.DockerVersion : null;
        this.K8SVersion = 'K8SVersion' in params ? params.K8SVersion : null;

    }
}

/**
 * Information of the component affected by the vulnerability
 * @class
 */
class VulAffectedImageComponentInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Component name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Component version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Version = null;

        /**
         * Fixed component version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FixedVersion = null;

        /**
         * Component path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Path = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Version = 'Version' in params ? params.Version : null;
        this.FixedVersion = 'FixedVersion' in params ? params.FixedVersion : null;
        this.Path = 'Path' in params ? params.Path : null;

    }
}

/**
 * DescribePromotionActivity request structure.
 * @class
 */
class DescribePromotionActivityRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Promotion ID
         * @type {number || null}
         */
        this.ActiveID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ActiveID = 'ActiveID' in params ? params.ActiveID : null;

    }
}

/**
 * Container runtime security - Information of the access control sub-policy
 * @class
 */
class AccessControlChildRuleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Policy mode. `RULE_MODE_RELEASE`: Allow.
   `RULE_MODE_ALERT`: Alert.
   `RULE_MODE_HOLDUP`: Block.
         * @type {string || null}
         */
        this.RuleMode = null;

        /**
         * Process path
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Accessed file path, which is valid only for access control.
         * @type {string || null}
         */
        this.TargetFilePath = null;

        /**
         * Sub-policy ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RuleId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleMode = 'RuleMode' in params ? params.RuleMode : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.TargetFilePath = 'TargetFilePath' in params ? params.TargetFilePath : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;

    }
}

/**
 * DescribeSecLogKafkaUIN request structure.
 * @class
 */
class DescribeSecLogKafkaUINRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * CreateSystemVulExportJob response structure.
 * @class
 */
class CreateSystemVulExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeRiskSyscallNames response structure.
 * @class
 */
class DescribeRiskSyscallNamesResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of syscall names
         * @type {Array.<string> || null}
         */
        this.SyscallNames = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.SyscallNames = 'SyscallNames' in params ? params.SyscallNames : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddEditReverseShellWhiteList response structure.
 * @class
 */
class AddEditReverseShellWhiteListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAbnormalProcessEvents response structure.
 * @class
 */
class DescribeAbnormalProcessEventsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Array of abnormal processes
         * @type {Array.<AbnormalProcessEventInfo> || null}
         */
        this.EventSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.EventSet) {
            this.EventSet = new Array();
            for (let z in params.EventSet) {
                let obj = new AbnormalProcessEventInfo();
                obj.deserialize(params.EventSet[z]);
                this.EventSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * InitializeUserComplianceEnvironment response structure.
 * @class
 */
class InitializeUserComplianceEnvironmentResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Description of the container reverse shell event at runtime
 * @class
 */
class ReverseShellEventDescription extends  AbstractModel {
    constructor(){
        super();

        /**
         * Description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event remarks
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Destination address
         * @type {string || null}
         */
        this.DstAddress = null;

        /**
         * Last processing time of the event
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.OperationTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Description = 'Description' in params ? params.Description : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.DstAddress = 'DstAddress' in params ? params.DstAddress : null;
        this.OperationTime = 'OperationTime' in params ? params.OperationTime : null;

    }
}

/**
 * DescribeImageRegistryNamespaceList response structure.
 * @class
 */
class DescribeImageRegistryNamespaceListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of namespaces that can be returned
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of namespaces
         * @type {Array.<string> || null}
         */
        this.NamespaceList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.NamespaceList = 'NamespaceList' in params ? params.NamespaceList : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of the image affected by the vulnerability
 * @class
 */
class VulAffectedImageInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Number of associated servers
         * @type {number || null}
         */
        this.HostCount = null;

        /**
         * Number of associated containers
         * @type {number || null}
         */
        this.ContainerCount = null;

        /**
         * List of components
         * @type {Array.<VulAffectedImageComponentInfo> || null}
         */
        this.ComponentList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.HostCount = 'HostCount' in params ? params.HostCount : null;
        this.ContainerCount = 'ContainerCount' in params ? params.ContainerCount : null;

        if (params.ComponentList) {
            this.ComponentList = new Array();
            for (let z in params.ComponentList) {
                let obj = new VulAffectedImageComponentInfo();
                obj.deserialize(params.ComponentList[z]);
                this.ComponentList.push(obj);
            }
        }

    }
}

/**
 * Host tag information
 * @class
 */
class TagInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Tag key
         * @type {string || null}
         */
        this.TagKey = null;

        /**
         * Tag value
         * @type {string || null}
         */
        this.TagValue = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TagKey = 'TagKey' in params ? params.TagKey : null;
        this.TagValue = 'TagValue' in params ? params.TagValue : null;

    }
}

/**
 * DescribeK8sApiAbnormalRuleList response structure.
 * @class
 */
class DescribeK8sApiAbnormalRuleListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule list
         * @type {Array.<K8sApiAbnormalRuleListItem> || null}
         */
        this.List = null;

        /**
         * Total count
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new K8sApiAbnormalRuleListItem();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteCompliancePolicyAssetSetFromWhitelist response structure.
 * @class
 */
class DeleteCompliancePolicyAssetSetFromWhitelistResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVirusTaskList response structure.
 * @class
 */
class DescribeVirusTaskListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Virus scanning list
         * @type {Array.<VirusTaskInfo> || null}
         */
        this.List = null;

        /**
         * Total number (number of container tasks)
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VirusTaskInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetHostDetail response structure.
 * @class
 */
class DescribeAssetHostDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * TCSS UUID
         * @type {string || null}
         */
        this.UUID = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Server name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Server group
         * @type {string || null}
         */
        this.Group = null;

        /**
         * Server IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * OS
         * @type {string || null}
         */
        this.OsName = null;

        /**
         * Agent version
         * @type {string || null}
         */
        this.AgentVersion = null;

        /**
         * Kernel version
         * @type {string || null}
         */
        this.KernelVersion = null;

        /**
         * Docker version
         * @type {string || null}
         */
        this.DockerVersion = null;

        /**
         * Docker API version
         * @type {string || null}
         */
        this.DockerAPIVersion = null;

        /**
         * Docker version for Go
         * @type {string || null}
         */
        this.DockerGoVersion = null;

        /**
         * Docker file system type
         * @type {string || null}
         */
        this.DockerFileSystemDriver = null;

        /**
         * Docker root directory
         * @type {string || null}
         */
        this.DockerRootDir = null;

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageCnt = null;

        /**
         * Number of containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * K8s IP
         * @type {string || null}
         */
        this.K8sMasterIP = null;

        /**
         * K8s version
         * @type {string || null}
         */
        this.K8sVersion = null;

        /**
         * kube proxy
         * @type {string || null}
         */
        this.KubeProxyVersion = null;

        /**
         * Valid values: `UNINSTALL` (not installed); `OFFLINE` (offline); `ONLINE` (defended).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Whether it is Containerd
         * @type {boolean || null}
         */
        this.IsContainerd = null;

        /**
         * Server source. Valid values: `TENCENTCLOUD` (Tencent Cloud instance); `OTHERCLOUD` (non-Tencent Cloud instance).
         * @type {string || null}
         */
        this.MachineType = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIp = null;

        /**
         * Server instance ID
         * @type {string || null}
         */
        this.InstanceID = null;

        /**
         * Region ID
         * @type {number || null}
         */
        this.RegionID = null;

        /**
         * Project
         * @type {ProjectInfo || null}
         */
        this.Project = null;

        /**
         * Tags
         * @type {Array.<TagInfo> || null}
         */
        this.Tags = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UUID = 'UUID' in params ? params.UUID : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.Group = 'Group' in params ? params.Group : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.OsName = 'OsName' in params ? params.OsName : null;
        this.AgentVersion = 'AgentVersion' in params ? params.AgentVersion : null;
        this.KernelVersion = 'KernelVersion' in params ? params.KernelVersion : null;
        this.DockerVersion = 'DockerVersion' in params ? params.DockerVersion : null;
        this.DockerAPIVersion = 'DockerAPIVersion' in params ? params.DockerAPIVersion : null;
        this.DockerGoVersion = 'DockerGoVersion' in params ? params.DockerGoVersion : null;
        this.DockerFileSystemDriver = 'DockerFileSystemDriver' in params ? params.DockerFileSystemDriver : null;
        this.DockerRootDir = 'DockerRootDir' in params ? params.DockerRootDir : null;
        this.ImageCnt = 'ImageCnt' in params ? params.ImageCnt : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.K8sMasterIP = 'K8sMasterIP' in params ? params.K8sMasterIP : null;
        this.K8sVersion = 'K8sVersion' in params ? params.K8sVersion : null;
        this.KubeProxyVersion = 'KubeProxyVersion' in params ? params.KubeProxyVersion : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.IsContainerd = 'IsContainerd' in params ? params.IsContainerd : null;
        this.MachineType = 'MachineType' in params ? params.MachineType : null;
        this.PublicIp = 'PublicIp' in params ? params.PublicIp : null;
        this.InstanceID = 'InstanceID' in params ? params.InstanceID : null;
        this.RegionID = 'RegionID' in params ? params.RegionID : null;

        if (params.Project) {
            let obj = new ProjectInfo();
            obj.deserialize(params.Project)
            this.Project = obj;
        }

        if (params.Tags) {
            this.Tags = new Array();
            for (let z in params.Tags) {
                let obj = new TagInfo();
                obj.deserialize(params.Tags[z]);
                this.Tags.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Optional information of the security log Kafka
 * @class
 */
class CKafkaInstanceInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Instance ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceID = null;

        /**
         * Instance name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceName = null;

        /**
         * Topic list
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<CKafkaTopicInfo> || null}
         */
        this.TopicList = null;

        /**
         * Route list
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<CkafkaRouteInfo> || null}
         */
        this.RouteList = null;

        /**
         * Kafka version number
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.KafkaVersion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.InstanceID = 'InstanceID' in params ? params.InstanceID : null;
        this.InstanceName = 'InstanceName' in params ? params.InstanceName : null;

        if (params.TopicList) {
            this.TopicList = new Array();
            for (let z in params.TopicList) {
                let obj = new CKafkaTopicInfo();
                obj.deserialize(params.TopicList[z]);
                this.TopicList.push(obj);
            }
        }

        if (params.RouteList) {
            this.RouteList = new Array();
            for (let z in params.RouteList) {
                let obj = new CkafkaRouteInfo();
                obj.deserialize(params.RouteList[z]);
                this.RouteList.push(obj);
            }
        }
        this.KafkaVersion = 'KafkaVersion' in params ? params.KafkaVersion : null;

    }
}

/**
 * DescribeAffectedNodeList response structure.
 * @class
 */
class DescribeAffectedNodeListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of affected nodes
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of affected nodes
         * @type {Array.<AffectedNodeItem> || null}
         */
        this.AffectedNodeList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.AffectedNodeList) {
            this.AffectedNodeList = new Array();
            for (let z in params.AffectedNodeList) {
                let obj = new AffectedNodeItem();
                obj.deserialize(params.AffectedNodeList[z]);
                this.AffectedNodeList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteK8sApiAbnormalRule request structure.
 * @class
 */
class DeleteK8sApiAbnormalRuleRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule ID set
         * @type {Array.<string> || null}
         */
        this.RuleIDSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleIDSet = 'RuleIDSet' in params ? params.RuleIDSet : null;

    }
}

/**
 * ModifyVirusFileStatus response structure.
 * @class
 */
class ModifyVirusFileStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAbnormalProcessRulesExport response structure.
 * @class
 */
class DescribeAbnormalProcessRulesExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * SyncAssetImageRegistryAsset response structure.
 * @class
 */
class SyncAssetImageRegistryAssetResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAbnormalProcessEventTendency request structure.
 * @class
 */
class DescribeAbnormalProcessEventTendencyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * End time
         * @type {string || null}
         */
        this.EndTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;

    }
}

/**
 * DescribeEscapeEventDetail response structure.
 * @class
 */
class DescribeEscapeEventDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Basic information of the event
         * @type {RunTimeEventBaseInfo || null}
         */
        this.EventBaseInfo = null;

        /**
         * Process information
         * @type {ProcessDetailInfo || null}
         */
        this.ProcessInfo = null;

        /**
         * Event description
         * @type {EscapeEventDescription || null}
         */
        this.EventDetail = null;

        /**
         * Parent process information
         * @type {ProcessBaseInfo || null}
         */
        this.ParentProcessInfo = null;

        /**
         * Ancestor process information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ProcessBaseInfo || null}
         */
        this.AncestorProcessInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventBaseInfo) {
            let obj = new RunTimeEventBaseInfo();
            obj.deserialize(params.EventBaseInfo)
            this.EventBaseInfo = obj;
        }

        if (params.ProcessInfo) {
            let obj = new ProcessDetailInfo();
            obj.deserialize(params.ProcessInfo)
            this.ProcessInfo = obj;
        }

        if (params.EventDetail) {
            let obj = new EscapeEventDescription();
            obj.deserialize(params.EventDetail)
            this.EventDetail = obj;
        }

        if (params.ParentProcessInfo) {
            let obj = new ProcessBaseInfo();
            obj.deserialize(params.ParentProcessInfo)
            this.ParentProcessInfo = obj;
        }

        if (params.AncestorProcessInfo) {
            let obj = new ProcessBaseInfo();
            obj.deserialize(params.AncestorProcessInfo)
            this.AncestorProcessInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ScanCompliancePolicyItems response structure.
 * @class
 */
class ScanCompliancePolicyItemsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of another check task
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteAccessControlRules response structure.
 * @class
 */
class DeleteAccessControlRulesResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulImageSummary response structure.
 * @class
 */
class DescribeVulImageSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of images affected by critical or high-risk vulnerabilities
         * @type {number || null}
         */
        this.SeriousVulImageCount = null;

        /**
         * Number of scanned images
         * @type {number || null}
         */
        this.ScannedImageCount = null;

        /**
         * Total number of vulnerabilities
         * @type {number || null}
         */
        this.VulTotalCount = null;

        /**
         * Number of system vulnerabilities
         * @type {number || null}
         */
        this.SysTemVulCount = null;

        /**
         * Number of web application vulnerabilities
         * @type {number || null}
         */
        this.WebVulCount = null;

        /**
         * Number of licensed images
         * @type {number || null}
         */
        this.AllAuthorizedImageCount = null;

        /**
         * Number of emergency vulnerabilities
         * @type {number || null}
         */
        this.EmergencyVulCount = null;

        /**
         * Total number of vulnerabilities that can be scanned for
         * @type {number || null}
         */
        this.SupportVulTotalCount = null;

        /**
         * Vulnerability library update time
         * @type {string || null}
         */
        this.VulLibraryUpdateTime = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.SeriousVulImageCount = 'SeriousVulImageCount' in params ? params.SeriousVulImageCount : null;
        this.ScannedImageCount = 'ScannedImageCount' in params ? params.ScannedImageCount : null;
        this.VulTotalCount = 'VulTotalCount' in params ? params.VulTotalCount : null;
        this.SysTemVulCount = 'SysTemVulCount' in params ? params.SysTemVulCount : null;
        this.WebVulCount = 'WebVulCount' in params ? params.WebVulCount : null;
        this.AllAuthorizedImageCount = 'AllAuthorizedImageCount' in params ? params.AllAuthorizedImageCount : null;
        this.EmergencyVulCount = 'EmergencyVulCount' in params ? params.EmergencyVulCount : null;
        this.SupportVulTotalCount = 'SupportVulTotalCount' in params ? params.SupportVulTotalCount : null;
        this.VulLibraryUpdateTime = 'VulLibraryUpdateTime' in params ? params.VulLibraryUpdateTime : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeEscapeRuleInfo request structure.
 * @class
 */
class DescribeEscapeRuleInfoRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * Trojan trend details
 * @class
 */
class VirusTendencyInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Date
         * @type {string || null}
         */
        this.Date = null;

        /**
         * Total number of pending events
         * @type {number || null}
         */
        this.PendingEventCount = null;

        /**
         * Total number of containers at risk
         * @type {number || null}
         */
        this.RiskContainerCount = null;

        /**
         * Total number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Total number of isolated events
         * @type {number || null}
         */
        this.IsolateEventCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Date = 'Date' in params ? params.Date : null;
        this.PendingEventCount = 'PendingEventCount' in params ? params.PendingEventCount : null;
        this.RiskContainerCount = 'RiskContainerCount' in params ? params.RiskContainerCount : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.IsolateEventCount = 'IsolateEventCount' in params ? params.IsolateEventCount : null;

    }
}

/**
 * DescribeComplianceWhitelistItemList response structure.
 * @class
 */
class DescribeComplianceWhitelistItemListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Allowlist
         * @type {Array.<ComplianceWhitelistItem> || null}
         */
        this.WhitelistItemSet = null;

        /**
         * Total number of allowed items
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.WhitelistItemSet) {
            this.WhitelistItemSet = new Array();
            for (let z in params.WhitelistItemSet) {
                let obj = new ComplianceWhitelistItem();
                obj.deserialize(params.WhitelistItemSet[z]);
                this.WhitelistItemSet.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetWebServiceList request structure.
 * @class
 */
class DescribeAssetWebServiceListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Keywords- String - Required: No - Optional field for the fuzzy query</li>
<li>Type- String - Required: No - Server status. "Apache"
"Jboss"
"lighttpd"
"Nginx"
"Tomcat"</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * UpdateImageRegistryTimingScanTask request structure.
 * @class
 */
class UpdateImageRegistryTimingScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Scheduled scan cycle
         * @type {number || null}
         */
        this.ScanPeriod = null;

        /**
         * Scheduled scan switch
         * @type {boolean || null}
         */
        this.Enable = null;

        /**
         * Scheduled scan time
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Array of the scanned trojan types
         * @type {Array.<string> || null}
         */
        this.ScanType = null;

        /**
         * Scanned image
         * @type {Array.<ImageInfo> || null}
         */
        this.Images = null;

        /**
         * Whether to scan all
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * ID of the image to be scanned
         * @type {Array.<number> || null}
         */
        this.Id = null;

        /**
         * Whether to scan for the latest version
         * @type {boolean || null}
         */
        this.Latest = null;

        /**
         * 
         * @type {boolean || null}
         */
        this.ContainerRunning = null;

        /**
         * 
         * @type {string || null}
         */
        this.ScanEndTime = null;

        /**
         * 
         * @type {number || null}
         */
        this.ScanScope = null;

        /**
         * 
         * @type {Array.<string> || null}
         */
        this.RegistryType = null;

        /**
         * 
         * @type {Array.<string> || null}
         */
        this.Namespace = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ScanPeriod = 'ScanPeriod' in params ? params.ScanPeriod : null;
        this.Enable = 'Enable' in params ? params.Enable : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.ScanType = 'ScanType' in params ? params.ScanType : null;

        if (params.Images) {
            this.Images = new Array();
            for (let z in params.Images) {
                let obj = new ImageInfo();
                obj.deserialize(params.Images[z]);
                this.Images.push(obj);
            }
        }
        this.All = 'All' in params ? params.All : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.Latest = 'Latest' in params ? params.Latest : null;
        this.ContainerRunning = 'ContainerRunning' in params ? params.ContainerRunning : null;
        this.ScanEndTime = 'ScanEndTime' in params ? params.ScanEndTime : null;
        this.ScanScope = 'ScanScope' in params ? params.ScanScope : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;

    }
}

/**
 * DescribeEscapeEventTendency request structure.
 * @class
 */
class DescribeEscapeEventTendencyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * End time
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Start time
         * @type {string || null}
         */
        this.StartTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EndTime = 'EndTime' in params ? params.EndTime : null;
        this.StartTime = 'StartTime' in params ? params.StartTime : null;

    }
}

/**
 * DescribeInspectionReport response structure.
 * @class
 */
class DescribeInspectionReportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Report name
         * @type {string || null}
         */
        this.ReportName = null;

        /**
         * Download URL
         * @type {string || null}
         */
        this.ReportUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ReportName = 'ReportName' in params ? params.ReportName : null;
        this.ReportUrl = 'ReportUrl' in params ? params.ReportUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Security log - Settings of delivery to CLS
 * @class
 */
class SecLogDeliveryClsSettingInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Log type
         * @type {string || null}
         */
        this.LogType = null;

        /**
         * Delivery status. Valid values: `true` (enabled); `false` (disabled).
         * @type {boolean || null}
         */
        this.State = null;

        /**
         * Region
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Logset
         * @type {string || null}
         */
        this.LogSet = null;

        /**
         * Topic ID
         * @type {string || null}
         */
        this.TopicID = null;

        /**
         * Logset name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LogSetName = null;

        /**
         * Topic name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TopicName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LogType = 'LogType' in params ? params.LogType : null;
        this.State = 'State' in params ? params.State : null;
        this.Region = 'Region' in params ? params.Region : null;
        this.LogSet = 'LogSet' in params ? params.LogSet : null;
        this.TopicID = 'TopicID' in params ? params.TopicID : null;
        this.LogSetName = 'LogSetName' in params ? params.LogSetName : null;
        this.TopicName = 'TopicName' in params ? params.TopicName : null;

    }
}

/**
 * DescribeVirusScanTaskStatus request structure.
 * @class
 */
class DescribeVirusScanTaskStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;

    }
}

/**
 * CreateAssetImageScanSetting response structure.
 * @class
 */
class CreateAssetImageScanSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulDefenceEventDetail request structure.
 * @class
 */
class DescribeVulDefenceEventDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event ID
         * @type {number || null}
         */
        this.EventID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventID = 'EventID' in params ? params.EventID : null;

    }
}

/**
 * DescribeVirusAutoIsolateSampleList response structure.
 * @class
 */
class DescribeVirusAutoIsolateSampleListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of automatically isolated trojan samples
         * @type {Array.<VirusAutoIsolateSampleInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VirusAutoIsolateSampleInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVirusEventTendency request structure.
 * @class
 */
class DescribeVirusEventTendencyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trend cycle in days. Default value: `7`.
         * @type {number || null}
         */
        this.TendencyPeriod = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TendencyPeriod = 'TendencyPeriod' in params ? params.TendencyPeriod : null;

    }
}

/**
 * DescribeAssetImageRegistryVulListExport response structure.
 * @class
 */
class DescribeAssetImageRegistryVulListExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel file download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Port of the custom rule of the network cluster policy
 * @class
 */
class NetworkPorts extends  AbstractModel {
    constructor(){
        super();

        /**
         * Protocol of the network policy
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Protocol = null;

        /**
         * Port of the network policy
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Port = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Protocol = 'Protocol' in params ? params.Protocol : null;
        this.Port = 'Port' in params ? params.Port : null;

    }
}

/**
 * DescribeAssetContainerDetail request structure.
 * @class
 */
class DescribeAssetContainerDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;

    }
}

/**
 * ModifyAccessControlStatus request structure.
 * @class
 */
class ModifyAccessControlStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of event IDs
         * @type {Array.<string> || null}
         */
        this.EventIdSet = null;

        /**
         * Event status     
`EVENT_DEALED`: Processed.
     `EVENT_INGNORE`: Ignored.
     `EVENT_DEL`: Deleted.
     `EVENT_ADD_WHITE`: Allowed.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIdSet = 'EventIdSet' in params ? params.EventIdSet : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

    }
}

/**
 * CreateProcessEventsExportJob request structure.
 * @class
 */
class CreateProcessEventsExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Maximum value: `10000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter - status. Valid values: `EVENT_UNDEAL` (pending); `EVENT_DEALED` (processed); `EVENT_INGNORE` (ignored).
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field: `latest_found_time`.
         * @type {string || null}
         */
        this.By = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * DescribeVulDetail response structure.
 * @class
 */
class DescribeVulDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability details
         * @type {VulDetailInfo || null}
         */
        this.VulInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.VulInfo) {
            let obj = new VulDetailInfo();
            obj.deserialize(params.VulInfo)
            this.VulInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * 
 * @class
 */
class RegistryConnDetectResult extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {string || null}
         */
        this.Quuid = null;

        /**
         * 
         * @type {string || null}
         */
        this.Uuid = null;

        /**
         * 
         * @type {string || null}
         */
        this.ConnDetectStatus = null;

        /**
         * 
         * @type {string || null}
         */
        this.ConnDetectMessage = null;

        /**
         * 
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * 
         * @type {string || null}
         */
        this.FailReason = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Quuid = 'Quuid' in params ? params.Quuid : null;
        this.Uuid = 'Uuid' in params ? params.Uuid : null;
        this.ConnDetectStatus = 'ConnDetectStatus' in params ? params.ConnDetectStatus : null;
        this.ConnDetectMessage = 'ConnDetectMessage' in params ? params.ConnDetectMessage : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.FailReason = 'FailReason' in params ? params.FailReason : null;

    }
}

/**
 * ModifyCompliancePeriodTask response structure.
 * @class
 */
class ModifyCompliancePeriodTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Container runtime security - Information of the high-risk syscall
 * @class
 */
class RiskSyscallEventInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Process name
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Process path
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Generation time
         * @type {string || null}
         */
        this.FoundTime = null;

        /**
         * Event solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Syscall name
         * @type {string || null}
         */
        this.SyscallName = null;

        /**
         * Status. `EVENT_UNDEAL`: Pending.
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
    `EVENT_ADD_WHITE`: Allowed.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event ID
         * @type {string || null}
         */
        this.EventId = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Pod (instance) name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Whether the system monitoring rule name exists
         * @type {boolean || null}
         */
        this.RuleExist = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Last generation time
         * @type {string || null}
         */
        this.LatestFoundTime = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
"NODE_DESTROYED"      // The node is terminated.
"CONTAINER_EXITED"    // The container exited.
"CONTAINER_DESTROYED" // The container was terminated.
"SHARED_HOST"         // The container shares the network with the server.
"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
"UNKNOW"              // The reason is unknown.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Container status
`RUNNING`: Running.
`PAUSED`: Paused.
`STOPPED`: Stopped.
`CREATED`: Created.
`DESTROYED`: Terminated.
`RESTARTING`: Restarting.
`REMOVING`: Removing.
         * @type {string || null}
         */
        this.ContainerStatus = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Unique node ID
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * Node public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * uuid
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Private IP of the node
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.FoundTime = 'FoundTime' in params ? params.FoundTime : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.SyscallName = 'SyscallName' in params ? params.SyscallName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.EventId = 'EventId' in params ? params.EventId : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.RuleExist = 'RuleExist' in params ? params.RuleExist : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.LatestFoundTime = 'LatestFoundTime' in params ? params.LatestFoundTime : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.ContainerStatus = 'ContainerStatus' in params ? params.ContainerStatus : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;

    }
}

/**
 * DescribeEscapeEventTendency response structure.
 * @class
 */
class DescribeEscapeEventTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trend of pending escape events
         * @type {Array.<EscapeEventTendencyInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new EscapeEventTendencyInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Details of a cluster security check item
 * @class
 */
class ClusterCheckItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique ID of the check item
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CheckItemId = null;

        /**
         * Name of the risk item
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Detailed description of the check item
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ItemDetail = null;

        /**
         * Severity. Valid values: `Serious` (critical); `High` (high); `Middle` (medium); `Hint` (prompt).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Check target and risky target. Valid values: `Runc`, `Kubelet`, `Containerd`, `Pods`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskTarget = null;

        /**
         * Risk type. Valid values: `CVERisk` (vulnerability risk); `ConfigRisk` (configuration risk).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskType = null;

        /**
         * Risk type of the check item. Valid values: `PrivilegePromotion` (privilege escalation); `RefuseService` (service rejected); `DirectoryEscape` (directory traversal); `UnauthorizedAccess` (unauthorized access); `PrivilegeAndAccessControl` (permissions, privileges, and access controls); `SensitiveInfoLeak` (sensitive data leakage).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskAttribute = null;

        /**
         * Risk characteristic and tag. Valid values: `ExistEXP` (an EXP exists); `ExistPOC` (a POC exists); `NoNeedReboot` (restart not required); `ServerRestart` (service restart); `RemoteInfoLeak` (remote information leakage); `RemoteRefuseService` (remote denial of service); `RemoteExploit` (remote exploit); `RemoteExecute` (remote execution).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskProperty = null;

        /**
         * CVE No.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CVENumber = null;

        /**
         * Disclosure time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DiscoverTime = null;

        /**
         * Solution
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * CVSS information, which is used for drawing.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CVSS = null;

        /**
         * CVSS score
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CVSSScore = null;

        /**
         * Reference link
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RelateLink = null;

        /**
         * Affected type. Valid values: `Node`, `Workload`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AffectedType = null;

        /**
         * Affected version information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AffectedVersion = null;

        /**
         * Number of ignored assets
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.IgnoredAssetNum = null;

        /**
         * Whether to ignore the check item
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.IsIgnored = null;

        /**
         * Impact assessment
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskAssessment = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CheckItemId = 'CheckItemId' in params ? params.CheckItemId : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.ItemDetail = 'ItemDetail' in params ? params.ItemDetail : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.RiskTarget = 'RiskTarget' in params ? params.RiskTarget : null;
        this.RiskType = 'RiskType' in params ? params.RiskType : null;
        this.RiskAttribute = 'RiskAttribute' in params ? params.RiskAttribute : null;
        this.RiskProperty = 'RiskProperty' in params ? params.RiskProperty : null;
        this.CVENumber = 'CVENumber' in params ? params.CVENumber : null;
        this.DiscoverTime = 'DiscoverTime' in params ? params.DiscoverTime : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.CVSS = 'CVSS' in params ? params.CVSS : null;
        this.CVSSScore = 'CVSSScore' in params ? params.CVSSScore : null;
        this.RelateLink = 'RelateLink' in params ? params.RelateLink : null;
        this.AffectedType = 'AffectedType' in params ? params.AffectedType : null;
        this.AffectedVersion = 'AffectedVersion' in params ? params.AffectedVersion : null;
        this.IgnoredAssetNum = 'IgnoredAssetNum' in params ? params.IgnoredAssetNum : null;
        this.IsIgnored = 'IsIgnored' in params ? params.IsIgnored : null;
        this.RiskAssessment = 'RiskAssessment' in params ? params.RiskAssessment : null;

    }
}

/**
 * DescribeAssetImageVulList response structure.
 * @class
 */
class DescribeAssetImageVulListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of image vulnerabilities
         * @type {Array.<ImagesVul> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImagesVul();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeK8sApiAbnormalSummary request structure.
 * @class
 */
class DescribeK8sApiAbnormalSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAbnormalProcessLevelSummary request structure.
 * @class
 */
class DescribeAbnormalProcessLevelSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * TCSS
Key-value pair filter for conditional filtering queries, such as filter ID, name, and status
If more than one filter exists, the logical relationship between these filters is `AND`.
If multiple values exist in one filter, the logical relationship between these values is `OR`.
 * @class
 */
class AssetFilters extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * One or more filter values
         * @type {Array.<string> || null}
         */
        this.Values = null;

        /**
         * Whether to use fuzzy query
         * @type {boolean || null}
         */
        this.ExactMatch = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Values = 'Values' in params ? params.Values : null;
        this.ExactMatch = 'ExactMatch' in params ? params.ExactMatch : null;

    }
}

/**
 * ModifyK8sApiAbnormalRuleStatus request structure.
 * @class
 */
class ModifyK8sApiAbnormalRuleStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule ID
         * @type {string || null}
         */
        this.RuleID = null;

        /**
         * Status of the rule. Values: `true` (Enabled), `false` (Disabled)
         * @type {boolean || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleID = 'RuleID' in params ? params.RuleID : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * DescribeNetworkFirewallPolicyDetail response structure.
 * @class
 */
class DescribeNetworkFirewallPolicyDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.PolicyName = null;

        /**
         * Namespace
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Inbound type
         * @type {number || null}
         */
        this.FromPolicyRule = null;

        /**
         * Outbound type
         * @type {number || null}
         */
        this.ToPolicyRule = null;

        /**
         * Custom rule
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<NetworkCustomPolicy> || null}
         */
        this.CustomPolicy = null;

        /**
         * Pod selector
         * @type {string || null}
         */
        this.PodSelector = null;

        /**
         * Policy description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Policy creation time
         * @type {string || null}
         */
        this.PolicyCreateTime = null;

        /**
         * Policy source type. Valid values: `System` (synched from the cluster); `Manual` (added manually).
         * @type {string || null}
         */
        this.PolicySourceType = null;

        /**
         * Network plugin of the network policy
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.NetworkPolicyPlugin = null;

        /**
         * Network policy status
         * @type {string || null}
         */
        this.PublishStatus = null;

        /**
         * Policy publishing result
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PublishResult = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.PolicyName = 'PolicyName' in params ? params.PolicyName : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.FromPolicyRule = 'FromPolicyRule' in params ? params.FromPolicyRule : null;
        this.ToPolicyRule = 'ToPolicyRule' in params ? params.ToPolicyRule : null;

        if (params.CustomPolicy) {
            this.CustomPolicy = new Array();
            for (let z in params.CustomPolicy) {
                let obj = new NetworkCustomPolicy();
                obj.deserialize(params.CustomPolicy[z]);
                this.CustomPolicy.push(obj);
            }
        }
        this.PodSelector = 'PodSelector' in params ? params.PodSelector : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.PolicyCreateTime = 'PolicyCreateTime' in params ? params.PolicyCreateTime : null;
        this.PolicySourceType = 'PolicySourceType' in params ? params.PolicySourceType : null;
        this.NetworkPolicyPlugin = 'NetworkPolicyPlugin' in params ? params.NetworkPolicyPlugin : null;
        this.PublishStatus = 'PublishStatus' in params ? params.PublishStatus : null;
        this.PublishResult = 'PublishResult' in params ? params.PublishResult : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribePostPayDetail response structure.
 * @class
 */
class DescribePostPayDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Elastic billing details
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<SoftQuotaDayInfo> || null}
         */
        this.SoftQuotaDayDetail = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.SoftQuotaDayDetail) {
            this.SoftQuotaDayDetail = new Array();
            for (let z in params.SoftQuotaDayDetail) {
                let obj = new SoftQuotaDayInfo();
                obj.deserialize(params.SoftQuotaDayDetail[z]);
                this.SoftQuotaDayDetail.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeK8sApiAbnormalEventInfo response structure.
 * @class
 */
class DescribeK8sApiAbnormalEventInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event details
         * @type {K8sApiAbnormalEventInfo || null}
         */
        this.Info = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Info) {
            let obj = new K8sApiAbnormalEventInfo();
            obj.deserialize(params.Info)
            this.Info = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNetworkFirewallPodLabelsList response structure.
 * @class
 */
class DescribeNetworkFirewallPodLabelsListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of cluster Pods
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Details of the cluster Pod
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<NetworkClusterPodInfo> || null}
         */
        this.PodList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.PodList) {
            this.PodList = new Array();
            for (let z in params.PodList) {
                let obj = new NetworkClusterPodInfo();
                obj.deserialize(params.PodList[z]);
                this.PodList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of the component affected by the vulnerability
 * @class
 */
class VulAffectedComponentInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Component name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Component version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Version = null;

        /**
         * Fixed component version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.FixedVersion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Version = 'Version' in params ? params.Version : null;
        this.FixedVersion = 'FixedVersion' in params ? params.FixedVersion : null;

    }
}

/**
 * DescribeAssetImageScanStatus request structure.
 * @class
 */
class DescribeAssetImageScanStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;

    }
}

/**
 * DescribeCheckItemList response structure.
 * @class
 */
class DescribeCheckItemListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Array of check item details
         * @type {Array.<ClusterCheckItem> || null}
         */
        this.ClusterCheckItems = null;

        /**
         * Total number of check items
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.ClusterCheckItems) {
            this.ClusterCheckItems = new Array();
            for (let z in params.ClusterCheckItems) {
                let obj = new ClusterCheckItem();
                obj.deserialize(params.ClusterCheckItems[z]);
                this.ClusterCheckItems.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of the asset that failed the check
 * @class
 */
class ComplianceScanFailedAsset extends  AbstractModel {
    constructor(){
        super();

        /**
         * Customer asset ID
         * @type {number || null}
         */
        this.CustomerAssetId = null;

        /**
         * Asset type
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Check status
`CHECK_INIT`: To be checked.
`CHECK_RUNNING`: Checking.
`CHECK_FINISHED`: Checked.
`CHECK_FAILED`: Check failed.
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Asset name
         * @type {string || null}
         */
        this.AssetName = null;

        /**
         * Cause of the asset check failure
         * @type {string || null}
         */
        this.FailureReason = null;

        /**
         * Suggestion for handling the check failure
         * @type {string || null}
         */
        this.Suggestion = null;

        /**
         * Check time
         * @type {string || null}
         */
        this.CheckTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetId = 'CustomerAssetId' in params ? params.CustomerAssetId : null;
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.AssetName = 'AssetName' in params ? params.AssetName : null;
        this.FailureReason = 'FailureReason' in params ? params.FailureReason : null;
        this.Suggestion = 'Suggestion' in params ? params.Suggestion : null;
        this.CheckTime = 'CheckTime' in params ? params.CheckTime : null;

    }
}

/**
 * ScanComplianceAssets request structure.
 * @class
 */
class ScanComplianceAssetsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of IDs of customer assets to be scanned again
         * @type {Array.<number> || null}
         */
        this.CustomerAssetIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetIdSet = 'CustomerAssetIdSet' in params ? params.CustomerAssetIdSet : null;

    }
}

/**
 * DescribeAbnormalProcessRuleDetail response structure.
 * @class
 */
class DescribeAbnormalProcessRuleDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Details of the abnormal process policy
         * @type {AbnormalProcessRuleInfo || null}
         */
        this.RuleDetail = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.RuleDetail) {
            let obj = new AbnormalProcessRuleInfo();
            obj.deserialize(params.RuleDetail)
            this.RuleDetail = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyVirusFileStatus request structure.
 * @class
 */
class ModifyVirusFileStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * IDs of events
         * @type {Array.<string> || null}
         */
        this.EventIdSet = null;

        /**
         * Event status   
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
    `EVENT_DEL`: Deleted.
    `EVENT_ADD_WHITE`: Allowed.
    `EVENT_PENDING`: Pending.
	`EVENT_ISOLATE_CONTAINER`: Container isolated.
	`EVENT_RESOTRE_CONTAINER`: Container recovered.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event remarks
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Whether to automatically isolate files with the same MD5 checksum
         * @type {boolean || null}
         */
        this.AutoIsolate = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIdSet = 'EventIdSet' in params ? params.EventIdSet : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.AutoIsolate = 'AutoIsolate' in params ? params.AutoIsolate : null;

    }
}

/**
 * This API is used to query the list of repository images affected by a specific vulnerability.
 * @class
 */
class VulAffectedRegistryImageInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image tag
         * @type {string || null}
         */
        this.ImageTag = null;

        /**
         * Image namespace
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Image address
         * @type {string || null}
         */
        this.ImageRepoAddress = null;

        /**
         * List of components
         * @type {Array.<VulAffectedImageComponentInfo> || null}
         */
        this.ComponentList = null;

        /**
         * Whether it is the latest image tag
         * @type {boolean || null}
         */
        this.IsLatestImage = null;

        /**
         * Internal image asset ID
         * @type {number || null}
         */
        this.ImageAssetId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageTag = 'ImageTag' in params ? params.ImageTag : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.ImageRepoAddress = 'ImageRepoAddress' in params ? params.ImageRepoAddress : null;

        if (params.ComponentList) {
            this.ComponentList = new Array();
            for (let z in params.ComponentList) {
                let obj = new VulAffectedImageComponentInfo();
                obj.deserialize(params.ComponentList[z]);
                this.ComponentList.push(obj);
            }
        }
        this.IsLatestImage = 'IsLatestImage' in params ? params.IsLatestImage : null;
        this.ImageAssetId = 'ImageAssetId' in params ? params.ImageAssetId : null;

    }
}

/**
 * CreateVulContainerExportJob response structure.
 * @class
 */
class CreateVulContainerExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryListExport request structure.
 * @class
 */
class DescribeAssetImageRegistryListExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting field
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Whether to show only the latest repository images. Default value: `false`.
         * @type {boolean || null}
         */
        this.OnlyShowLatest = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.OnlyShowLatest = 'OnlyShowLatest' in params ? params.OnlyShowLatest : null;

    }
}

/**
 * CreateK8sApiAbnormalRuleInfo response structure.
 * @class
 */
class CreateK8sApiAbnormalRuleInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule ID
         * @type {string || null}
         */
        this.RuleID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleID = 'RuleID' in params ? params.RuleID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Runtime security - Basic process information
 * @class
 */
class ProcessBaseInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Process initiator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessStartUser = null;

        /**
         * Process user group
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessUserGroup = null;

        /**
         * Process path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Process command line parameter
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessParam = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProcessStartUser = 'ProcessStartUser' in params ? params.ProcessStartUser : null;
        this.ProcessUserGroup = 'ProcessUserGroup' in params ? params.ProcessUserGroup : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.ProcessParam = 'ProcessParam' in params ? params.ProcessParam : null;

    }
}

/**
 * ModifyEscapeRule request structure.
 * @class
 */
class ModifyEscapeRuleRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Array to be modified
         * @type {Array.<EscapeRuleEnabled> || null}
         */
        this.RuleSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.RuleSet) {
            this.RuleSet = new Array();
            for (let z in params.RuleSet) {
                let obj = new EscapeRuleEnabled();
                obj.deserialize(params.RuleSet[z]);
                this.RuleSet.push(obj);
            }
        }

    }
}

/**
 * Items in the list of K8sApi abnormal request trends
 * @class
 */
class K8sApiAbnormalTendencyItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Date
         * @type {string || null}
         */
        this.Date = null;

        /**
         * The number of abnormal UA request events
         * @type {number || null}
         */
        this.ExceptionUARequestCount = null;

        /**
         * The number of anonymous user permission events
         * @type {number || null}
         */
        this.AnonymousUserRightCount = null;

        /**
         * The number of credential information acquisition events
         * @type {number || null}
         */
        this.CredentialInformationObtainCount = null;

        /**
         * The number of sensitive data mounting events
         * @type {number || null}
         */
        this.SensitiveDataMountCount = null;

        /**
         * The number of command execution events
         * @type {number || null}
         */
        this.CmdExecCount = null;

        /**
         * The number of abnormal scheduled task events
         * @type {number || null}
         */
        this.AbnormalScheduledTaskCount = null;

        /**
         * The number of static pods created
         * @type {number || null}
         */
        this.StaticsPodCreateCount = null;

        /**
         * The number of suspicious containers created
         * @type {number || null}
         */
        this.DoubtfulContainerCreateCount = null;

        /**
         * The number of custom rule events
         * @type {number || null}
         */
        this.UserDefinedRuleCount = null;

        /**
         * The number of anonymous access events
         * @type {number || null}
         */
        this.AnonymousAccessCount = null;

        /**
         * The number of privilege container events
         * @type {number || null}
         */
        this.PrivilegeContainerCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Date = 'Date' in params ? params.Date : null;
        this.ExceptionUARequestCount = 'ExceptionUARequestCount' in params ? params.ExceptionUARequestCount : null;
        this.AnonymousUserRightCount = 'AnonymousUserRightCount' in params ? params.AnonymousUserRightCount : null;
        this.CredentialInformationObtainCount = 'CredentialInformationObtainCount' in params ? params.CredentialInformationObtainCount : null;
        this.SensitiveDataMountCount = 'SensitiveDataMountCount' in params ? params.SensitiveDataMountCount : null;
        this.CmdExecCount = 'CmdExecCount' in params ? params.CmdExecCount : null;
        this.AbnormalScheduledTaskCount = 'AbnormalScheduledTaskCount' in params ? params.AbnormalScheduledTaskCount : null;
        this.StaticsPodCreateCount = 'StaticsPodCreateCount' in params ? params.StaticsPodCreateCount : null;
        this.DoubtfulContainerCreateCount = 'DoubtfulContainerCreateCount' in params ? params.DoubtfulContainerCreateCount : null;
        this.UserDefinedRuleCount = 'UserDefinedRuleCount' in params ? params.UserDefinedRuleCount : null;
        this.AnonymousAccessCount = 'AnonymousAccessCount' in params ? params.AnonymousAccessCount : null;
        this.PrivilegeContainerCount = 'PrivilegeContainerCount' in params ? params.PrivilegeContainerCount : null;

    }
}

/**
 * DescribeAbnormalProcessRules response structure.
 * @class
 */
class DescribeAbnormalProcessRulesResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of abnormal process policies
         * @type {Array.<RuleBaseInfo> || null}
         */
        this.RuleSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.RuleSet) {
            this.RuleSet = new Array();
            for (let z in params.RuleSet) {
                let obj = new RuleBaseInfo();
                obj.deserialize(params.RuleSet[z]);
                this.RuleSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyVulDefenceSetting response structure.
 * @class
 */
class ModifyVulDefenceSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Vulnerability that can be prevented
 * @class
 */
class SupportDefenceVul extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Vulnerability tag
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * Vulnerability CVSS
         * @type {number || null}
         */
        this.CVSSV3Score = null;

        /**
         * Vulnerability severity
         * @type {string || null}
         */
        this.Level = null;

        /**
         * Vulnerability CVE ID
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * Vulnerability disclosure time
         * @type {string || null}
         */
        this.SubmitTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.CVSSV3Score = 'CVSSV3Score' in params ? params.CVSSV3Score : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.SubmitTime = 'SubmitTime' in params ? params.SubmitTime : null;

    }
}

/**
 * DescribeCheckItemList request structure.
 * @class
 */
class DescribeCheckItemListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name. Valid values: `risk_level` (risk level); `risk_target` (check target and risky target); `risk_type` (risk type); `risk_attri` (risk type of the check item).
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeImageComponentList response structure.
 * @class
 */
class DescribeImageComponentListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of image components
         * @type {Array.<ImageComponent> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageComponent();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateAbnormalProcessRulesExportJob response structure.
 * @class
 */
class CreateAbnormalProcessRulesExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the exportation task. You can query the task progress by using this ID in the console.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogDeliveryKafkaOptions request structure.
 * @class
 */
class DescribeSecLogDeliveryKafkaOptionsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Region. If this field was left blank, return all available regions.
         * @type {string || null}
         */
        this.RegionID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RegionID = 'RegionID' in params ? params.RegionID : null;

    }
}

/**
 * DescribeVirusScanSetting response structure.
 * @class
 */
class DescribeVirusScanSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to enable scheduled scan
         * @type {boolean || null}
         */
        this.EnableScan = null;

        /**
         * Check cycle in days
         * @type {number || null}
         */
        this.Cycle = null;

        /**
         * Scan start time
         * @type {string || null}
         */
        this.BeginScanAt = null;

        /**
         * Scan all paths
         * @type {boolean || null}
         */
        this.ScanPathAll = null;

        /**
         * Valid when `ScanPathAll` is `true`. Valid values of `ScanPathAll`: `0` (scan the following paths); `1` (scan all paths except the following).
         * @type {number || null}
         */
        this.ScanPathType = null;

        /**
         * Timeout period in hours
         * @type {number || null}
         */
        this.Timeout = null;

        /**
         * Scanning scope. Valid values: `0` (container); `1` (server).
         * @type {number || null}
         */
        this.ScanRangeType = null;

        /**
         * Valid values: `true` (all); `false` (specified).
         * @type {boolean || null}
         */
        this.ScanRangeAll = null;

        /**
         * ID of the specified container or server to be scanned, which is based on `ScanRangeType`.
         * @type {Array.<string> || null}
         */
        this.ScanIds = null;

        /**
         * Specified path to be excluded or scanned
         * @type {Array.<string> || null}
         */
        this.ScanPath = null;

        /**
         * Timeout settings of quick check
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ClickTimeout = null;

        /**
         * Path scanning mode: 
`SCAN_PATH_ALL`: Scan all paths
`SCAN_PATH_DEFAULT`: Scan the default path
`SCAN_PATH_USER_DEFINE`: Scan the custom path

         * @type {string || null}
         */
        this.ScanPathMode = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EnableScan = 'EnableScan' in params ? params.EnableScan : null;
        this.Cycle = 'Cycle' in params ? params.Cycle : null;
        this.BeginScanAt = 'BeginScanAt' in params ? params.BeginScanAt : null;
        this.ScanPathAll = 'ScanPathAll' in params ? params.ScanPathAll : null;
        this.ScanPathType = 'ScanPathType' in params ? params.ScanPathType : null;
        this.Timeout = 'Timeout' in params ? params.Timeout : null;
        this.ScanRangeType = 'ScanRangeType' in params ? params.ScanRangeType : null;
        this.ScanRangeAll = 'ScanRangeAll' in params ? params.ScanRangeAll : null;
        this.ScanIds = 'ScanIds' in params ? params.ScanIds : null;
        this.ScanPath = 'ScanPath' in params ? params.ScanPath : null;
        this.ClickTimeout = 'ClickTimeout' in params ? params.ClickTimeout : null;
        this.ScanPathMode = 'ScanPathMode' in params ? params.ScanPathMode : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAccessControlRuleDetail response structure.
 * @class
 */
class DescribeAccessControlRuleDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Runtime policy details
         * @type {AccessControlRuleInfo || null}
         */
        this.RuleDetail = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.RuleDetail) {
            let obj = new AccessControlRuleInfo();
            obj.deserialize(params.RuleDetail)
            this.RuleDetail = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateNetworkFirewallPublish request structure.
 * @class
 */
class CreateNetworkFirewallPublishRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Array of cluster IDs
         * @type {Array.<number> || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * CreateHostExportJob response structure.
 * @class
 */
class CreateHostExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNetworkFirewallPolicyDiscover request structure.
 * @class
 */
class DescribeNetworkFirewallPolicyDiscoverRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {number || null}
         */
        this.TaskId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;

    }
}

/**
 * DescribeNetworkFirewallPolicyYamlDetail response structure.
 * @class
 */
class DescribeNetworkFirewallPolicyYamlDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.PolicyName = null;

        /**
         * Base64-encoded YAML string
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Yaml = null;

        /**
         * Policy description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Policy creation time
         * @type {string || null}
         */
        this.PolicyCreateTime = null;

        /**
         * Policy source type. Valid values: `System` (synched from the cluster); `Manual` (added manually).
         * @type {string || null}
         */
        this.PolicySourceType = null;

        /**
         * Network plugin of the network policy
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.NetworkPolicyPlugin = null;

        /**
         * Network policy status
         * @type {string || null}
         */
        this.PublishStatus = null;

        /**
         * Policy publishing result
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PublishResult = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.PolicyName = 'PolicyName' in params ? params.PolicyName : null;
        this.Yaml = 'Yaml' in params ? params.Yaml : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.PolicyCreateTime = 'PolicyCreateTime' in params ? params.PolicyCreateTime : null;
        this.PolicySourceType = 'PolicySourceType' in params ? params.PolicySourceType : null;
        this.NetworkPolicyPlugin = 'NetworkPolicyPlugin' in params ? params.NetworkPolicyPlugin : null;
        this.PublishStatus = 'PublishStatus' in params ? params.PublishStatus : null;
        this.PublishResult = 'PublishResult' in params ? params.PublishResult : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateOrModifyPostPayCores request structure.
 * @class
 */
class CreateOrModifyPostPayCoresRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Upper limit for elastic billing. Minimum value: `500`.
         * @type {number || null}
         */
        this.CoresCnt = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CoresCnt = 'CoresCnt' in params ? params.CoresCnt : null;

    }
}

/**
 * ModifyImageAuthorized request structure.
 * @class
 */
class ModifyImageAuthorizedRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to license all local images, which has a higher priority than licensing by local image ID. When it is `true`, `UpdatedLocalImageCnt` should be greater than `0`.
         * @type {boolean || null}
         */
        this.AllLocalImages = null;

        /**
         * Whether to license all repository images, with a higher priority than licensing by image ID. When it is `true`, `UpdatedRegistryImageCnt` should be greater than `0`.
         * @type {boolean || null}
         */
        this.AllRegistryImages = null;

        /**
         * Specified number of local images to be licensed, with the highest priority. Any difference between this number and the actual number will be randomly ignored.
         * @type {number || null}
         */
        this.UpdatedLocalImageCnt = null;

        /**
         * Specified number of repository images to be licensed, with the highest priority. Any difference between this number and the actual number will be randomly ignored.
         * @type {number || null}
         */
        this.UpdatedRegistryImageCnt = null;

        /**
         * Licensing by eligible local images. Valid values of local image source: `ASSETIMAGE` (local image list); `IMAGEALL` (local image sync). This parameter is required when `AllLocalImages` is `false`, `LocalImageIds` is empty, and `UpdatedLocalImageCnt` is greater than `0`.
         * @type {string || null}
         */
        this.ImageSourceType = null;

        /**
         * Licensing by eligible local images. This parameter is required when `AllLocalImages` is `false`, `LocalImageIds` is empty, and `UpdatedLocalImageCnt` is greater than `0`.
         * @type {Array.<AssetFilters> || null}
         */
        this.LocalImageFilter = null;

        /**
         * Licensing by eligible repository images. This parameter is required when `AllRegistryImages` is `false`, `RegistryImageIds` is empty, and `UpdatedRegistryImageCnt` is greater than `0`.
         * @type {Array.<AssetFilters> || null}
         */
        this.RegistryImageFilter = null;

        /**
         * Licensing by eligible images, excluding specified local image IDs
         * @type {Array.<string> || null}
         */
        this.ExcludeLocalImageIds = null;

        /**
         * Licensing by eligible images, excluding specified repository image IDs
         * @type {Array.<string> || null}
         */
        this.ExcludeRegistryImageIds = null;

        /**
         * Licensing by local image ID. This parameter has a higher priority than licensing by eligible images. It is required when `AllLocalImages` is `false`, `LocalImageFilter` is empty, and `UpdatedLocalImageCnt` is greater than `0`.
         * @type {Array.<string> || null}
         */
        this.LocalImageIds = null;

        /**
         * Licensing by repository image ID. This parameter has a higher priority than licensing by eligible images. It is required when `AllRegistryImages` is `false`, `RegistryImageFilter` is empty, and `UpdatedRegistryImageCnt` is greater than `0`.
         * @type {Array.<string> || null}
         */
        this.RegistryImageIds = null;

        /**
         * Whether to only include latest images. This parameter is required for repository images when `RegistryImageFilter` is not empty and `UpdatedRegistryImageCnt` is greater than `0`.
         * @type {boolean || null}
         */
        this.OnlyShowLatest = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AllLocalImages = 'AllLocalImages' in params ? params.AllLocalImages : null;
        this.AllRegistryImages = 'AllRegistryImages' in params ? params.AllRegistryImages : null;
        this.UpdatedLocalImageCnt = 'UpdatedLocalImageCnt' in params ? params.UpdatedLocalImageCnt : null;
        this.UpdatedRegistryImageCnt = 'UpdatedRegistryImageCnt' in params ? params.UpdatedRegistryImageCnt : null;
        this.ImageSourceType = 'ImageSourceType' in params ? params.ImageSourceType : null;

        if (params.LocalImageFilter) {
            this.LocalImageFilter = new Array();
            for (let z in params.LocalImageFilter) {
                let obj = new AssetFilters();
                obj.deserialize(params.LocalImageFilter[z]);
                this.LocalImageFilter.push(obj);
            }
        }

        if (params.RegistryImageFilter) {
            this.RegistryImageFilter = new Array();
            for (let z in params.RegistryImageFilter) {
                let obj = new AssetFilters();
                obj.deserialize(params.RegistryImageFilter[z]);
                this.RegistryImageFilter.push(obj);
            }
        }
        this.ExcludeLocalImageIds = 'ExcludeLocalImageIds' in params ? params.ExcludeLocalImageIds : null;
        this.ExcludeRegistryImageIds = 'ExcludeRegistryImageIds' in params ? params.ExcludeRegistryImageIds : null;
        this.LocalImageIds = 'LocalImageIds' in params ? params.LocalImageIds : null;
        this.RegistryImageIds = 'RegistryImageIds' in params ? params.RegistryImageIds : null;
        this.OnlyShowLatest = 'OnlyShowLatest' in params ? params.OnlyShowLatest : null;

    }
}

/**
 * DescribeAssetImageScanTask request structure.
 * @class
 */
class DescribeAssetImageScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeSecLogDeliveryClsSetting request structure.
 * @class
 */
class DescribeSecLogDeliveryClsSettingRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * UpdateNetworkFirewallPolicyDetail response structure.
 * @class
 */
class UpdateNetworkFirewallPolicyDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifySecLogKafkaUIN response structure.
 * @class
 */
class ModifySecLogKafkaUINResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNetworkFirewallPodLabelsList request structure.
 * @class
 */
class DescribeNetworkFirewallPodLabelsListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - String
Name. Valid values: `ClusterName`, `ClusterId`, `ClusterType`, `Region`, `ClusterCheckMode`, `ClusterAutoCheck`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * CreateVirusScanTask response structure.
 * @class
 */
class CreateVirusScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeNetworkFirewallAuditRecord request structure.
 * @class
 */
class DescribeNetworkFirewallAuditRecordRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - Action
Name. Valid values: `publish`, `unpublish`, `confirm`, `add`, `update`, `delete`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeAssetProcessList request structure.
 * @class
 */
class DescribeAssetProcessListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>RunAs - String - Required: No - Operator</li>
<li>ContainerID - String - Required: No - Container ID</li>
<li>HostID- String - Required: Yes - Server ID</li>
<li>HostIP- string - Required: No - Server IP</li>
<li>ProcessName- string - Required: No - Process name</li>
<li>Pid- string - Required: No - Process ID (associated process)</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeAssetProcessList response structure.
 * @class
 */
class DescribeAssetProcessListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of ports
         * @type {Array.<ProcessInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ProcessInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of container escape events
 * @class
 */
class EscapeEventInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event type.
   `ESCAPE_CGROUPS`: Cgroup escape.
   `ESCAPE_TAMPER_SENSITIVE_FILE`: File tamper escape.
   `ESCAPE_DOCKER_API`: Docker API access escape.
   `ESCAPE_VUL_OCCURRED`: Vulnerability exploit.
   `MOUNT_SENSITIVE_PTAH`: Sensitive path mount.
   `PRIVILEGE_CONTAINER_START`: Privileged container.
   `PRIVILEGE`: Program privilege escalation escape.
         * @type {string || null}
         */
        this.EventType = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Status. Valid values: `EVENT_UNDEAL` (pending); `EVENT_DEALED` (processed); `EVENT_INGNORE` (ignored).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.EventId = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Pod (instance) name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Generation time
         * @type {string || null}
         */
        this.FoundTime = null;

        /**
         * Event name
Host file access escape
Syscall escape
Mount namespace escape
Program privilege escalation escape
Privileged container startup escape
Sensitive path mount
         * @type {string || null}
         */
        this.EventName = null;

        /**
         * Image ID, which is used for redirect.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Container ID, which is used for redirect.
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Event solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Last generation time
         * @type {string || null}
         */
        this.LatestFoundTime = null;

        /**
         * Node IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.NodeIP = null;

        /**
         * Server IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
"NODE_DESTROYED"      // The node is terminated.
"CONTAINER_EXITED"    // The container exited.
"CONTAINER_DESTROYED" // The container was terminated.
"SHARED_HOST"         // The container shares the network with the server.
"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
"UNKNOW"              // The reason is unknown.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Container status
`RUNNING`: Running.
`PAUSED`: Paused.
`STOPPED`: Stopped.
`CREATED`: Created.
`DESTROYED`: Terminated.
`RESTARTING`: Restarting.
`REMOVING`: Removing.
         * @type {string || null}
         */
        this.ContainerStatus = null;

        /**
         * ID of the cluster where the node resides
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Unique node ID
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * Node public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Private IP of the node
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.EventId = 'EventId' in params ? params.EventId : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.FoundTime = 'FoundTime' in params ? params.FoundTime : null;
        this.EventName = 'EventName' in params ? params.EventName : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.LatestFoundTime = 'LatestFoundTime' in params ? params.LatestFoundTime : null;
        this.NodeIP = 'NodeIP' in params ? params.NodeIP : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.ContainerStatus = 'ContainerStatus' in params ? params.ContainerStatus : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;

    }
}

/**
 * ModifyVirusScanTimeoutSetting response structure.
 * @class
 */
class ModifyVirusScanTimeoutSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateAssetImageVirusExportJob request structure.
 * @class
 */
class CreateAssetImageVirusExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `10000`.
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeAssetImageRegistryDetail request structure.
 * @class
 */
class DescribeAssetImageRegistryDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of repository IDs
         * @type {number || null}
         */
        this.Id = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Id = 'Id' in params ? params.Id : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;

    }
}

/**
 * CreateAssetImageRegistryScanTask request structure.
 * @class
 */
class CreateAssetImageRegistryScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to scan all images
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * List of scanned images
         * @type {Array.<ImageInfo> || null}
         */
        this.Images = null;

        /**
         * Array of scan types
         * @type {Array.<string> || null}
         */
        this.ScanType = null;

        /**
         * List of scanned images
         * @type {Array.<number> || null}
         */
        this.Id = null;

        /**
         * Filter
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * List of images not to be scanned, which is used together with `Filters`.
         * @type {Array.<number> || null}
         */
        this.ExcludeImageList = null;

        /**
         * Whether to scan only the latest repository images, which is used together with `Filters`.
         * @type {boolean || null}
         */
        this.OnlyScanLatest = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.All = 'All' in params ? params.All : null;

        if (params.Images) {
            this.Images = new Array();
            for (let z in params.Images) {
                let obj = new ImageInfo();
                obj.deserialize(params.Images[z]);
                this.Images.push(obj);
            }
        }
        this.ScanType = 'ScanType' in params ? params.ScanType : null;
        this.Id = 'Id' in params ? params.Id : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.ExcludeImageList = 'ExcludeImageList' in params ? params.ExcludeImageList : null;
        this.OnlyScanLatest = 'OnlyScanLatest' in params ? params.OnlyScanLatest : null;

    }
}

/**
 * DescribeAssetClusterList request structure.
 * @class
 */
class DescribeAssetClusterListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filters.
<li>`ClusterID` - String - Optional - Cluster ID</li>
<li>`ClusterName` - String - Optional - Cluster name</li>
<li>`Status` - String - Optional - Cluster status</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * The number of results returned. Default value: 10. Maximum value: 100.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: 0
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sort order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field.
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeAssetImageListExport response structure.
 * @class
 */
class DescribeAssetImageListExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel file download URL
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Alert configuration policy
 * @class
 */
class WarningRule extends  AbstractModel {
    constructor(){
        super();

        /**
         * Alert event type:
Image repository security - Trojan: `IMG_REG_VIRUS`.
Image repository security - Vulnerability: `IMG_REG_VUL`.
Image repository security - Sensitive data: `IMG_REG_RISK`.
Image security - Trojan: `IMG_VIRUS`.
Image security - Vulnerability: `IMG_VUL`.
Image security - Sensitive data: `IMG_RISK`.
Image security - Image blocking: `IMG_INTERCEPT`.
Runtime security - Container escape: `RUNTIME_ESCAPE`.
Runtime security - Abnormal process: `RUNTIME_FILE`.
Runtime security - Abnormal file access: `RUNTIME_PROCESS`.
Runtime security - High-risk syscall: `RUNTIME_SYSCALL`.
Runtime security - Reverse shell: `RUNTIME_REVERSE_SHELL`.
Runtime security - Trojan: `RUNTIME_VIRUS`.
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Switch status:
`ON`: On.
`OFF`: Off.
         * @type {string || null}
         */
        this.Switch = null;

        /**
         * Alert start time in the format of "HH:mm"
         * @type {string || null}
         */
        this.BeginTime = null;

        /**
         * Alert end time in the format of "HH:mm"
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Alert level policy control. Each binary bit represents a meaning, and the value is passed as a string.
The control switch can be high, medium, or low, corresponding to the third, second, and first binary bit, respectively. Valid values: `0` (off); `1` (on).
For example, if the high and medium levels indicate to enable the alert and the low level indicates to disable it, the binary value is `110`.
If level control does not take effect for the alert type, pass in `1`.
         * @type {string || null}
         */
        this.ControlBits = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Type = 'Type' in params ? params.Type : null;
        this.Switch = 'Switch' in params ? params.Switch : null;
        this.BeginTime = 'BeginTime' in params ? params.BeginTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;
        this.ControlBits = 'ControlBits' in params ? params.ControlBits : null;

    }
}

/**
 * Information of the container affected by the vulnerability
 * @class
 */
class VulAffectedContainerInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Private IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerID = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Server name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * UID of a super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * ID of a super node
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Super node name
         * @type {string || null}
         */
        this.NodeName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ContainerID = 'ContainerID' in params ? params.ContainerID : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;

    }
}

/**
 * DescribeLogStorageStatistic response structure.
 * @class
 */
class DescribeLogStorageStatisticResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total capacity in GB
         * @type {number || null}
         */
        this.TotalSize = null;

        /**
         * Used capacity in GB
         * @type {number || null}
         */
        this.UsedSize = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalSize = 'TotalSize' in params ? params.TotalSize : null;
        this.UsedSize = 'UsedSize' in params ? params.UsedSize : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateSearchTemplate response structure.
 * @class
 */
class CreateSearchTemplateResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetContainerDetail response structure.
 * @class
 */
class DescribeAssetContainerDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Server IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Operator
         * @type {string || null}
         */
        this.RunAs = null;

        /**
         * Command line
         * @type {string || null}
         */
        this.Cmd = null;

        /**
         * CPU utilization * 1000
         * @type {number || null}
         */
        this.CPUUsage = null;

        /**
         * Memory usage in KB
         * @type {number || null}
         */
        this.RamUsage = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Pod
         * @type {string || null}
         */
        this.POD = null;

        /**
         * K8s master node
         * @type {string || null}
         */
        this.K8sMaster = null;

        /**
         * Number of processes in the container
         * @type {number || null}
         */
        this.ProcessCnt = null;

        /**
         * Number of ports in the container
         * @type {number || null}
         */
        this.PortCnt = null;

        /**
         * Number of components
         * @type {number || null}
         */
        this.ComponentCnt = null;

        /**
         * Number of applications
         * @type {number || null}
         */
        this.AppCnt = null;

        /**
         * Number of web services
         * @type {number || null}
         */
        this.WebServiceCnt = null;

        /**
         * Mount
         * @type {Array.<ContainerMount> || null}
         */
        this.Mounts = null;

        /**
         * Container network information
         * @type {ContainerNetwork || null}
         */
        this.Network = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Image creation time
         * @type {string || null}
         */
        this.ImageCreateTime = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.ImageSize = null;

        /**
         * Server status. Valid values: `offline`, `online`, `pause`.
         * @type {string || null}
         */
        this.HostStatus = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
         * @type {string || null}
         */
        this.NetStatus = null;

        /**
         * Sub-status of the network
         * @type {string || null}
         */
        this.NetSubStatus = null;

        /**
         * Isolation source
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IsolateSource = null;

        /**
         * Isolation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IsolateTime = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Node subnet ID
         * @type {string || null}
         */
        this.NodeSubNetID = null;

        /**
         * Node subnet name
         * @type {string || null}
         */
        this.NodeSubNetName = null;

        /**
         * Subnet IP range
         * @type {string || null}
         */
        this.NodeSubNetCIDR = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod status
         * @type {string || null}
         */
        this.PodStatus = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Node type. Values: `NORMAL` (default), `SUPER`
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * UID of the super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.RunAs = 'RunAs' in params ? params.RunAs : null;
        this.Cmd = 'Cmd' in params ? params.Cmd : null;
        this.CPUUsage = 'CPUUsage' in params ? params.CPUUsage : null;
        this.RamUsage = 'RamUsage' in params ? params.RamUsage : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.POD = 'POD' in params ? params.POD : null;
        this.K8sMaster = 'K8sMaster' in params ? params.K8sMaster : null;
        this.ProcessCnt = 'ProcessCnt' in params ? params.ProcessCnt : null;
        this.PortCnt = 'PortCnt' in params ? params.PortCnt : null;
        this.ComponentCnt = 'ComponentCnt' in params ? params.ComponentCnt : null;
        this.AppCnt = 'AppCnt' in params ? params.AppCnt : null;
        this.WebServiceCnt = 'WebServiceCnt' in params ? params.WebServiceCnt : null;

        if (params.Mounts) {
            this.Mounts = new Array();
            for (let z in params.Mounts) {
                let obj = new ContainerMount();
                obj.deserialize(params.Mounts[z]);
                this.Mounts.push(obj);
            }
        }

        if (params.Network) {
            let obj = new ContainerNetwork();
            obj.deserialize(params.Network)
            this.Network = obj;
        }
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.ImageCreateTime = 'ImageCreateTime' in params ? params.ImageCreateTime : null;
        this.ImageSize = 'ImageSize' in params ? params.ImageSize : null;
        this.HostStatus = 'HostStatus' in params ? params.HostStatus : null;
        this.NetStatus = 'NetStatus' in params ? params.NetStatus : null;
        this.NetSubStatus = 'NetSubStatus' in params ? params.NetSubStatus : null;
        this.IsolateSource = 'IsolateSource' in params ? params.IsolateSource : null;
        this.IsolateTime = 'IsolateTime' in params ? params.IsolateTime : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.NodeSubNetID = 'NodeSubNetID' in params ? params.NodeSubNetID : null;
        this.NodeSubNetName = 'NodeSubNetName' in params ? params.NodeSubNetName : null;
        this.NodeSubNetCIDR = 'NodeSubNetCIDR' in params ? params.NodeSubNetCIDR : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodStatus = 'PodStatus' in params ? params.PodStatus : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulDefenceSetting response structure.
 * @class
 */
class DescribeVulDefenceSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether it is enabled. Valid values: `0` (disabled); `1` (enabled).
         * @type {number || null}
         */
        this.IsEnabled = null;

        /**
         * Scope of servers with exploit prevention enabled. Valid values: `0` (specified servers); `1` (all servers).
         * @type {number || null}
         */
        this.Scope = null;

        /**
         * Number of servers with exploit prevention enabled
         * @type {number || null}
         */
        this.HostCount = null;

        /**
         * Number of abnormal servers with exploit prevention enabled
         * @type {number || null}
         */
        this.ExceptionHostCount = null;

        /**
         * Specified servers with exploit prevention enabled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.HostIDs = null;

        /**
         * Total number of servers with TCSS activated
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.HostTotalCount = null;

        /**
         * Number of vulnerabilities that can be prevented
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.SupportDefenseVulCount = null;

        /**
         * Number of normal nodes
         * @type {number || null}
         */
        this.HostNodeCount = null;

        /**
         * Super node scope
         * @type {number || null}
         */
        this.SuperScope = null;

        /**
         * Number of super nodes
         * @type {number || null}
         */
        this.SuperNodeCount = null;

        /**
         * List of super node IDs
         * @type {Array.<string> || null}
         */
        this.SuperNodeIds = null;

        /**
         * Total number of super nodes with TCSS activated
         * @type {number || null}
         */
        this.NodeTotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsEnabled = 'IsEnabled' in params ? params.IsEnabled : null;
        this.Scope = 'Scope' in params ? params.Scope : null;
        this.HostCount = 'HostCount' in params ? params.HostCount : null;
        this.ExceptionHostCount = 'ExceptionHostCount' in params ? params.ExceptionHostCount : null;
        this.HostIDs = 'HostIDs' in params ? params.HostIDs : null;
        this.HostTotalCount = 'HostTotalCount' in params ? params.HostTotalCount : null;
        this.SupportDefenseVulCount = 'SupportDefenseVulCount' in params ? params.SupportDefenseVulCount : null;
        this.HostNodeCount = 'HostNodeCount' in params ? params.HostNodeCount : null;
        this.SuperScope = 'SuperScope' in params ? params.SuperScope : null;
        this.SuperNodeCount = 'SuperNodeCount' in params ? params.SuperNodeCount : null;
        this.SuperNodeIds = 'SuperNodeIds' in params ? params.SuperNodeIds : null;
        this.NodeTotalCount = 'NodeTotalCount' in params ? params.NodeTotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeImageComponentList request structure.
 * @class
 */
class DescribeImageComponentListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>ComponentName- String - Required: No - Image component name</li><li>ComponentVersion- String - Required: No - Image component version</li><li>ComponentType- String - Required: No - Image component type</li><li>VulLevel- String - Required: No - Vulnerability severity</li><li>HasVul- String - Required: No - Whether there is a vulnerability. Valid values: `true` (yes); `false` (no). If `ComponentName` is not passed in or is `ALL`, it indicates all.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `desc`, `asc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * Container runtime security - Sub-policy information
 * @class
 */
class AbnormalProcessChildRuleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Policy mode. `RULE_MODE_RELEASE`: Allow.
   `RULE_MODE_ALERT`: Alert.
   `RULE_MODE_HOLDUP`: Block.
         * @type {string || null}
         */
        this.RuleMode = null;

        /**
         * Process path
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Sub-policy ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RuleId = null;

        /**
         * Severity. Valid values: `HIGH` (high); `MIDDLE` (medium); `LOW` (low).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RuleLevel = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleMode = 'RuleMode' in params ? params.RuleMode : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.RuleLevel = 'RuleLevel' in params ? params.RuleLevel : null;

    }
}

/**
 * DescribeNetworkFirewallPolicyList response structure.
 * @class
 */
class DescribeNetworkFirewallPolicyListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of clusters
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Cluster details
         * @type {Array.<NetworkPolicyInfoItem> || null}
         */
        this.NetPolicy = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.NetPolicy) {
            this.NetPolicy = new Array();
            for (let z in params.NetPolicy) {
                let obj = new NetworkPolicyInfoItem();
                obj.deserialize(params.NetPolicy[z]);
                this.NetPolicy.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAgentInstallCommand request structure.
 * @class
 */
class DescribeAgentInstallCommandRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether it is from Tencent Cloud
         * @type {boolean || null}
         */
        this.IsCloud = null;

        /**
         * Network type. Valid values: `basic` (classic network); `private` (VPC); `public` (public network); `direct` (Direct Connect).
         * @type {string || null}
         */
        this.NetType = null;

        /**
         * Region, which is required when `NetType` is `direct`.
         * @type {string || null}
         */
        this.RegionCode = null;

        /**
         * VpcId, which is required when `NetType` is `direct`.
         * @type {string || null}
         */
        this.VpcId = null;

        /**
         * Command validity, which is required for non-Tencent Cloud instances.
         * @type {string || null}
         */
        this.ExpireDate = null;

        /**
         * Tag ID list, which is valid only when `IsCloud` is `false`.
         * @type {Array.<number> || null}
         */
        this.TagIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsCloud = 'IsCloud' in params ? params.IsCloud : null;
        this.NetType = 'NetType' in params ? params.NetType : null;
        this.RegionCode = 'RegionCode' in params ? params.RegionCode : null;
        this.VpcId = 'VpcId' in params ? params.VpcId : null;
        this.ExpireDate = 'ExpireDate' in params ? params.ExpireDate : null;
        this.TagIds = 'TagIds' in params ? params.TagIds : null;

    }
}

/**
 * ResetSecLogTopicConfig request structure.
 * @class
 */
class ResetSecLogTopicConfigRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Configuration type. Valid values: `ckafka`, `cls`.
         * @type {string || null}
         */
        this.ConfigType = null;

        /**
         * Log type
         * @type {string || null}
         */
        this.LogType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ConfigType = 'ConfigType' in params ? params.ConfigType : null;
        this.LogType = 'LogType' in params ? params.LogType : null;

    }
}

/**
 * DescribeAssetImageVirusListExport response structure.
 * @class
 */
class DescribeAssetImageVirusListExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel file download URL
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * Task ID
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVirusScanSetting request structure.
 * @class
 */
class DescribeVirusScanSettingRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * Trend information of security events at runtime
 * @class
 */
class SecTendencyEventInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of trends
         * @type {Array.<RunTimeTendencyInfo> || null}
         */
        this.EventSet = null;

        /**
         * Event type:
ET_ESCAPE: Container escape
ET_REVERSE_SHELL: Reverse shell
ET_RISK_SYSCALL: High-risk system calls
ET_ABNORMAL_PROCESS: Abnormal process
ET_ACCESS_CONTROL: File tampering
ET_VIRUS: Trojan event
ET_MALICIOUS_CONNECTION: Malicious connection event
         * @type {string || null}
         */
        this.EventType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventSet) {
            this.EventSet = new Array();
            for (let z in params.EventSet) {
                let obj = new RunTimeTendencyInfo();
                obj.deserialize(params.EventSet[z]);
                this.EventSet.push(obj);
            }
        }
        this.EventType = 'EventType' in params ? params.EventType : null;

    }
}

/**
 * CreateAccessControlsRuleExportJob request structure.
 * @class
 */
class CreateAccessControlsRuleExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter conditions
<li>`RuleType` - String  - Optional - Rule type</li>
<li>`Status` - String - Optional - Status</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {Array.<string> || null}
         */
        this.By = null;

        /**
         * Fields to export
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * Information of the automatically isolated trojan sample
 * @class
 */
class VirusAutoIsolateSampleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * MD5 checksum of the file
         * @type {string || null}
         */
        this.MD5 = null;

        /**
         * Virus name
         * @type {string || null}
         */
        this.VirusName = null;

        /**
         * Last edit time
         * @type {string || null}
         */
        this.ModifyTime = null;

        /**
         * Automatic isolation switch. Valid values: `true` (on); `false` (off).
         * @type {boolean || null}
         */
        this.AutoIsolateSwitch = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MD5 = 'MD5' in params ? params.MD5 : null;
        this.VirusName = 'VirusName' in params ? params.VirusName : null;
        this.ModifyTime = 'ModifyTime' in params ? params.ModifyTime : null;
        this.AutoIsolateSwitch = 'AutoIsolateSwitch' in params ? params.AutoIsolateSwitch : null;

    }
}

/**
 * DescribeExportJobDownloadURL request structure.
 * @class
 */
class DescribeExportJobDownloadURLRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Job ID
         * @type {string || null}
         */
        this.JobID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobID = 'JobID' in params ? params.JobID : null;

    }
}

/**
 * DescribeImageAutoAuthorizedRule request structure.
 * @class
 */
class DescribeImageAutoAuthorizedRuleRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeVulIgnoreRegistryImageList response structure.
 * @class
 */
class DescribeVulIgnoreRegistryImageListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of images
         * @type {Array.<VulIgnoreRegistryImage> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulIgnoreRegistryImage();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * UpdateAndPublishNetworkFirewallPolicyDetail request structure.
 * @class
 */
class UpdateAndPublishNetworkFirewallPolicyDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy ID
         * @type {number || null}
         */
        this.Id = null;

        /**
         * Inbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.FromPolicyRule = null;

        /**
         * Outbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.ToPolicyRule = null;

        /**
         * Pod selector
         * @type {string || null}
         */
        this.PodSelector = null;

        /**
         * Namespace
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Custom rule
         * @type {Array.<NetworkCustomPolicy> || null}
         */
        this.CustomPolicy = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.FromPolicyRule = 'FromPolicyRule' in params ? params.FromPolicyRule : null;
        this.ToPolicyRule = 'ToPolicyRule' in params ? params.ToPolicyRule : null;
        this.PodSelector = 'PodSelector' in params ? params.PodSelector : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.Description = 'Description' in params ? params.Description : null;

        if (params.CustomPolicy) {
            this.CustomPolicy = new Array();
            for (let z in params.CustomPolicy) {
                let obj = new NetworkCustomPolicy();
                obj.deserialize(params.CustomPolicy[z]);
                this.CustomPolicy.push(obj);
            }
        }

    }
}

/**
 * DescribeAssetPortList response structure.
 * @class
 */
class DescribeAssetPortListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of ports
         * @type {Array.<PortInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new PortInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeRefreshTask request structure.
 * @class
 */
class DescribeRefreshTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {number || null}
         */
        this.TaskId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;

    }
}

/**
 * CreateClusterCheckTask response structure.
 * @class
 */
class CreateClusterCheckTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created cluster check task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the check task. Valid values: `Succ` (success); others (failure cause).
         * @type {string || null}
         */
        this.CreateResult = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.CreateResult = 'CreateResult' in params ? params.CreateResult : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CLS topic information
 * @class
 */
class ClsTopicInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Topic ID
         * @type {string || null}
         */
        this.TopicID = null;

        /**
         * Topic name
         * @type {string || null}
         */
        this.TopicName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TopicID = 'TopicID' in params ? params.TopicID : null;
        this.TopicName = 'TopicName' in params ? params.TopicName : null;

    }
}

/**
 * DescribeCompliancePolicyItemAffectedAssetList request structure.
 * @class
 */
class DescribeCompliancePolicyItemAffectedAssetListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * `CustomerPolicyItemId` returned by `DescribeComplianceTaskPolicyItemSummaryList`, which indicates the check item ID.
         * @type {number || null}
         */
        this.CustomerPolicyItemId = null;

        /**
         * Initial offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Filter
Name - String
Name. Valid values: `NodeName`, `CheckResult`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemId = 'CustomerPolicyItemId' in params ? params.CustomerPolicyItemId : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeImageRiskTendency request structure.
 * @class
 */
class DescribeImageRiskTendencyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * End time
         * @type {string || null}
         */
        this.EndTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;

    }
}

/**
 * CreateOrModifyPostPayCores response structure.
 * @class
 */
class CreateOrModifyPostPayCoresResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of the asset affected by the check item
 * @class
 */
class ComplianceAffectedAsset extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique ID of the customer asset
         * @type {number || null}
         */
        this.CustomerAssetId = null;

        /**
         * Asset name
         * @type {string || null}
         */
        this.AssetName = null;

        /**
         * Asset type
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Check status

`CHECK_INIT`: To be checked.

`CHECK_RUNNING`: Checking.

`CHECK_FINISHED`: Checked.

`CHECK_FAILED`: Check failed.
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Last check time in the format of "YYYY-MM-DD HH:m::SS"

It is "0000-00-00 00:00:00" if no check has been performed.
         * @type {string || null}
         */
        this.LastCheckTime = null;

        /**
         * Check result. Valid values:

`RESULT_FAILED`: Failed.

`RESULT_PASSED`: Passed.
         * @type {string || null}
         */
        this.CheckResult = null;

        /**
         * Server IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Image tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageTag = null;

        /**
         * Verification information of the check item
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VerifyInfo = null;

        /**
         * Instance ID
Note: This field may return `null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetId = 'CustomerAssetId' in params ? params.CustomerAssetId : null;
        this.AssetName = 'AssetName' in params ? params.AssetName : null;
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.LastCheckTime = 'LastCheckTime' in params ? params.LastCheckTime : null;
        this.CheckResult = 'CheckResult' in params ? params.CheckResult : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ImageTag = 'ImageTag' in params ? params.ImageTag : null;
        this.VerifyInfo = 'VerifyInfo' in params ? params.VerifyInfo : null;
        this.InstanceId = 'InstanceId' in params ? params.InstanceId : null;

    }
}

/**
 * DescribeVirusMonitorSetting request structure.
 * @class
 */
class DescribeVirusMonitorSettingRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAssetImageHostList response structure.
 * @class
 */
class DescribeAssetImageHostListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of images
         * @type {Array.<ImageHost> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageHost();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifySecLogKafkaUIN request structure.
 * @class
 */
class ModifySecLogKafkaUINRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Target UIN
         * @type {string || null}
         */
        this.DstUIN = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DstUIN = 'DstUIN' in params ? params.DstUIN : null;

    }
}

/**
 * ModifyVirusAutoIsolateSetting request structure.
 * @class
 */
class ModifyVirusAutoIsolateSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Automatic isolation switch. Valid values: `true` (on); `false` (off).
         * @type {boolean || null}
         */
        this.AutoIsolateSwitch = null;

        /**
         * Whether to interrupt the process associated with the isolated file. Valid values: `true` (yes); `false` (no).
         * @type {boolean || null}
         */
        this.IsKillProgress = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AutoIsolateSwitch = 'AutoIsolateSwitch' in params ? params.AutoIsolateSwitch : null;
        this.IsKillProgress = 'IsKillProgress' in params ? params.IsKillProgress : null;

    }
}

/**
 * DescribeNetworkFirewallClusterList response structure.
 * @class
 */
class DescribeNetworkFirewallClusterListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of clusters
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Cluster details
         * @type {Array.<NetworkClusterInfoItem> || null}
         */
        this.ClusterInfoList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.ClusterInfoList) {
            this.ClusterInfoList = new Array();
            for (let z in params.ClusterInfoList) {
                let obj = new NetworkClusterInfoItem();
                obj.deserialize(params.ClusterInfoList[z]);
                this.ClusterInfoList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Trend of pending escape events
 * @class
 */
class EscapeEventTendencyInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of pending containers at risk
         * @type {number || null}
         */
        this.RiskContainerEventCount = null;

        /**
         * Total number of pending program privilege escalation events
         * @type {number || null}
         */
        this.ProcessPrivilegeEventCount = null;

        /**
         * Total number of pending container escape events
         * @type {number || null}
         */
        this.ContainerEscapeEventCount = null;

        /**
         * Date
         * @type {string || null}
         */
        this.Date = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RiskContainerEventCount = 'RiskContainerEventCount' in params ? params.RiskContainerEventCount : null;
        this.ProcessPrivilegeEventCount = 'ProcessPrivilegeEventCount' in params ? params.ProcessPrivilegeEventCount : null;
        this.ContainerEscapeEventCount = 'ContainerEscapeEventCount' in params ? params.ContainerEscapeEventCount : null;
        this.Date = 'Date' in params ? params.Date : null;

    }
}

/**
 * DescribeImageRiskTendency response structure.
 * @class
 */
class DescribeImageRiskTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of new risk trends of local images
         * @type {Array.<ImageRiskTendencyInfo> || null}
         */
        this.ImageRiskTendencySet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.ImageRiskTendencySet) {
            this.ImageRiskTendencySet = new Array();
            for (let z in params.ImageRiskTendencySet) {
                let obj = new ImageRiskTendencyInfo();
                obj.deserialize(params.ImageRiskTendencySet[z]);
                this.ImageRiskTendencySet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of check item IDs and asset IDs
 * @class
 */
class CompliancePolicyAssetSetItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Check item ID
         * @type {number || null}
         */
        this.CustomerPolicyItemId = null;

        /**
         * List of IDs of assets to be ignored in the specified check item. If it is empty, it indicates all.
         * @type {Array.<number> || null}
         */
        this.CustomerAssetItemIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemId = 'CustomerPolicyItemId' in params ? params.CustomerPolicyItemId : null;
        this.CustomerAssetItemIdSet = 'CustomerAssetItemIdSet' in params ? params.CustomerAssetItemIdSet : null;

    }
}

/**
 * SyncAssetImageRegistryAsset request structure.
 * @class
 */
class SyncAssetImageRegistryAssetRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * 
         * @type {Array.<number> || null}
         */
        this.RegistryIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.All = 'All' in params ? params.All : null;
        this.RegistryIds = 'RegistryIds' in params ? params.RegistryIds : null;

    }
}

/**
 * DescribeComplianceScanFailedAssetList request structure.
 * @class
 */
class DescribeComplianceScanFailedAssetListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of asset types
`ASSET_CONTAINER`: Container.
`ASSET_IMAGE`: Image.
`ASSET_HOST`: Server.
`ASSET_K8S`: K8s asset.
         * @type {Array.<string> || null}
         */
        this.AssetTypeSet = null;

        /**
         * Initial offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Query filter
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetTypeSet = 'AssetTypeSet' in params ? params.AssetTypeSet : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeSearchLogs request structure.
 * @class
 */
class DescribeSearchLogsRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeEscapeEventTypeSummary response structure.
 * @class
 */
class DescribeEscapeEventTypeSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of container escape events
         * @type {number || null}
         */
        this.ContainerEscapeEventCount = null;

        /**
         * Number of program privilege escalation events
         * @type {number || null}
         */
        this.ProcessPrivilegeEventCount = null;

        /**
         * Number of risky container events
         * @type {number || null}
         */
        this.RiskContainerEventCount = null;

        /**
         * Number of pending escape events
         * @type {number || null}
         */
        this.PendingEscapeEventCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerEscapeEventCount = 'ContainerEscapeEventCount' in params ? params.ContainerEscapeEventCount : null;
        this.ProcessPrivilegeEventCount = 'ProcessPrivilegeEventCount' in params ? params.ProcessPrivilegeEventCount : null;
        this.RiskContainerEventCount = 'RiskContainerEventCount' in params ? params.RiskContainerEventCount : null;
        this.PendingEscapeEventCount = 'PendingEscapeEventCount' in params ? params.PendingEscapeEventCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryVulList request structure.
 * @class
 */
class DescribeAssetImageRegistryVulListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Vulnerability level</li>
<li>Name - String - Required: No - Vulnerability name</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Image information
         * @type {ImageInfo || null}
         */
        this.ImageInfo = null;

        /**
         * Image ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

        if (params.ImageInfo) {
            let obj = new ImageInfo();
            obj.deserialize(params.ImageInfo)
            this.ImageInfo = obj;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * DescribeImageSimpleList response structure.
 * @class
 */
class DescribeImageSimpleListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of images
         * @type {Array.<ImageSimpleInfo> || null}
         */
        this.ImageList = null;

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.ImageList) {
            this.ImageList = new Array();
            for (let z in params.ImageList) {
                let obj = new ImageSimpleInfo();
                obj.deserialize(params.ImageList[z]);
                this.ImageList.push(obj);
            }
        }
        this.ImageCnt = 'ImageCnt' in params ? params.ImageCnt : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateAbnormalProcessRulesExportJob request structure.
 * @class
 */
class CreateAbnormalProcessRulesExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter conditions
<li>`RuleType` - String  - Optional - Rule type</li>
<li>`Status` - String - Optional - Status</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Fields to export
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * CreateK8sApiAbnormalEventExportJob response structure.
 * @class
 */
class CreateK8sApiAbnormalEventExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the exportation job. You can query the job progress by using this ID on the console.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeUserCluster response structure.
 * @class
 */
class DescribeUserClusterResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of clusters
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Cluster details
         * @type {Array.<ClusterInfoItem> || null}
         */
        this.ClusterInfoList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.ClusterInfoList) {
            this.ClusterInfoList = new Array();
            for (let z in params.ClusterInfoList) {
                let obj = new ClusterInfoItem();
                obj.deserialize(params.ClusterInfoList[z]);
                this.ClusterInfoList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryRegistryList request structure.
 * @class
 */
class DescribeAssetImageRegistryRegistryListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number to return, default is 10, maximum is 100
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset, the default is 0
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter field IsAuthorized Whether to authorize. The value can be all, 0 unauthorized, 1 authorized
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sort field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sort by asc, desc
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeVulDefenceHost response structure.
 * @class
 */
class DescribeVulDefenceHostResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of servers with exploit prevention
         * @type {Array.<VulDefenceHost> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulDefenceHost();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateImageExportJob request structure.
 * @class
 */
class CreateImageExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>ImageName- String - Required: No - Image name</li>
<li>ScanStatus - String - Required: No - Image scanning status. Valid values: `notScan`, `scanning`, `scanned`, `scanErr`.</li>
<li>ImageID- String - Required: No - Image ID</li>
<li>SecurityRisk- String - Required: No - Security risks. Valid values: `VulCnt`, `VirusCnt`, `RiskCnt`, `IsTrustImage`.</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * CreateEmergencyVulExportJob request structure.
 * @class
 */
class CreateEmergencyVulExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `50000`. Maximum value: `50000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Severity. Valid values: `CRITICAL` (critical); `HIGH` (high); `MIDDLE` (medium); `LOW` (low).</li>
<li>Tags- string - Required: No - Vulnerability tag. Valid values: `POC`, `EXP`.</li>
<li>CanBeFixed- string - Required: No - Whether the vulnerability can be fixed. Valid values: `true`, `false`.</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ContainerName- string - Required: No - Container name</li>
<li>ComponentName- string - Required: No - Component name</li>
<li>ComponentVersion- string - Required: No - Component version</li>
<li>Name- string - Required: No - Vulnerability name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * Items in the list of K8sApi abnormal request rules
 * @class
 */
class K8sApiAbnormalRuleListItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule ID
         * @type {string || null}
         */
        this.RuleID = null;

        /**
         * Rule name
         * @type {string || null}
         */
        this.RuleName = null;

        /**
         * Rule type
RT_SYSTEM System rules
RT_USER User defined
         * @type {string || null}
         */
        this.RuleType = null;

        /**
         * Total number of affected clusters
         * @type {number || null}
         */
        this.EffectClusterCount = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Edit account
         * @type {string || null}
         */
        this.OprUin = null;

        /**
         * Status
         * @type {boolean || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleID = 'RuleID' in params ? params.RuleID : null;
        this.RuleName = 'RuleName' in params ? params.RuleName : null;
        this.RuleType = 'RuleType' in params ? params.RuleType : null;
        this.EffectClusterCount = 'EffectClusterCount' in params ? params.EffectClusterCount : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.OprUin = 'OprUin' in params ? params.OprUin : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * DescribeVirusScanTaskStatus response structure.
 * @class
 */
class DescribeVirusScanTaskStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of scanned containers
         * @type {number || null}
         */
        this.ContainerTotal = null;

        /**
         * Number of containers at risk
         * @type {number || null}
         */
        this.RiskContainerCnt = null;

        /**
         * Scan task status:
`SCAN_NONE`: None. 
`SCAN_SCANNING`: Scanning.
`SCAN_FINISH`: Scanned. 
`SCAN_TIMEOUT`: Scan timed out.
`SCAN_CANCELING`: Canceling.
`SCAN_CANCELED`: Canceled.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Scanning progress
         * @type {number || null}
         */
        this.Schedule = null;

        /**
         * Number of scanned containers
         * @type {number || null}
         */
        this.ContainerScanCnt = null;

        /**
         * Number of risks
         * @type {number || null}
         */
        this.RiskCnt = null;

        /**
         * Remaining scan time
         * @type {number || null}
         */
        this.LeftSeconds = null;

        /**
         * Scan start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * Scan end time
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Scan type. Valid values: `CYCLE` (periodic scan); `MANUAL` (manual scan).
         * @type {string || null}
         */
        this.ScanType = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerTotal = 'ContainerTotal' in params ? params.ContainerTotal : null;
        this.RiskContainerCnt = 'RiskContainerCnt' in params ? params.RiskContainerCnt : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Schedule = 'Schedule' in params ? params.Schedule : null;
        this.ContainerScanCnt = 'ContainerScanCnt' in params ? params.ContainerScanCnt : null;
        this.RiskCnt = 'RiskCnt' in params ? params.RiskCnt : null;
        this.LeftSeconds = 'LeftSeconds' in params ? params.LeftSeconds : null;
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;
        this.ScanType = 'ScanType' in params ? params.ScanType : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeEscapeEventsExport response structure.
 * @class
 */
class DescribeEscapeEventsExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Image asset details
 * @class
 */
class ComplianceImageDetailInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID on the server
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image tag
         * @type {string || null}
         */
        this.ImageTag = null;

        /**
         * Path of the remote repository of the image
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Repository = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageTag = 'ImageTag' in params ? params.ImageTag : null;
        this.Repository = 'Repository' in params ? params.Repository : null;

    }
}

/**
 * DescribeVulScanLocalImageList response structure.
 * @class
 */
class DescribeVulScanLocalImageListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of images
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of images
         * @type {Array.<VulScanImageInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulScanImageInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeComplianceWhitelistItemList request structure.
 * @class
 */
class DescribeComplianceWhitelistItemListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Initial offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be obtained. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * List of asset types
         * @type {Array.<string> || null}
         */
        this.AssetTypeSet = null;

        /**
         * Query filter
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `desc`, `asc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.AssetTypeSet = 'AssetTypeSet' in params ? params.AssetTypeSet : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeAccessControlDetail request structure.
 * @class
 */
class DescribeAccessControlDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.EventId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

    }
}

/**
 * A risk item is a check item with an issue found in the check, with certain information of the check result.
 * @class
 */
class ClusterRiskItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Check item information
         * @type {ClusterCheckItem || null}
         */
        this.CheckItem = null;

        /**
         * Verification information
         * @type {string || null}
         */
        this.VerifyInfo = null;

        /**
         * Event description and check error message
         * @type {string || null}
         */
        this.ErrorMessage = null;

        /**
         * Number of affected clusters
         * @type {number || null}
         */
        this.AffectedClusterCount = null;

        /**
         * Number of affected nodes
         * @type {number || null}
         */
        this.AffectedNodeCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.CheckItem) {
            let obj = new ClusterCheckItem();
            obj.deserialize(params.CheckItem)
            this.CheckItem = obj;
        }
        this.VerifyInfo = 'VerifyInfo' in params ? params.VerifyInfo : null;
        this.ErrorMessage = 'ErrorMessage' in params ? params.ErrorMessage : null;
        this.AffectedClusterCount = 'AffectedClusterCount' in params ? params.AffectedClusterCount : null;
        this.AffectedNodeCount = 'AffectedNodeCount' in params ? params.AffectedNodeCount : null;

    }
}

/**
 * DescribeVirusList response structure.
 * @class
 */
class DescribeVirusListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of trojans
         * @type {Array.<VirusInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VirusInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAbnormalProcessEventsExport request structure.
 * @class
 */
class DescribeAbnormalProcessEventsExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeVulSummary response structure.
 * @class
 */
class DescribeVulSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of vulnerabilities
         * @type {number || null}
         */
        this.VulTotalCount = null;

        /**
         * Number of critical and high-risk vulnerabilities
         * @type {number || null}
         */
        this.SeriousVulCount = null;

        /**
         * Number of high-priority vulnerabilities
         * @type {number || null}
         */
        this.SuggestVulCount = null;

        /**
         * Number of vulnerabilities with POC or EXP
         * @type {number || null}
         */
        this.PocExpLevelVulCount = null;

        /**
         * Number of vulnerabilities with remote EXP
         * @type {number || null}
         */
        this.RemoteExpLevelVulCount = null;

        /**
         * Number of images on the latest version affected by critical or high-risk vulnerabilities
         * @type {number || null}
         */
        this.SeriousVulNewestImageCount = null;

        /**
         * Number of high-priority system vulnerabilities
         * @type {number || null}
         */
        this.SystemVulnerabilityFocusCount = null;

        /**
         * Number of high-priority web vulnerabilities
         * @type {number || null}
         */
        this.WebVulnerabilityFocusCount = null;

        /**
         * Number of affected local images
         * @type {number || null}
         */
        this.SeriousVulnerabilityLocalImageCount = null;

        /**
         * Number of affected repository images
         * @type {number || null}
         */
        this.SeriousVulnerabilityRegistryImageCount = null;

        /**
         * Number of emergency vulnerabilities
         * @type {number || null}
         */
        this.EmergencyVulnerabilityCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.VulTotalCount = 'VulTotalCount' in params ? params.VulTotalCount : null;
        this.SeriousVulCount = 'SeriousVulCount' in params ? params.SeriousVulCount : null;
        this.SuggestVulCount = 'SuggestVulCount' in params ? params.SuggestVulCount : null;
        this.PocExpLevelVulCount = 'PocExpLevelVulCount' in params ? params.PocExpLevelVulCount : null;
        this.RemoteExpLevelVulCount = 'RemoteExpLevelVulCount' in params ? params.RemoteExpLevelVulCount : null;
        this.SeriousVulNewestImageCount = 'SeriousVulNewestImageCount' in params ? params.SeriousVulNewestImageCount : null;
        this.SystemVulnerabilityFocusCount = 'SystemVulnerabilityFocusCount' in params ? params.SystemVulnerabilityFocusCount : null;
        this.WebVulnerabilityFocusCount = 'WebVulnerabilityFocusCount' in params ? params.WebVulnerabilityFocusCount : null;
        this.SeriousVulnerabilityLocalImageCount = 'SeriousVulnerabilityLocalImageCount' in params ? params.SeriousVulnerabilityLocalImageCount : null;
        this.SeriousVulnerabilityRegistryImageCount = 'SeriousVulnerabilityRegistryImageCount' in params ? params.SeriousVulnerabilityRegistryImageCount : null;
        this.EmergencyVulnerabilityCount = 'EmergencyVulnerabilityCount' in params ? params.EmergencyVulnerabilityCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetComponentList request structure.
 * @class
 */
class DescribeAssetComponentListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerID = 'ContainerID' in params ? params.ContainerID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeEmergencyVulList request structure.
 * @class
 */
class DescribeEmergencyVulListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Severity. Valid values: `CRITICAL` (critical); `HIGH` (high); `MIDDLE` (medium); `LOW` (low).</li>
<li>Tags- string - Required: No - Vulnerability tag. Valid values: `POC`, `EXP`.</li>
<li>CanBeFixed- string - Required: No - Whether the vulnerability can be fixed. Valid values: `true`, `false`.</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ContainerName- string - Required: No - Container name</li>
<li>ComponentName- string - Required: No - Component name</li>
<li>ComponentVersion- string - Required: No - Component version</li>
<li>Name- string - Required: No - Vulnerability name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DeleteReverseShellEvents response structure.
 * @class
 */
class DeleteReverseShellEventsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAbnormalProcessDetail response structure.
 * @class
 */
class DescribeAbnormalProcessDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Basic information of the event
         * @type {RunTimeEventBaseInfo || null}
         */
        this.EventBaseInfo = null;

        /**
         * Process information
         * @type {ProcessDetailInfo || null}
         */
        this.ProcessInfo = null;

        /**
         * Parent process information
         * @type {ProcessDetailBaseInfo || null}
         */
        this.ParentProcessInfo = null;

        /**
         * Event description
         * @type {AbnormalProcessEventDescription || null}
         */
        this.EventDetail = null;

        /**
         * Ancestor process information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ProcessBaseInfo || null}
         */
        this.AncestorProcessInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventBaseInfo) {
            let obj = new RunTimeEventBaseInfo();
            obj.deserialize(params.EventBaseInfo)
            this.EventBaseInfo = obj;
        }

        if (params.ProcessInfo) {
            let obj = new ProcessDetailInfo();
            obj.deserialize(params.ProcessInfo)
            this.ProcessInfo = obj;
        }

        if (params.ParentProcessInfo) {
            let obj = new ProcessDetailBaseInfo();
            obj.deserialize(params.ParentProcessInfo)
            this.ParentProcessInfo = obj;
        }

        if (params.EventDetail) {
            let obj = new AbnormalProcessEventDescription();
            obj.deserialize(params.EventDetail)
            this.EventDetail = obj;
        }

        if (params.AncestorProcessInfo) {
            let obj = new ProcessBaseInfo();
            obj.deserialize(params.AncestorProcessInfo)
            this.AncestorProcessInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageListExport request structure.
 * @class
 */
class DescribeAssetImageListExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>ImageName- String - Required: No - Image name</li>
<li>ScanStatus - String - Required: No - Image scanning status. Valid values: `notScan`, `scanning`, `scanned`, `scanErr`.</li>
<li>ImageID- String - Required: No - Image ID</li>
<li>SecurityRisk- String - Required: No - Security risks. Valid values: `VulCnt`, `VirusCnt`, `RiskCnt`, `IsTrustImage`.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * ModifyAssetImageRegistryScanStopOneKey response structure.
 * @class
 */
class ModifyAssetImageRegistryScanStopOneKeyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Exploit prevention event details
 * @class
 */
class VulDefenceEventDetail extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability CVE ID
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.VulName = null;

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Intrusion status
         * @type {string || null}
         */
        this.EventType = null;

        /**
         * Attacker IP
         * @type {string || null}
         */
        this.SourceIP = null;

        /**
         * Region of the attacker IP
         * @type {string || null}
         */
        this.City = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerID = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Processing status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Attacker port
         * @type {Array.<string> || null}
         */
        this.SourcePort = null;

        /**
         * Event ID
         * @type {number || null}
         */
        this.EventID = null;

        /**
         * General node/Super node name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Server private IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Server public IP
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Harm description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Fix suggestion
         * @type {string || null}
         */
        this.OfficialSolution = null;

        /**
         * Attack packet
         * @type {string || null}
         */
        this.NetworkPayload = null;

        /**
         * Process PID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.PID = null;

        /**
         * Main class name of the process
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MainClass = null;

        /**
         * Stack information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.StackTrace = null;

        /**
         * Listened account
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ServerAccount = null;

        /**
         * Listened port
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ServerPort = null;

        /**
         * Process path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ServerExe = null;

        /**
         * Process command line parameter
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ServerArg = null;

        /**
         * Node QUuid/Super node ID
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.QUUID = null;

        /**
         * Isolation status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
	"NODE_DESTROYED"      // The node is terminated.
	"CONTAINER_EXITED"    // The container exited.
	"CONTAINER_DESTROYED" // The container was terminated.
	"SHARED_HOST"         // The container shares the network with the server.
	"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
	"UNKNOW"              // The reason is unknown.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Container status
`RUNNING`: Running.
`PAUSED`: Paused.
`STOPPED`: Stopped.
`CREATED`: Created.
`DESTROYED`: Terminated.
`RESTARTING`: Restarting.
`REMOVING`: Removing.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerStatus = null;

        /**
         * API URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.JNDIUrl = null;

        /**
         * RASP details
Note: This field may return `null`, indicating that no valid value was found.
         * @type {Array.<RaspInfo> || null}
         */
        this.RaspDetail = null;

        /**
         * Super node subnet name
         * @type {string || null}
         */
        this.NodeSubNetName = null;

        /**
         * Super node subnet IP range
         * @type {string || null}
         */
        this.NodeSubNetCIDR = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * ID of a super node
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * UID of a super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * Super node subnet ID
         * @type {string || null}
         */
        this.NodeSubNetID = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * 
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * 
         * @type {string || null}
         */
        this.WorkloadType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.VulName = 'VulName' in params ? params.VulName : null;
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.SourceIP = 'SourceIP' in params ? params.SourceIP : null;
        this.City = 'City' in params ? params.City : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.ContainerID = 'ContainerID' in params ? params.ContainerID : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.SourcePort = 'SourcePort' in params ? params.SourcePort : null;
        this.EventID = 'EventID' in params ? params.EventID : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.OfficialSolution = 'OfficialSolution' in params ? params.OfficialSolution : null;
        this.NetworkPayload = 'NetworkPayload' in params ? params.NetworkPayload : null;
        this.PID = 'PID' in params ? params.PID : null;
        this.MainClass = 'MainClass' in params ? params.MainClass : null;
        this.StackTrace = 'StackTrace' in params ? params.StackTrace : null;
        this.ServerAccount = 'ServerAccount' in params ? params.ServerAccount : null;
        this.ServerPort = 'ServerPort' in params ? params.ServerPort : null;
        this.ServerExe = 'ServerExe' in params ? params.ServerExe : null;
        this.ServerArg = 'ServerArg' in params ? params.ServerArg : null;
        this.QUUID = 'QUUID' in params ? params.QUUID : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.ContainerStatus = 'ContainerStatus' in params ? params.ContainerStatus : null;
        this.JNDIUrl = 'JNDIUrl' in params ? params.JNDIUrl : null;

        if (params.RaspDetail) {
            this.RaspDetail = new Array();
            for (let z in params.RaspDetail) {
                let obj = new RaspInfo();
                obj.deserialize(params.RaspDetail[z]);
                this.RaspDetail.push(obj);
            }
        }
        this.NodeSubNetName = 'NodeSubNetName' in params ? params.NodeSubNetName : null;
        this.NodeSubNetCIDR = 'NodeSubNetCIDR' in params ? params.NodeSubNetCIDR : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.NodeSubNetID = 'NodeSubNetID' in params ? params.NodeSubNetID : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.WorkloadType = 'WorkloadType' in params ? params.WorkloadType : null;

    }
}

/**
 * UpdateNetworkFirewallPolicyYamlDetail request structure.
 * @class
 */
class UpdateNetworkFirewallPolicyYamlDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy ID
         * @type {number || null}
         */
        this.Id = null;

        /**
         * Base64-encoded NetworkPolicy YAML string
         * @type {string || null}
         */
        this.Yaml = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.Yaml = 'Yaml' in params ? params.Yaml : null;
        this.Description = 'Description' in params ? params.Description : null;

    }
}

/**
 * DescribeK8sApiAbnormalRuleInfo request structure.
 * @class
 */
class DescribeK8sApiAbnormalRuleInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule ID
         * @type {string || null}
         */
        this.RuleID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleID = 'RuleID' in params ? params.RuleID : null;

    }
}

/**
 * DescribeVulRegistryImageList request structure.
 * @class
 */
class DescribeVulRegistryImageListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * The number of results returned. Default value: 10. Maximum value: 100.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * 
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter condition
`OnlyAffectedNewestImage`: (bool) Whether the latest image is affected.
`ImageDigest`: Image digest. Fuzzy query is supported.
`ImageId`: Image ID.
`Namespace`: Namespace. Fuzzy query is supported.
`ImageTag`: Image tag. Fuzzy query is supported.
`InstanceName`: Instance name. Fuzzy query is supported.
`ImageName`: Image name. Fuzzy query is supported.
`ImageRepoAddress`: Image address. Fuzzy query is supported.
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * Runtime security - Basic event information
 * @class
 */
class RunTimeEventBaseInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.EventId = null;

        /**
         * Event discovery time
         * @type {string || null}
         */
        this.FoundTime = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Status. `EVENT_UNDEAL`: Pending.
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event name:
Host file access escape
Syscall escape
Mount namespace escape
Program privilege escalation escape
Privileged container startup escape
Sensitive path mount
Malicious process startup
File tampering
         * @type {string || null}
         */
        this.EventName = null;

        /**
         * Event type
   `ESCAPE_HOST_ACESS_FILE`: Host file access escape.
   `ESCAPE_MOUNT_NAMESPACE`: Mount namespace escape.
   `ESCAPE_PRIVILEDGE`: Program privilege escalation escape.
   `ESCAPE_PRIVILEDGE_CONTAINER_START`: Privileged container startup escape.
   `ESCAPE_MOUNT_SENSITIVE_PTAH`: Sensitive path mount.
   `ESCAPE_SYSCALL`: Syscall escape.
         * @type {string || null}
         */
        this.EventType = null;

        /**
         * Number of events
         * @type {number || null}
         */
        this.EventCount = null;

        /**
         * Last generation time
         * @type {string || null}
         */
        this.LatestFoundTime = null;

        /**
         * Private IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Public IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ClientIP = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of the container
"AGENT_OFFLINE"       // The agent is offline.
"NODE_DESTROYED"      // The node is terminated.
"CONTAINER_EXITED"    // The container exited.
"CONTAINER_DESTROYED" // The container was terminated.
"SHARED_HOST"         // The container shares the network with the server.
"RESOURCE_LIMIT"      // The number of resources to be isolated exceeds the limit.
"UNKNOW"              // The reason is unknown.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Node type. Valid values: `NORMAL` (general node), `SUPER` (super node)
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Node subnet ID
         * @type {string || null}
         */
        this.NodeSubNetID = null;

        /**
         * Node subnet name
         * @type {string || null}
         */
        this.NodeSubNetName = null;

        /**
         * Subnet IP range
         * @type {string || null}
         */
        this.NodeSubNetCIDR = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod status
         * @type {string || null}
         */
        this.PodStatus = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Unique node ID
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * uuid
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * 
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * 
         * @type {string || null}
         */
        this.WorkloadType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;
        this.FoundTime = 'FoundTime' in params ? params.FoundTime : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.EventName = 'EventName' in params ? params.EventName : null;
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.EventCount = 'EventCount' in params ? params.EventCount : null;
        this.LatestFoundTime = 'LatestFoundTime' in params ? params.LatestFoundTime : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ClientIP = 'ClientIP' in params ? params.ClientIP : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeSubNetID = 'NodeSubNetID' in params ? params.NodeSubNetID : null;
        this.NodeSubNetName = 'NodeSubNetName' in params ? params.NodeSubNetName : null;
        this.NodeSubNetCIDR = 'NodeSubNetCIDR' in params ? params.NodeSubNetCIDR : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodStatus = 'PodStatus' in params ? params.PodStatus : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.WorkloadType = 'WorkloadType' in params ? params.WorkloadType : null;

    }
}

/**
 * DescribeSystemVulList response structure.
 * @class
 */
class DescribeSystemVulListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of vulnerabilities
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of vulnerabilities
         * @type {Array.<VulInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Input parameters for adding and unignoring vulnerabilities in the scan
 * @class
 */
class ModifyIgnoreVul extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * IDs of images to be ignored. If it is not specified, it indicates to ignore all.
         * @type {Array.<string> || null}
         */
        this.ImageIDs = null;

        /**
         * When there is an image
Image type. Valid values: `LOCAL` (local image); `REGISTRY` (repository image).
         * @type {string || null}
         */
        this.ImageType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.ImageIDs = 'ImageIDs' in params ? params.ImageIDs : null;
        this.ImageType = 'ImageType' in params ? params.ImageType : null;

    }
}

/**
 * DescribeAssetImageRegistryVirusList response structure.
 * @class
 */
class DescribeAssetImageRegistryVirusListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of image vulnerabilities
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ImageVirus> || null}
         */
        this.List = null;

        /**
         * Total number
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageVirus();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageSimpleList request structure.
 * @class
 */
class DescribeAssetImageSimpleListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Keywords- String - Required: No - Image name/ID</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeAssetDBServiceList response structure.
 * @class
 */
class DescribeAssetDBServiceListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of database services
         * @type {Array.<ServiceInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ServiceInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogJoinTypeList request structure.
 * @class
 */
class DescribeSecLogJoinTypeListRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeImageSimpleList request structure.
 * @class
 */
class DescribeImageSimpleListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * `IsAuthorized` (whether it is licensed). Valid values: `0` (no); `1` (yes); none (all).
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * CreateNetworkFirewallPolicyDiscover request structure.
 * @class
 */
class CreateNetworkFirewallPolicyDiscoverRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;

    }
}

/**
 * Trend information of security events at runtime
 * @class
 */
class ImageRiskTendencyInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of trends
         * @type {Array.<RunTimeTendencyInfo> || null}
         */
        this.ImageRiskSet = null;

        /**
         * Risk type:
`IRT_VULNERABILITY`: Vulnerability.
`IRT_MALWARE_VIRUS`: Virus and trojan.
`IRT_RISK`: Sensitive data.
         * @type {string || null}
         */
        this.ImageRiskType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.ImageRiskSet) {
            this.ImageRiskSet = new Array();
            for (let z in params.ImageRiskSet) {
                let obj = new RunTimeTendencyInfo();
                obj.deserialize(params.ImageRiskSet[z]);
                this.ImageRiskSet.push(obj);
            }
        }
        this.ImageRiskType = 'ImageRiskType' in params ? params.ImageRiskType : null;

    }
}

/**
 * DescribeVulTopRanking response structure.
 * @class
 */
class DescribeVulTopRankingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of top vulnerabilities
         * @type {Array.<VulTopRankingInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulTopRankingInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetWebServiceList response structure.
 * @class
 */
class DescribeAssetWebServiceListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of servers
         * @type {Array.<ServiceInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ServiceInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Vulnerability details
 * @class
 */
class VulDetailInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * CVE No.
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Vulnerability tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * Vulnerability type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CategoryType = null;

        /**
         * Vulnerability severity
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Level = null;

        /**
         * Vulnerability disclosure time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.SubmitTime = null;

        /**
         * Vulnerability description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * CVSS V3 description
         * @type {string || null}
         */
        this.CVSSV3Desc = null;

        /**
         * Vulnerability fix suggestion
         * @type {string || null}
         */
        this.OfficialSolution = null;

        /**
         * Mitigation measure
         * @type {string || null}
         */
        this.DefenseSolution = null;

        /**
         * Reference link
         * @type {Array.<string> || null}
         */
        this.Reference = null;

        /**
         * CVSS V3 score
         * @type {number || null}
         */
        this.CVSSV3Score = null;

        /**
         * List of components affected by vulnerabilities
         * @type {Array.<VulAffectedComponentInfo> || null}
         */
        this.ComponentList = null;

        /**
         * Number of affected local images
         * @type {number || null}
         */
        this.LocalImageCount = null;

        /**
         * Number of affected containers
         * @type {number || null}
         */
        this.ContainerCount = null;

        /**
         * Number of affected repository images
         * @type {number || null}
         */
        this.RegistryImageCount = null;

        /**
         * Vulnerability sub-category
         * @type {string || null}
         */
        this.Category = null;

        /**
         * Number of affected local images on the latest version
         * @type {number || null}
         */
        this.LocalNewestImageCount = null;

        /**
         * Number of affected repository images on the latest version
         * @type {number || null}
         */
        this.RegistryNewestImageCount = null;

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Defense status. Valid values: `NO_DEFENDED`, `DEFENDED`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DefenceStatus = null;

        /**
         * Scope of servers with exploit prevention enabled. Valid values: `MANUAL` (specified servers); `ALL` (all servers).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DefenceScope = null;

        /**
         * Number of servers with exploit prevention enabled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DefenceHostCount = null;

        /**
         * Number of attacks defended against
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DefendedCount = null;

        /**
         * Whether it is scanned. Valid values: `NOT_SCAN` (not scanned); `SCANNED` (scanned).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanStatus = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.CategoryType = 'CategoryType' in params ? params.CategoryType : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.SubmitTime = 'SubmitTime' in params ? params.SubmitTime : null;
        this.Description = 'Description' in params ? params.Description : null;
        this.CVSSV3Desc = 'CVSSV3Desc' in params ? params.CVSSV3Desc : null;
        this.OfficialSolution = 'OfficialSolution' in params ? params.OfficialSolution : null;
        this.DefenseSolution = 'DefenseSolution' in params ? params.DefenseSolution : null;
        this.Reference = 'Reference' in params ? params.Reference : null;
        this.CVSSV3Score = 'CVSSV3Score' in params ? params.CVSSV3Score : null;

        if (params.ComponentList) {
            this.ComponentList = new Array();
            for (let z in params.ComponentList) {
                let obj = new VulAffectedComponentInfo();
                obj.deserialize(params.ComponentList[z]);
                this.ComponentList.push(obj);
            }
        }
        this.LocalImageCount = 'LocalImageCount' in params ? params.LocalImageCount : null;
        this.ContainerCount = 'ContainerCount' in params ? params.ContainerCount : null;
        this.RegistryImageCount = 'RegistryImageCount' in params ? params.RegistryImageCount : null;
        this.Category = 'Category' in params ? params.Category : null;
        this.LocalNewestImageCount = 'LocalNewestImageCount' in params ? params.LocalNewestImageCount : null;
        this.RegistryNewestImageCount = 'RegistryNewestImageCount' in params ? params.RegistryNewestImageCount : null;
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.DefenceStatus = 'DefenceStatus' in params ? params.DefenceStatus : null;
        this.DefenceScope = 'DefenceScope' in params ? params.DefenceScope : null;
        this.DefenceHostCount = 'DefenceHostCount' in params ? params.DefenceHostCount : null;
        this.DefendedCount = 'DefendedCount' in params ? params.DefendedCount : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;

    }
}

/**
 * DescribeVulLevelSummary response structure.
 * @class
 */
class DescribeVulLevelSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of high-risk vulnerabilities
         * @type {number || null}
         */
        this.HighLevelVulCount = null;

        /**
         * Number of medium-risk vulnerabilities
         * @type {number || null}
         */
        this.MediumLevelVulCount = null;

        /**
         * Number of low-risk vulnerabilities
         * @type {number || null}
         */
        this.LowLevelVulCount = null;

        /**
         * Number of critical vulnerabilities
         * @type {number || null}
         */
        this.CriticalLevelVulCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HighLevelVulCount = 'HighLevelVulCount' in params ? params.HighLevelVulCount : null;
        this.MediumLevelVulCount = 'MediumLevelVulCount' in params ? params.MediumLevelVulCount : null;
        this.LowLevelVulCount = 'LowLevelVulCount' in params ? params.LowLevelVulCount : null;
        this.CriticalLevelVulCount = 'CriticalLevelVulCount' in params ? params.CriticalLevelVulCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddNetworkFirewallPolicyDetail request structure.
 * @class
 */
class AddNetworkFirewallPolicyDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.PolicyName = null;

        /**
         * Inbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.FromPolicyRule = null;

        /**
         * Outbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.ToPolicyRule = null;

        /**
         * Pod selector
         * @type {string || null}
         */
        this.PodSelector = null;

        /**
         * Namespace
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Custom rule
         * @type {Array.<NetworkCustomPolicy> || null}
         */
        this.CustomPolicy = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.PolicyName = 'PolicyName' in params ? params.PolicyName : null;
        this.FromPolicyRule = 'FromPolicyRule' in params ? params.FromPolicyRule : null;
        this.ToPolicyRule = 'ToPolicyRule' in params ? params.ToPolicyRule : null;
        this.PodSelector = 'PodSelector' in params ? params.PodSelector : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.Description = 'Description' in params ? params.Description : null;

        if (params.CustomPolicy) {
            this.CustomPolicy = new Array();
            for (let z in params.CustomPolicy) {
                let obj = new NetworkCustomPolicy();
                obj.deserialize(params.CustomPolicy[z]);
                this.CustomPolicy.push(obj);
            }
        }

    }
}

/**
 * DescribeComplianceTaskPolicyItemSummaryList request structure.
 * @class
 */
class DescribeComplianceTaskPolicyItemSummaryListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Asset type, which indicates to only query check items related to the specified asset type.

`ASSET_CONTAINER`: Container.

`ASSET_IMAGE`: Image.

`ASSET_HOST`: Server.

`ASSET_K8S`: K8s asset.
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Initial offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Filter
Name - String
Name. Valid values: `ItemType`, `StandardId`, `RiskLevel`.
`ClusterName` is also available for K8s assets.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * Aggregated information of a check item
 * @class
 */
class CompliancePolicyItemSummary extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique ID of the customer check item
         * @type {number || null}
         */
        this.CustomerPolicyItemId = null;

        /**
         * Original ID of the check item
         * @type {number || null}
         */
        this.BasePolicyItemId = null;

        /**
         * Check item name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Category of the check item, which is an enumerated string.
         * @type {string || null}
         */
        this.Category = null;

        /**
         * Compliance standard
         * @type {string || null}
         */
        this.BenchmarkStandardName = null;

        /**
         * Severity. Valid values: `RISK_CRITICAL`, `RISK_HIGH`, `RISK_MEDIUM`, `RISK_LOW`, `RISK_NOTICE`.
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Asset type of the check item
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Last check time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LastCheckTime = null;

        /**
         * Check status

`CHECK_INIT`: To be checked.

`CHECK_RUNNING`: Checking.

`CHECK_FINISHED`: Checked.

`CHECK_FAILED`: Check failed.
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Check result. Valid values: `RESULT_PASSED`: Passed.

`RESULT_FAILED`: Failed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CheckResult = null;

        /**
         * Number of assets that passed the check
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.PassedAssetCount = null;

        /**
         * Number of assets that failed the check
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.FailedAssetCount = null;

        /**
         * Allowed item ID of the check item. If it exists and is not `0`, the check item is ignored.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.WhitelistId = null;

        /**
         * Handling suggestion
         * @type {string || null}
         */
        this.FixSuggestion = null;

        /**
         * Compliance standard ID
         * @type {number || null}
         */
        this.BenchmarkStandardId = null;

        /**
         * TCSS editions that support this check item
Note: This field may return `null`, indicating that no valid value was found.
         * @type {string || null}
         */
        this.ApplicableVersion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemId = 'CustomerPolicyItemId' in params ? params.CustomerPolicyItemId : null;
        this.BasePolicyItemId = 'BasePolicyItemId' in params ? params.BasePolicyItemId : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.Category = 'Category' in params ? params.Category : null;
        this.BenchmarkStandardName = 'BenchmarkStandardName' in params ? params.BenchmarkStandardName : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.LastCheckTime = 'LastCheckTime' in params ? params.LastCheckTime : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.CheckResult = 'CheckResult' in params ? params.CheckResult : null;
        this.PassedAssetCount = 'PassedAssetCount' in params ? params.PassedAssetCount : null;
        this.FailedAssetCount = 'FailedAssetCount' in params ? params.FailedAssetCount : null;
        this.WhitelistId = 'WhitelistId' in params ? params.WhitelistId : null;
        this.FixSuggestion = 'FixSuggestion' in params ? params.FixSuggestion : null;
        this.BenchmarkStandardId = 'BenchmarkStandardId' in params ? params.BenchmarkStandardId : null;
        this.ApplicableVersion = 'ApplicableVersion' in params ? params.ApplicableVersion : null;

    }
}

/**
 * DescribeAssetImageVulList request structure.
 * @class
 */
class DescribeAssetImageVulListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Name- String - Required: No - Vulnerability name</li>
<li>Level - String - Required: No - Risk level. Valid values: `1`, `2`, `3`, `4`.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field: `Level`.
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `+`, `-`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * ModifyRiskSyscallStatus request structure.
 * @class
 */
class ModifyRiskSyscallStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of event IDs
         * @type {Array.<string> || null}
         */
        this.EventIdSet = null;

        /**
         * Event status   
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
     `EVENT_DEL`: Deleted.
     `EVENT_ADD_WHITE`: Allowed.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event remarks
         * @type {string || null}
         */
        this.Remark = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIdSet = 'EventIdSet' in params ? params.EventIdSet : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

    }
}

/**
 * DescribeVulDefenceEvent response structure.
 * @class
 */
class DescribeVulDefenceEventResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of exploit prevention events
         * @type {Array.<VulDefenceEvent> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulDefenceEvent();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVirusEventTendency response structure.
 * @class
 */
class DescribeVirusEventTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of trends
         * @type {Array.<VirusTendencyInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VirusTendencyInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddEditImageAutoAuthorizedRule request structure.
 * @class
 */
class AddEditImageAutoAuthorizedRuleRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Scope. Valid values: `MANUAL` (specified servers); `ALL` (all images).
         * @type {string || null}
         */
        this.RangeType = null;

        /**
         * Maximum number of image licenses per day. `0`: Unlimited.
         * @type {number || null}
         */
        this.MaxDailyCount = null;

        /**
         * Whether the rule takes effect. Valid values: `0` (no); `1` (yes).
         * @type {number || null}
         */
        this.IsEnabled = null;

        /**
         * IDs of specified servers. This parameter is required when the scope is `MANUAL` and `HostIdFilters` is empty.
         * @type {Array.<string> || null}
         */
        this.HostIdSet = null;

        /**
         * Rule ID, which is required during editing.
         * @type {number || null}
         */
        this.RuleId = null;

        /**
         * Filter. This parameter is required when the scope is `MANUAL` and `HostIdSet` is empty.
         * @type {Array.<AssetFilters> || null}
         */
        this.HostIdFilters = null;

        /**
         * Specified server IDs to be excluded
         * @type {Array.<string> || null}
         */
        this.ExcludeHostIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RangeType = 'RangeType' in params ? params.RangeType : null;
        this.MaxDailyCount = 'MaxDailyCount' in params ? params.MaxDailyCount : null;
        this.IsEnabled = 'IsEnabled' in params ? params.IsEnabled : null;
        this.HostIdSet = 'HostIdSet' in params ? params.HostIdSet : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;

        if (params.HostIdFilters) {
            this.HostIdFilters = new Array();
            for (let z in params.HostIdFilters) {
                let obj = new AssetFilters();
                obj.deserialize(params.HostIdFilters[z]);
                this.HostIdFilters.push(obj);
            }
        }
        this.ExcludeHostIdSet = 'ExcludeHostIdSet' in params ? params.ExcludeHostIdSet : null;

    }
}

/**
 * SwitchImageAutoAuthorizedRule request structure.
 * @class
 */
class SwitchImageAutoAuthorizedRuleRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether the rule takes effect. Valid values: `0` (no); `1` (yes).
         * @type {number || null}
         */
        this.IsEnabled = null;

        /**
         * Rule ID
         * @type {number || null}
         */
        this.RuleId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsEnabled = 'IsEnabled' in params ? params.IsEnabled : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;

    }
}

/**
 * DescribeVirusSampleDownloadUrl response structure.
 * @class
 */
class DescribeVirusSampleDownloadUrlResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Sample download URL
         * @type {string || null}
         */
        this.FileUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.FileUrl = 'FileUrl' in params ? params.FileUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeValueAddedSrvInfo response structure.
 * @class
 */
class DescribeValueAddedSrvInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of unlicensed repository images
         * @type {number || null}
         */
        this.RegistryImageCnt = null;

        /**
         * Number of unlicensed local images
         * @type {number || null}
         */
        this.LocalImageCnt = null;

        /**
         * Number of unused image security scan licenses
         * @type {number || null}
         */
        this.UnusedAuthorizedCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RegistryImageCnt = 'RegistryImageCnt' in params ? params.RegistryImageCnt : null;
        this.LocalImageCnt = 'LocalImageCnt' in params ? params.LocalImageCnt : null;
        this.UnusedAuthorizedCnt = 'UnusedAuthorizedCnt' in params ? params.UnusedAuthorizedCnt : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Runtime risk information
 * @class
 */
class RunTimeRiskInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number
         * @type {number || null}
         */
        this.Cnt = null;

        /**
         * Risk level:
`CRITICAL`: Critical.
`HIGH`: High.
`MEDIUM`: Medium.
`LOW`: Low.
         * @type {string || null}
         */
        this.Level = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Cnt = 'Cnt' in params ? params.Cnt : null;
        this.Level = 'Level' in params ? params.Level : null;

    }
}

/**
 * CreateVirusScanTask request structure.
 * @class
 */
class CreateVirusScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to scan all paths
         * @type {boolean || null}
         */
        this.ScanPathAll = null;

        /**
         * Scanning scope. Valid values: `0` (container); `1` (server).
         * @type {number || null}
         */
        this.ScanRangeType = null;

        /**
         * Valid values: `true` (all); `false` (specified).
         * @type {boolean || null}
         */
        this.ScanRangeAll = null;

        /**
         * Timeout period in hours
         * @type {number || null}
         */
        this.Timeout = null;

        /**
         * Valid when `ScanPathAll` is `false`. Valid values: `0` (scan the following paths); `1` (scan all paths except the following).
         * @type {number || null}
         */
        this.ScanPathType = null;

        /**
         * ID of the specified container or server to be scanned, which is based on `ScanRangeType`.
         * @type {Array.<string> || null}
         */
        this.ScanIds = null;

        /**
         * Specified path to be excluded or scanned
         * @type {Array.<string> || null}
         */
        this.ScanPath = null;

        /**
         * Path scanning mode: 
`SCAN_PATH_ALL`: Scan all paths
`SCAN_PATH_DEFAULT`: Scan the default path
`SCAN_PATH_USER_DEFINE`: Scan the custom path

         * @type {string || null}
         */
        this.ScanPathMode = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ScanPathAll = 'ScanPathAll' in params ? params.ScanPathAll : null;
        this.ScanRangeType = 'ScanRangeType' in params ? params.ScanRangeType : null;
        this.ScanRangeAll = 'ScanRangeAll' in params ? params.ScanRangeAll : null;
        this.Timeout = 'Timeout' in params ? params.Timeout : null;
        this.ScanPathType = 'ScanPathType' in params ? params.ScanPathType : null;
        this.ScanIds = 'ScanIds' in params ? params.ScanIds : null;
        this.ScanPath = 'ScanPath' in params ? params.ScanPath : null;
        this.ScanPathMode = 'ScanPathMode' in params ? params.ScanPathMode : null;

    }
}

/**
 * DescribeAbnormalProcessDetail request structure.
 * @class
 */
class DescribeAbnormalProcessDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.EventId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

    }
}

/**
 * DescribeAssetImageScanTask response structure.
 * @class
 */
class DescribeAssetImageScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddEditAccessControlRule request structure.
 * @class
 */
class AddEditAccessControlRuleRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Information of the added policy. The policy ID is empty here but cannot be empty when you edit a policy.
         * @type {AccessControlRuleInfo || null}
         */
        this.RuleInfo = null;

        /**
         * Used only for an allowed item
         * @type {string || null}
         */
        this.EventId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.RuleInfo) {
            let obj = new AccessControlRuleInfo();
            obj.deserialize(params.RuleInfo)
            this.RuleInfo = obj;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

    }
}

/**
 * DescribeVulTopRanking request structure.
 * @class
 */
class DescribeVulTopRankingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability type. Valid values: `SYSTEM` (system vulnerability); `WEB` (web application vulnerability); `EMERGENCY` (emergency vulnerability).
         * @type {string || null}
         */
        this.CategoryType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CategoryType = 'CategoryType' in params ? params.CategoryType : null;

    }
}

/**
 * ConfirmNetworkFirewallPolicy request structure.
 * @class
 */
class ConfirmNetworkFirewallPolicyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Array of cluster IDs
         * @type {Array.<number> || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * Container mount information
 * @class
 */
class ContainerMount extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mount type: `bind`.
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Host path
         * @type {string || null}
         */
        this.Source = null;

        /**
         * Path in the container
         * @type {string || null}
         */
        this.Destination = null;

        /**
         * Mode
         * @type {string || null}
         */
        this.Mode = null;

        /**
         * Read/Write permission
         * @type {boolean || null}
         */
        this.RW = null;

        /**
         * Propagation type
         * @type {string || null}
         */
        this.Propagation = null;

        /**
         * Name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Driver
         * @type {string || null}
         */
        this.Driver = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Type = 'Type' in params ? params.Type : null;
        this.Source = 'Source' in params ? params.Source : null;
        this.Destination = 'Destination' in params ? params.Destination : null;
        this.Mode = 'Mode' in params ? params.Mode : null;
        this.RW = 'RW' in params ? params.RW : null;
        this.Propagation = 'Propagation' in params ? params.Propagation : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.Driver = 'Driver' in params ? params.Driver : null;

    }
}

/**
 * DeleteSearchTemplate response structure.
 * @class
 */
class DeleteSearchTemplateResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddComplianceAssetPolicySetToWhitelist request structure.
 * @class
 */
class AddComplianceAssetPolicySetToWhitelistRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of asset IDs and check item IDs
         * @type {Array.<ComplianceAssetPolicySetItem> || null}
         */
        this.AssetPolicySetList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.AssetPolicySetList) {
            this.AssetPolicySetList = new Array();
            for (let z in params.AssetPolicySetList) {
                let obj = new ComplianceAssetPolicySetItem();
                obj.deserialize(params.AssetPolicySetList[z]);
                this.AssetPolicySetList.push(obj);
            }
        }

    }
}

/**
 * DescribeVirusAutoIsolateSampleDownloadURL response structure.
 * @class
 */
class DescribeVirusAutoIsolateSampleDownloadURLResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Sample download URL
         * @type {string || null}
         */
        this.FileUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.FileUrl = 'FileUrl' in params ? params.FileUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogVasInfo request structure.
 * @class
 */
class DescribeSecLogVasInfoRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeNetworkFirewallPolicyDiscover response structure.
 * @class
 */
class DescribeNetworkFirewallPolicyDiscoverResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task status. Valid values: `Task_Running`, `Task_Succ`, `Task_Error`, `Task_NoExist`.
         * @type {string || null}
         */
        this.TaskStatus = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskStatus = 'TaskStatus' in params ? params.TaskStatus : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageSimpleList response structure.
 * @class
 */
class DescribeAssetImageSimpleListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of images
         * @type {Array.<AssetSimpleImageInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new AssetSimpleImageInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeComplianceAssetPolicyItemList response structure.
 * @class
 */
class DescribeComplianceAssetPolicyItemListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of check items, which is `0` if the baseline check is not enabled.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of check items of an asset
         * @type {Array.<ComplianceAssetPolicyItem> || null}
         */
        this.AssetPolicyItemList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.AssetPolicyItemList) {
            this.AssetPolicyItemList = new Array();
            for (let z in params.AssetPolicyItemList) {
                let obj = new ComplianceAssetPolicyItem();
                obj.deserialize(params.AssetPolicyItemList[z]);
                this.AssetPolicyItemList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Key-value pair filter for conditional filtering queries, such as filter ID, name, and status. If more than one filter exists, the logical relationship between these filters is `AND`. If multiple values exist in one filter, the logical relationship between these values is `OR`.
 * @class
 */
class ComplianceFilters extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * One or more filter values
         * @type {Array.<string> || null}
         */
        this.Values = null;

        /**
         * Whether to use fuzzy query. Default value: `true`.
         * @type {boolean || null}
         */
        this.ExactMatch = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Values = 'Values' in params ? params.Values : null;
        this.ExactMatch = 'ExactMatch' in params ? params.ExactMatch : null;

    }
}

/**
 * Information of a virus in the image
 * @class
 */
class ImageVirusInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Path = null;

        /**
         * Risk level
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RiskLevel = null;

        /**
         * Virus name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VirusName = null;

        /**
         * Tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * Description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Desc = null;

        /**
         * Fix suggestion
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Size
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Size = null;

        /**
         * First discovery time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FirstScanTime = null;

        /**
         * Last scan time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LatestScanTime = null;

        /**
         * MD5 checksum of the file
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Md5 = null;

        /**
         * Filename
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FileName = null;

        /**
         * Check platform
`1`: Tencent Cloud Security Engine.
`2`: tav.
`3`: binaryAi.
`4`: Unusual behavior.
`5`: Threat intelligence.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.CheckPlatform = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Path = 'Path' in params ? params.Path : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.VirusName = 'VirusName' in params ? params.VirusName : null;
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.Desc = 'Desc' in params ? params.Desc : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Size = 'Size' in params ? params.Size : null;
        this.FirstScanTime = 'FirstScanTime' in params ? params.FirstScanTime : null;
        this.LatestScanTime = 'LatestScanTime' in params ? params.LatestScanTime : null;
        this.Md5 = 'Md5' in params ? params.Md5 : null;
        this.FileName = 'FileName' in params ? params.FileName : null;
        this.CheckPlatform = 'CheckPlatform' in params ? params.CheckPlatform : null;

    }
}

/**
 * StopVulScanTask response structure.
 * @class
 */
class StopVulScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyEscapeWhiteList response structure.
 * @class
 */
class ModifyEscapeWhiteListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Response parameters structure of the network space label
 * @class
 */
class NetworkClusterNamespaceLabelInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Network space label
         * @type {string || null}
         */
        this.Labels = null;

        /**
         * Network space name
         * @type {string || null}
         */
        this.Name = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Labels = 'Labels' in params ? params.Labels : null;
        this.Name = 'Name' in params ? params.Name : null;

    }
}

/**
 * List of image IDs
 * @class
 */
class ImagesInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.Size = null;

        /**
         * Number of servers
         * @type {number || null}
         */
        this.HostCnt = null;

        /**
         * Number of containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * Scan time
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Number of vulnerabilities
         * @type {number || null}
         */
        this.VulCnt = null;

        /**
         * Number of viruses
         * @type {number || null}
         */
        this.VirusCnt = null;

        /**
         * Number of sensitive data items
         * @type {number || null}
         */
        this.RiskCnt = null;

        /**
         * Whether it is a trusted image
         * @type {boolean || null}
         */
        this.IsTrustImage = null;

        /**
         * Image system
         * @type {string || null}
         */
        this.OsName = null;

        /**
         * Image scan error in the agent
         * @type {string || null}
         */
        this.AgentError = null;

        /**
         * Image scan error on the backend
         * @type {string || null}
         */
        this.ScanError = null;

        /**
         * Scanning status
         * @type {string || null}
         */
        this.ScanStatus = null;

        /**
         * Trojan scan error message
         * @type {string || null}
         */
        this.ScanVirusError = null;

        /**
         * Vulnerability scan error message
         * @type {string || null}
         */
        this.ScanVulError = null;

        /**
         * Risk scan error message
         * @type {string || null}
         */
        this.ScanRiskError = null;

        /**
         * Whether the image is of high priority. Valid values: `0` (no); others (yes).
         * @type {number || null}
         */
        this.IsSuggest = null;

        /**
         * Whether it is licensed. Valid values: `1` (yes); `0` (no).
         * @type {number || null}
         */
        this.IsAuthorized = null;

        /**
         * Number of components
         * @type {number || null}
         */
        this.ComponentCnt = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.Size = 'Size' in params ? params.Size : null;
        this.HostCnt = 'HostCnt' in params ? params.HostCnt : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.VulCnt = 'VulCnt' in params ? params.VulCnt : null;
        this.VirusCnt = 'VirusCnt' in params ? params.VirusCnt : null;
        this.RiskCnt = 'RiskCnt' in params ? params.RiskCnt : null;
        this.IsTrustImage = 'IsTrustImage' in params ? params.IsTrustImage : null;
        this.OsName = 'OsName' in params ? params.OsName : null;
        this.AgentError = 'AgentError' in params ? params.AgentError : null;
        this.ScanError = 'ScanError' in params ? params.ScanError : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;
        this.ScanVirusError = 'ScanVirusError' in params ? params.ScanVirusError : null;
        this.ScanVulError = 'ScanVulError' in params ? params.ScanVulError : null;
        this.ScanRiskError = 'ScanRiskError' in params ? params.ScanRiskError : null;
        this.IsSuggest = 'IsSuggest' in params ? params.IsSuggest : null;
        this.IsAuthorized = 'IsAuthorized' in params ? params.IsAuthorized : null;
        this.ComponentCnt = 'ComponentCnt' in params ? params.ComponentCnt : null;

    }
}

/**
 * ModifyVirusAutoIsolateExampleSwitch request structure.
 * @class
 */
class ModifyVirusAutoIsolateExampleSwitchRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * MD5 checksum of the file
         * @type {string || null}
         */
        this.MD5 = null;

        /**
         * Switch. Valid values: `true` (on); `false` (off).
         * @type {boolean || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MD5 = 'MD5' in params ? params.MD5 : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * Information of a virus in the image
 * @class
 */
class ImageVirus extends  AbstractModel {
    constructor(){
        super();

        /**
         * Path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Path = null;

        /**
         * Risk level
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Category
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Category = null;

        /**
         * Virus name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VirusName = null;

        /**
         * Tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * Description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Desc = null;

        /**
         * Solution
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * File type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FileType = null;

        /**
         * File path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FileName = null;

        /**
         * MD5 checksum of the file
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FileMd5 = null;

        /**
         * Size
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.FileSize = null;

        /**
         * First discovery time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FirstScanTime = null;

        /**
         * Last scan time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LatestScanTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Path = 'Path' in params ? params.Path : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.Category = 'Category' in params ? params.Category : null;
        this.VirusName = 'VirusName' in params ? params.VirusName : null;
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.Desc = 'Desc' in params ? params.Desc : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.FileType = 'FileType' in params ? params.FileType : null;
        this.FileName = 'FileName' in params ? params.FileName : null;
        this.FileMd5 = 'FileMd5' in params ? params.FileMd5 : null;
        this.FileSize = 'FileSize' in params ? params.FileSize : null;
        this.FirstScanTime = 'FirstScanTime' in params ? params.FirstScanTime : null;
        this.LatestScanTime = 'LatestScanTime' in params ? params.LatestScanTime : null;

    }
}

/**
 * ModifySecLogDeliveryKafkaSetting request structure.
 * @class
 */
class ModifySecLogDeliveryKafkaSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Instance ID
         * @type {string || null}
         */
        this.InstanceID = null;

        /**
         * Instance name
         * @type {string || null}
         */
        this.InstanceName = null;

        /**
         * Domain
         * @type {string || null}
         */
        this.Domain = null;

        /**
         * Username
         * @type {string || null}
         */
        this.User = null;

        /**
         * Password
         * @type {string || null}
         */
        this.Password = null;

        /**
         * List of log types
         * @type {Array.<SecLogDeliveryKafkaSettingInfo> || null}
         */
        this.LogTypeList = null;

        /**
         * Access type
         * @type {number || null}
         */
        this.AccessType = null;

        /**
         * Kafka version number
         * @type {string || null}
         */
        this.KafkaVersion = null;

        /**
         * Region ID
         * @type {string || null}
         */
        this.RegionID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.InstanceID = 'InstanceID' in params ? params.InstanceID : null;
        this.InstanceName = 'InstanceName' in params ? params.InstanceName : null;
        this.Domain = 'Domain' in params ? params.Domain : null;
        this.User = 'User' in params ? params.User : null;
        this.Password = 'Password' in params ? params.Password : null;

        if (params.LogTypeList) {
            this.LogTypeList = new Array();
            for (let z in params.LogTypeList) {
                let obj = new SecLogDeliveryKafkaSettingInfo();
                obj.deserialize(params.LogTypeList[z]);
                this.LogTypeList.push(obj);
            }
        }
        this.AccessType = 'AccessType' in params ? params.AccessType : null;
        this.KafkaVersion = 'KafkaVersion' in params ? params.KafkaVersion : null;
        this.RegionID = 'RegionID' in params ? params.RegionID : null;

    }
}

/**
 * DescribeReverseShellEventsExport request structure.
 * @class
 */
class DescribeReverseShellEventsExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * ModifyK8sApiAbnormalEventStatus request structure.
 * @class
 */
class ModifyK8sApiAbnormalEventStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event ID set
         * @type {Array.<number> || null}
         */
        this.EventIDSet = null;

        /**
         * Status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIDSet = 'EventIDSet' in params ? params.EventIDSet : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

    }
}

/**
 * ModifySecLogJoinObjects request structure.
 * @class
 */
class ModifySecLogJoinObjectsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Log type
Container bash: container_bash
Container startup: container_launch
K8s API: k8s_api
         * @type {string || null}
         */
        this.LogType = null;

        /**
         * List of QUuids of bound servers
         * @type {Array.<string> || null}
         */
        this.BindList = null;

        /**
         * List of QUuids of servers to be unbound
         * @type {Array.<string> || null}
         */
        this.UnBindList = null;

        /**
         * Node type.
`NORMAL`: General node (default)
`SUPER`: Super node

         * @type {string || null}
         */
        this.NodeType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LogType = 'LogType' in params ? params.LogType : null;
        this.BindList = 'BindList' in params ? params.BindList : null;
        this.UnBindList = 'UnBindList' in params ? params.UnBindList : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;

    }
}

/**
 * DescribeK8sApiAbnormalRuleList request structure.
 * @class
 */
class DescribeK8sApiAbnormalRuleListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filters.
<li>`RuleType` - String - Optional - Rule type</li>
<li>`Status` - String - Optional - Status</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * The number of results returned. Default value: 10. Maximum value: 100.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: 0
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sort order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field.
<li>`UpdateTime` - String - Optional - Last updated</li>
<li>`EffectClusterCount` - String - Optional - Number of clusters affected</li>
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeAccessControlDetail response structure.
 * @class
 */
class DescribeAccessControlDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Basic information of the event
         * @type {RunTimeEventBaseInfo || null}
         */
        this.EventBaseInfo = null;

        /**
         * Process information
         * @type {ProcessDetailInfo || null}
         */
        this.ProcessInfo = null;

        /**
         * Information tampered with
         * @type {FileAttributeInfo || null}
         */
        this.TamperedFileInfo = null;

        /**
         * Event description
         * @type {AccessControlEventDescription || null}
         */
        this.EventDetail = null;

        /**
         * Parent process information
         * @type {ProcessBaseInfo || null}
         */
        this.ParentProcessInfo = null;

        /**
         * Ancestor process information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ProcessBaseInfo || null}
         */
        this.AncestorProcessInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventBaseInfo) {
            let obj = new RunTimeEventBaseInfo();
            obj.deserialize(params.EventBaseInfo)
            this.EventBaseInfo = obj;
        }

        if (params.ProcessInfo) {
            let obj = new ProcessDetailInfo();
            obj.deserialize(params.ProcessInfo)
            this.ProcessInfo = obj;
        }

        if (params.TamperedFileInfo) {
            let obj = new FileAttributeInfo();
            obj.deserialize(params.TamperedFileInfo)
            this.TamperedFileInfo = obj;
        }

        if (params.EventDetail) {
            let obj = new AccessControlEventDescription();
            obj.deserialize(params.EventDetail)
            this.EventDetail = obj;
        }

        if (params.ParentProcessInfo) {
            let obj = new ProcessBaseInfo();
            obj.deserialize(params.ParentProcessInfo)
            this.ParentProcessInfo = obj;
        }

        if (params.AncestorProcessInfo) {
            let obj = new ProcessBaseInfo();
            obj.deserialize(params.AncestorProcessInfo)
            this.AncestorProcessInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateImageExportJob response structure.
 * @class
 */
class CreateImageExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * Excel file download URL
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * The project to which the host belongs
 * @class
 */
class ProjectInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Project name
         * @type {string || null}
         */
        this.ProjectName = null;

        /**
         * Project ID
         * @type {number || null}
         */
        this.ProjectID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProjectName = 'ProjectName' in params ? params.ProjectName : null;
        this.ProjectID = 'ProjectID' in params ? params.ProjectID : null;

    }
}

/**
 * DescribeAffectedNodeList request structure.
 * @class
 */
class DescribeAffectedNodeListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique ID of the check item
         * @type {number || null}
         */
        this.CheckItemId = null;

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - String
Name. Valid values: `ClusterName`, `ClusterId`, `InstanceId`, `PrivateIpAddresses`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CheckItemId = 'CheckItemId' in params ? params.CheckItemId : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeAssetImageRegistryAssetStatus response structure.
 * @class
 */
class DescribeAssetImageRegistryAssetStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Update progress. Valid values: `doing` (updating); `success` (updated successfully); `failed` (failed to update).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Error message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Err = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Status = 'Status' in params ? params.Status : null;
        this.Err = 'Err' in params ? params.Err : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Container network information
 * @class
 */
class ContainerNetwork extends  AbstractModel {
    constructor(){
        super();

        /**
         * Endpoint ID
         * @type {string || null}
         */
        this.EndpointID = null;

        /**
         * Mode: `bridge`.
         * @type {string || null}
         */
        this.Mode = null;

        /**
         * Network name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Network ID
         * @type {string || null}
         */
        this.NetworkID = null;

        /**
         * Gateway
         * @type {string || null}
         */
        this.Gateway = null;

        /**
         * IPv4 address
         * @type {string || null}
         */
        this.Ipv4 = null;

        /**
         * IPv6 address
         * @type {string || null}
         */
        this.Ipv6 = null;

        /**
         * MAC address
         * @type {string || null}
         */
        this.MAC = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EndpointID = 'EndpointID' in params ? params.EndpointID : null;
        this.Mode = 'Mode' in params ? params.Mode : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.NetworkID = 'NetworkID' in params ? params.NetworkID : null;
        this.Gateway = 'Gateway' in params ? params.Gateway : null;
        this.Ipv4 = 'Ipv4' in params ? params.Ipv4 : null;
        this.Ipv6 = 'Ipv6' in params ? params.Ipv6 : null;
        this.MAC = 'MAC' in params ? params.MAC : null;

    }
}

/**
 * DescribeSecLogDeliveryKafkaSetting response structure.
 * @class
 */
class DescribeSecLogDeliveryKafkaSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Message queue instance ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceID = null;

        /**
         * Message queue instance name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceName = null;

        /**
         * Domain
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Domain = null;

        /**
         * List of log types
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<SecLogDeliveryKafkaSettingInfo> || null}
         */
        this.LogTypeList = null;

        /**
         * Username
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.User = null;

        /**
         * Region ID
Note: This field may return `null`, indicating that no valid value was found.
         * @type {string || null}
         */
        this.RegionID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.InstanceID = 'InstanceID' in params ? params.InstanceID : null;
        this.InstanceName = 'InstanceName' in params ? params.InstanceName : null;
        this.Domain = 'Domain' in params ? params.Domain : null;

        if (params.LogTypeList) {
            this.LogTypeList = new Array();
            for (let z in params.LogTypeList) {
                let obj = new SecLogDeliveryKafkaSettingInfo();
                obj.deserialize(params.LogTypeList[z]);
                this.LogTypeList.push(obj);
            }
        }
        this.User = 'User' in params ? params.User : null;
        this.RegionID = 'RegionID' in params ? params.RegionID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateHostExportJob request structure.
 * @class
 */
class CreateHostExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filters.
<li>`Status` - String - Optional - Agent status. Values: `ALL`; `UNINSTALL` (Not installed); `OFFLINE`, `ONLINE`. Default to `All` if it's not specified. </li>
<li>`HostName` - String - Optional - Server name</li>
<li>`Group - String - Optional - Server group</li>
<li>`HostIP` - String - Optional - Server IP</li>
<li>`HostID - String - Optional - Server ID</li>
<li>`DockerVersion` - String - Optional - Docker version</li>
<li>`MachineType` - String - Optional - Server type. Values: `ALL`; `CVM` (Cloud Virtual Machine); `ECM` (Edge Computing Machine); `LH` (Lighthouse), `BM` (Cloud Bare Metal); `Other` (non-Tencent Cloud server). Default to `ALL` if it's not specified.</li>
<li>`DockerStatus` - String - Optional - Docker installation status. Values: `ALL`; `INSTALL` (Installed); `UNINSTALL` (Not installed)</li>
<li>`ProjectID` - String - Optional - Project ID</li>
<li>`Tag:xxx(tag:key)` - String - Optional - Tag key-value pair; Example: `Filters":[{"Name":"tag:tke-kind","Values":["service"]}]`</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * The number of results to return. Default value: 10. Maximum value: 10,000.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * AddEditRiskSyscallWhiteList response structure.
 * @class
 */
class AddEditRiskSyscallWhiteListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVirusAutoIsolateSampleDownloadURL request structure.
 * @class
 */
class DescribeVirusAutoIsolateSampleDownloadURLRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * MD5 checksum of the sample
         * @type {string || null}
         */
        this.MD5 = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MD5 = 'MD5' in params ? params.MD5 : null;

    }
}

/**
 * ModifyAbnormalProcessStatus request structure.
 * @class
 */
class ModifyAbnormalProcessStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of event IDs
         * @type {Array.<string> || null}
         */
        this.EventIdSet = null;

        /**
         * Event status   
    `EVENT_DEALED`: Processed.
    `EVENT_INGNORE`: Ignored.
     `EVENT_DEL`: Deleted.
     `EVENT_ADD_WHITE`: Allowed.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Event remarks
         * @type {string || null}
         */
        this.Remark = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventIdSet = 'EventIdSet' in params ? params.EventIdSet : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

    }
}

/**
 * DescribeVulDetail request structure.
 * @class
 */
class DescribeVulDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;

    }
}

/**
 * CreateEscapeWhiteListExportJob request structure.
 * @class
 */
class CreateEscapeWhiteListExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>EventType- String - Required: No - Allowed event type. Valid values: `ESCAPE_CGROUPS` (cgroup escape); `ESCAPE_TAMPER_SENSITIVE_FILE` (file tamper escape); `ESCAPE_DOCKER_API` (Docker API access escape); `ESCAPE_VUL_OCCURRED` (vulnerability exploit); `MOUNT_SENSITIVE_PTAH` (sensitive path mount); `PRIVILEGE_CONTAINER_START` (privileged container); `PRIVILEGE` (program privilege escalation escape).</li>
<li>ImageName- string - Required: No - Image name</li>
<li>ImageID- string - Required: No - Image ID</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10000`. Maximum value: `10000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field. Valid values: `HostCount` (number of servers); `ContainerCount` (number of containers); `UpdateTime` (update time).
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeSecLogJoinObjectList request structure.
 * @class
 */
class DescribeSecLogJoinObjectListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Log type
Container bash: "container_bash",
Container startup: "container_launch",
K8s API: "k8s_api"
         * @type {string || null}
         */
        this.LogType = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filters.
<li>`Status` - String - Optional - Host status</li>
<li>`HostIP` - String - Optional - Private IP of the host</li>
<li>`PublicIP` - String - Optional - Public IP of the host</li>
<li>`HostName - String - Optional - Host name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LogType = 'LogType' in params ? params.LogType : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * Information of a high-risk behavior in the image
 * @class
 */
class ImageRisk extends  AbstractModel {
    constructor(){
        super();

        /**
         * High-risk behavior
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Behavior = null;

        /**
         * Type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Type = null;

        /**
         * Risk level
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Level = null;

        /**
         * Description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Desc = null;

        /**
         * Solution
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstructionContent = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Behavior = 'Behavior' in params ? params.Behavior : null;
        this.Type = 'Type' in params ? params.Type : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.Desc = 'Desc' in params ? params.Desc : null;
        this.InstructionContent = 'InstructionContent' in params ? params.InstructionContent : null;

    }
}

/**
 * DescribeClusterDetail response structure.
 * @class
 */
class DescribeClusterDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Progress of the current cluster scan task. `100` indicates that the scan is completed.
         * @type {number || null}
         */
        this.ScanTaskProgress = null;

        /**
         * Cluster version
         * @type {string || null}
         */
        this.ClusterVersion = null;

        /**
         * Runtime component
         * @type {string || null}
         */
        this.ContainerRuntime = null;

        /**
         * Number of nodes in the cluster
         * @type {number || null}
         */
        this.ClusterNodeNum = null;

        /**
         * Cluster status. Valid values: `Running`, `Creating`, `Abnormal`.
         * @type {string || null}
         */
        this.ClusterStatus = null;

        /**
         * Cluster type. Valid values: `MANAGED_CLUSTER` (managed cluster); `INDEPENDENT_CLUSTER` (self-deployed cluster).
         * @type {string || null}
         */
        this.ClusterType = null;

        /**
         * Cluster region
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Number of critical check items
         * @type {number || null}
         */
        this.SeriousRiskCount = null;

        /**
         * Number of high-risk check items
         * @type {number || null}
         */
        this.HighRiskCount = null;

        /**
         * Number of medium-risk check items
         * @type {number || null}
         */
        this.MiddleRiskCount = null;

        /**
         * Number of prompt-risk check items
         * @type {number || null}
         */
        this.HintRiskCount = null;

        /**
         * Status of the check task
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Status of the defender
         * @type {string || null}
         */
        this.DefenderStatus = null;

        /**
         * Creation time of the scan task
         * @type {string || null}
         */
        this.TaskCreateTime = null;

        /**
         * Network type. Valid values: `PublicNetwork` (public network); `VPCNetwork` (VPC).
         * @type {string || null}
         */
        this.NetworkType = null;

        /**
         * API server address
         * @type {string || null}
         */
        this.ApiServerAddress = null;

        /**
         * Number of nodes
         * @type {number || null}
         */
        this.NodeCount = null;

        /**
         * Number of namespaces
         * @type {number || null}
         */
        this.NamespaceCount = null;

        /**
         * Number of workloads
         * @type {number || null}
         */
        this.WorkloadCount = null;

        /**
         * Number of Pods
         * @type {number || null}
         */
        this.PodCount = null;

        /**
         * Number of Services
         * @type {number || null}
         */
        this.ServiceCount = null;

        /**
         * Number of Ingresses
         * @type {number || null}
         */
        this.IngressCount = null;

        /**
         * IPs of the primary nodes
         * @type {string || null}
         */
        this.MasterIps = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.ScanTaskProgress = 'ScanTaskProgress' in params ? params.ScanTaskProgress : null;
        this.ClusterVersion = 'ClusterVersion' in params ? params.ClusterVersion : null;
        this.ContainerRuntime = 'ContainerRuntime' in params ? params.ContainerRuntime : null;
        this.ClusterNodeNum = 'ClusterNodeNum' in params ? params.ClusterNodeNum : null;
        this.ClusterStatus = 'ClusterStatus' in params ? params.ClusterStatus : null;
        this.ClusterType = 'ClusterType' in params ? params.ClusterType : null;
        this.Region = 'Region' in params ? params.Region : null;
        this.SeriousRiskCount = 'SeriousRiskCount' in params ? params.SeriousRiskCount : null;
        this.HighRiskCount = 'HighRiskCount' in params ? params.HighRiskCount : null;
        this.MiddleRiskCount = 'MiddleRiskCount' in params ? params.MiddleRiskCount : null;
        this.HintRiskCount = 'HintRiskCount' in params ? params.HintRiskCount : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.DefenderStatus = 'DefenderStatus' in params ? params.DefenderStatus : null;
        this.TaskCreateTime = 'TaskCreateTime' in params ? params.TaskCreateTime : null;
        this.NetworkType = 'NetworkType' in params ? params.NetworkType : null;
        this.ApiServerAddress = 'ApiServerAddress' in params ? params.ApiServerAddress : null;
        this.NodeCount = 'NodeCount' in params ? params.NodeCount : null;
        this.NamespaceCount = 'NamespaceCount' in params ? params.NamespaceCount : null;
        this.WorkloadCount = 'WorkloadCount' in params ? params.WorkloadCount : null;
        this.PodCount = 'PodCount' in params ? params.PodCount : null;
        this.ServiceCount = 'ServiceCount' in params ? params.ServiceCount : null;
        this.IngressCount = 'IngressCount' in params ? params.IngressCount : null;
        this.MasterIps = 'MasterIps' in params ? params.MasterIps : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of a check item
 * @class
 */
class ComplianceAssetPolicyItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique ID of the customer check item
         * @type {number || null}
         */
        this.CustomerPolicyItemId = null;

        /**
         * Original ID of the check item
         * @type {number || null}
         */
        this.BasePolicyItemId = null;

        /**
         * Check item name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Category of the check item
         * @type {string || null}
         */
        this.Category = null;

        /**
         * Compliance standard ID
         * @type {number || null}
         */
        this.BenchmarkStandardId = null;

        /**
         * Compliance standard name
         * @type {string || null}
         */
        this.BenchmarkStandardName = null;

        /**
         * Severity
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Check status
`CHECK_INIT`: To be checked.
`CHECK_RUNNING`: Checking.
`CHECK_FINISHED`: Checked.
`CHECK_FAILED`: Check failed.
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Check result
`RESULT_PASSED`: Passed.
`RESULT_FAILED`: Failed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CheckResult = null;

        /**
         * Allowed item ID of the check item. If it exists and is not `0`, the check item is ignored.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.WhitelistId = null;

        /**
         * Handling suggestion
         * @type {string || null}
         */
        this.FixSuggestion = null;

        /**
         * Last check time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LastCheckTime = null;

        /**
         * Verification information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VerifyInfo = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemId = 'CustomerPolicyItemId' in params ? params.CustomerPolicyItemId : null;
        this.BasePolicyItemId = 'BasePolicyItemId' in params ? params.BasePolicyItemId : null;
        this.Name = 'Name' in params ? params.Name : null;
        this.Category = 'Category' in params ? params.Category : null;
        this.BenchmarkStandardId = 'BenchmarkStandardId' in params ? params.BenchmarkStandardId : null;
        this.BenchmarkStandardName = 'BenchmarkStandardName' in params ? params.BenchmarkStandardName : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.CheckResult = 'CheckResult' in params ? params.CheckResult : null;
        this.WhitelistId = 'WhitelistId' in params ? params.WhitelistId : null;
        this.FixSuggestion = 'FixSuggestion' in params ? params.FixSuggestion : null;
        this.LastCheckTime = 'LastCheckTime' in params ? params.LastCheckTime : null;
        this.VerifyInfo = 'VerifyInfo' in params ? params.VerifyInfo : null;

    }
}

/**
 * InitializeUserComplianceEnvironment request structure.
 * @class
 */
class InitializeUserComplianceEnvironmentRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeSupportDefenceVul response structure.
 * @class
 */
class DescribeSupportDefenceVulResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of vulnerabilities that can be prevented
         * @type {Array.<SupportDefenceVul> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new SupportDefenceVul();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRiskList request structure.
 * @class
 */
class DescribeAssetImageRiskListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Risk level. Valid values: `1`, `2`, `3`, `4`.</li>
<li>Behavior - String - Required: No - Risky behavior. Valid values: `1`, `2`, `3`, `4`.</li>
<li>Type - String - Required: No - Risk type. Valid values: `1`, `2`.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeEscapeSafeState request structure.
 * @class
 */
class DescribeEscapeSafeStateRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeVirusManualScanEstimateTimeout request structure.
 * @class
 */
class DescribeVirusManualScanEstimateTimeoutRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Scanning scope. Valid values: `0` (container); `1` (server).
         * @type {number || null}
         */
        this.ScanRangeType = null;

        /**
         * Valid values: `true` (all); `false` (specified).
         * @type {boolean || null}
         */
        this.ScanRangeAll = null;

        /**
         * ID of the specified container or server to be scanned, which is based on `ScanRangeType`.
         * @type {Array.<string> || null}
         */
        this.ScanIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ScanRangeType = 'ScanRangeType' in params ? params.ScanRangeType : null;
        this.ScanRangeAll = 'ScanRangeAll' in params ? params.ScanRangeAll : null;
        this.ScanIds = 'ScanIds' in params ? params.ScanIds : null;

    }
}

/**
 * CreateVulScanTask response structure.
 * @class
 */
class CreateVulScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the task to scan local images again for vulnerabilities
         * @type {number || null}
         */
        this.LocalTaskID = null;

        /**
         * ID of the task to scan repository images again for vulnerabilities
         * @type {number || null}
         */
        this.RegistryTaskID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LocalTaskID = 'LocalTaskID' in params ? params.LocalTaskID : null;
        this.RegistryTaskID = 'RegistryTaskID' in params ? params.RegistryTaskID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeTcssSummary request structure.
 * @class
 */
class DescribeTcssSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * ModifyContainerNetStatus response structure.
 * @class
 */
class ModifyContainerNetStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeEscapeEventDetail request structure.
 * @class
 */
class DescribeEscapeEventDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique event ID
         * @type {string || null}
         */
        this.EventId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

    }
}

/**
 * DescribeSupportDefenceVul request structure.
 * @class
 */
class DescribeSupportDefenceVulRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>Level- String - Required: No - Severity. Valid values: `CRITICAL` (critical); `HIGH` (high); `MIDDLE` (medium); `LOW` (low).</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>Name- string - Required: No - Vulnerability name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field. Disclosure time: `SubmitTime`.
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DeleteCompliancePolicyAssetSetFromWhitelist request structure.
 * @class
 */
class DeleteCompliancePolicyAssetSetFromWhitelistRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of check item IDs and asset IDs
         * @type {Array.<CompliancePolicyAssetSetItem> || null}
         */
        this.PolicyAssetSetList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.PolicyAssetSetList) {
            this.PolicyAssetSetList = new Array();
            for (let z in params.PolicyAssetSetList) {
                let obj = new CompliancePolicyAssetSetItem();
                obj.deserialize(params.PolicyAssetSetList[z]);
                this.PolicyAssetSetList.push(obj);
            }
        }

    }
}

/**
 * DescribeExportJobManageList request structure.
 * @class
 */
class DescribeExportJobManageListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filters.
<li>ExportStatus- String - Optional - Export status. Value: `RUNNING` (Exporting); `SUCCESS` (Exported); `FAILURE` (Failed to export)
<li>ExportSource- String - Optional - Source of the exportation task. Values: `LocalImage` (Local image).
</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Offset. Default value: 0
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * The number of results returned. Default value: 10. Maximum value: 100.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Sort order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
InsertTime: Creation time
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeVirusSummary request structure.
 * @class
 */
class DescribeVirusSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeNetworkFirewallPolicyYamlDetail request structure.
 * @class
 */
class DescribeNetworkFirewallPolicyYamlDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Policy ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * ModifySecLogJoinState request structure.
 * @class
 */
class ModifySecLogJoinStateRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Log type
Container bash: container_bash
Container startup: container_launch
K8s API: k8s_api
         * @type {string || null}
         */
        this.LogType = null;

        /**
         * Status. Valid values: `true` (enabled); `false` (disabled).
         * @type {boolean || null}
         */
        this.State = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LogType = 'LogType' in params ? params.LogType : null;
        this.State = 'State' in params ? params.State : null;

    }
}

/**
 * Canary project configuration
 * @class
 */
class ABTestConfig extends  AbstractModel {
    constructor(){
        super();

        /**
         * Canary project name
         * @type {string || null}
         */
        this.ProjectName = null;

        /**
         * Valid values: `true` (in canary upgrade); `false` (not in canary upgrade).
         * @type {boolean || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProjectName = 'ProjectName' in params ? params.ProjectName : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * Information of the allowlist of high-risk syscalls
 * @class
 */
class RiskSyscallWhiteListBaseInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Allowed item ID
         * @type {string || null}
         */
        this.Id = null;

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageCount = null;

        /**
         * Connection process path
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * List of syscall names
         * @type {Array.<string> || null}
         */
        this.SyscallNames = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Whether it is allowed globally. `true`: Yes.
         * @type {boolean || null}
         */
        this.IsGlobal = null;

        /**
         * Array of image IDs
         * @type {Array.<string> || null}
         */
        this.ImageIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Id = 'Id' in params ? params.Id : null;
        this.ImageCount = 'ImageCount' in params ? params.ImageCount : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.SyscallNames = 'SyscallNames' in params ? params.SyscallNames : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.IsGlobal = 'IsGlobal' in params ? params.IsGlobal : null;
        this.ImageIds = 'ImageIds' in params ? params.ImageIds : null;

    }
}

/**
 * DeleteAbnormalProcessRules request structure.
 * @class
 */
class DeleteAbnormalProcessRulesRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Policy IDs
         * @type {Array.<string> || null}
         */
        this.RuleIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleIdSet = 'RuleIdSet' in params ? params.RuleIdSet : null;

    }
}

/**
 * CreateNetworkFirewallClusterRefresh request structure.
 * @class
 */
class CreateNetworkFirewallClusterRefreshRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * ModifyCompliancePeriodTask request structure.
 * @class
 */
class ModifyCompliancePeriodTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the scheduled task to be modified, which is returned by the `DescribeCompliancePeriodTaskList` API.
         * @type {number || null}
         */
        this.PeriodTaskId = null;

        /**
         * Cycle rule of the scheduled task, which indicates no modification if the field is not specified.
         * @type {CompliancePeriodTaskRule || null}
         */
        this.PeriodRule = null;

        /**
         * Compliance standard, which indicates no modification if the field is not specified.
         * @type {Array.<ComplianceBenchmarkStandardEnable> || null}
         */
        this.StandardSettings = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PeriodTaskId = 'PeriodTaskId' in params ? params.PeriodTaskId : null;

        if (params.PeriodRule) {
            let obj = new CompliancePeriodTaskRule();
            obj.deserialize(params.PeriodRule)
            this.PeriodRule = obj;
        }

        if (params.StandardSettings) {
            this.StandardSettings = new Array();
            for (let z in params.StandardSettings) {
                let obj = new ComplianceBenchmarkStandardEnable();
                obj.deserialize(params.StandardSettings[z]);
                this.StandardSettings.push(obj);
            }
        }

    }
}

/**
 * DescribeRiskSyscallEvents request structure.
 * @class
 */
class DescribeRiskSyscallEventsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeRiskList response structure.
 * @class
 */
class DescribeRiskListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Array of risk details
         * @type {Array.<ClusterRiskItem> || null}
         */
        this.ClusterRiskItems = null;

        /**
         * Total number of risk items
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.ClusterRiskItems) {
            this.ClusterRiskItems = new Array();
            for (let z in params.ClusterRiskItems) {
                let obj = new ClusterRiskItem();
                obj.deserialize(params.ClusterRiskItems[z]);
                this.ClusterRiskItems.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAsset request structure.
 * @class
 */
class ModifyAssetRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Sync all
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * List of servers to be synced. Either this parameter or `All` (preferred) must be selected.
         * @type {Array.<string> || null}
         */
        this.Hosts = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.All = 'All' in params ? params.All : null;
        this.Hosts = 'Hosts' in params ? params.Hosts : null;

    }
}

/**
 * Region information
 * @class
 */
class RegionInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Region identifier
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Region name
         * @type {string || null}
         */
        this.RegionName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Region = 'Region' in params ? params.Region : null;
        this.RegionName = 'RegionName' in params ? params.RegionName : null;

    }
}

/**
 * DescribeEscapeWhiteList request structure.
 * @class
 */
class DescribeEscapeWhiteListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>EventType- String - Required: No - Allowed event type. Valid values: `ESCAPE_CGROUPS` (cgroup escape); `ESCAPE_TAMPER_SENSITIVE_FILE` (file tamper escape); `ESCAPE_DOCKER_API` (Docker API access escape); `ESCAPE_VUL_OCCURRED` (vulnerability exploit); `MOUNT_SENSITIVE_PTAH` (sensitive path mount); `PRIVILEGE_CONTAINER_START` (privileged container); `PRIVILEGE` (program privilege escalation escape).</li>
<li>ImageName- string - Required: No - Image name</li>
<li>ImageID- string - Required: No - Image ID</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field. Valid values: `HostCount` (number of servers); `ContainerCount` (number of containers); `UpdateTime` (update time).
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeNetworkFirewallPolicyList request structure.
 * @class
 */
class DescribeNetworkFirewallPolicyListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - String
Name. Valid values: `ClusterName`, `ClusterId`, `ClusterType`, `Region`, `ClusterCheckMode`, `ClusterAutoCheck`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * Container component information
 * @class
 */
class ComponentInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Version
         * @type {string || null}
         */
        this.Version = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Version = 'Version' in params ? params.Version : null;

    }
}

/**
 * ConfirmNetworkFirewallPolicy response structure.
 * @class
 */
class ConfirmNetworkFirewallPolicyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the confirmation task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateNetworkFirewallPublish response structure.
 * @class
 */
class CreateNetworkFirewallPublishResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetSummary request structure.
 * @class
 */
class DescribeAssetSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * CreateClusterCheckTask request structure.
 * @class
 */
class CreateClusterCheckTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Information of the specified cluster to be scanned
         * @type {Array.<ClusterCheckTaskItem> || null}
         */
        this.ClusterCheckTaskList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.ClusterCheckTaskList) {
            this.ClusterCheckTaskList = new Array();
            for (let z in params.ClusterCheckTaskList) {
                let obj = new ClusterCheckTaskItem();
                obj.deserialize(params.ClusterCheckTaskList[z]);
                this.ClusterCheckTaskList.push(obj);
            }
        }

    }
}

/**
 * RASP information of vulnerability defense plugin
 * @class
 */
class RaspInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * RASP name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * RASP description
         * @type {string || null}
         */
        this.Value = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Value = 'Value' in params ? params.Value : null;

    }
}

/**
 * DescribeNetworkFirewallClusterList request structure.
 * @class
 */
class DescribeNetworkFirewallClusterListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - String
Name. Valid values: `ClusterName`, `ClusterId`, `ClusterType`, `Region`, `ClusterCheckMode`, `ClusterAutoCheck`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeVulRegistryImageList response structure.
 * @class
 */
class DescribeVulRegistryImageListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of images
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * 
         * @type {Array.<VulAffectedRegistryImageInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulAffectedRegistryImageInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateVulDefenceEventExportJob response structure.
 * @class
 */
class CreateVulDefenceEventExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of servers licensed based on the automatic image licensing rule
 * @class
 */
class AutoAuthorizedRuleHostInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Server IP, which is the private IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Server name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageCnt = null;

        /**
         * Number of containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIp = null;

        /**
         * Server instance ID
         * @type {string || null}
         */
        this.InstanceID = null;

        /**
         * Server source. Valid values: `CVM`, `ECM`, `LH`, `BM`, `Other`. The first four values indicate Tencent Cloud instances, while the last one indicates non-Tencent Cloud instances.
         * @type {string || null}
         */
        this.MachineType = null;

        /**
         * Docker version
         * @type {string || null}
         */
        this.DockerVersion = null;

        /**
         * Agent status
         * @type {string || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.ImageCnt = 'ImageCnt' in params ? params.ImageCnt : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.PublicIp = 'PublicIp' in params ? params.PublicIp : null;
        this.InstanceID = 'InstanceID' in params ? params.InstanceID : null;
        this.MachineType = 'MachineType' in params ? params.MachineType : null;
        this.DockerVersion = 'DockerVersion' in params ? params.DockerVersion : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * CreateExportComplianceStatusListJob request structure.
 * @class
 */
class CreateExportComplianceStatusListJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Asset type of the information to be exported
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Export by check item or asset. Valid values: `true` (export by asset); `false` (export by check item).
         * @type {boolean || null}
         */
        this.ExportByAsset = null;

        /**
         * Valid values: `true` (export all); `false` (export based on the `IdList`).
         * @type {boolean || null}
         */
        this.ExportAll = null;

        /**
         * List of IDs of assets or check items to be exported, which is determined by the value of `ExportByAsset`.
         * @type {Array.<number> || null}
         */
        this.IdList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.ExportByAsset = 'ExportByAsset' in params ? params.ExportByAsset : null;
        this.ExportAll = 'ExportAll' in params ? params.ExportAll : null;
        this.IdList = 'IdList' in params ? params.IdList : null;

    }
}

/**
 * DescribeImageAutoAuthorizedTaskList request structure.
 * @class
 */
class DescribeImageAutoAuthorizedTaskListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * End time
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Filter field
`Status` (licensing result). Valid values: `ALLSUCCSESS` (licensing succeeded); `PARTIALFAIL` (failed to license some images); `ALLFAIL` (failed to license all images).
Licensing method. Valid values: `AUTO` (automatic licensing); `MANUAL` (manual licensing).
Image source. Valid values: `LOCAL` (local image); `REGISTRY` (repository image).
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

    }
}

/**
 * DescribeVirusSampleDownloadUrl request structure.
 * @class
 */
class DescribeVirusSampleDownloadUrlRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trojan ID
         * @type {string || null}
         */
        this.ID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ID = 'ID' in params ? params.ID : null;

    }
}

/**
 * AddAndPublishNetworkFirewallPolicyYamlDetail response structure.
 * @class
 */
class AddAndPublishNetworkFirewallPolicyYamlDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddAndPublishNetworkFirewallPolicyDetail request structure.
 * @class
 */
class AddAndPublishNetworkFirewallPolicyDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.PolicyName = null;

        /**
         * Inbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.FromPolicyRule = null;

        /**
         * Outbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.ToPolicyRule = null;

        /**
         * Pod selector
         * @type {string || null}
         */
        this.PodSelector = null;

        /**
         * Namespace
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Custom rule
         * @type {Array.<NetworkCustomPolicy> || null}
         */
        this.CustomPolicy = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.PolicyName = 'PolicyName' in params ? params.PolicyName : null;
        this.FromPolicyRule = 'FromPolicyRule' in params ? params.FromPolicyRule : null;
        this.ToPolicyRule = 'ToPolicyRule' in params ? params.ToPolicyRule : null;
        this.PodSelector = 'PodSelector' in params ? params.PodSelector : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.Description = 'Description' in params ? params.Description : null;

        if (params.CustomPolicy) {
            this.CustomPolicy = new Array();
            for (let z in params.CustomPolicy) {
                let obj = new NetworkCustomPolicy();
                obj.deserialize(params.CustomPolicy[z]);
                this.CustomPolicy.push(obj);
            }
        }

    }
}

/**
 * DescribeEscapeEventInfo request structure.
 * @class
 */
class DescribeEscapeEventInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter - status. Valid values: `EVENT_UNDEAL` (pending); `EVENT_DEALED` (processed); `EVENT_INGNORE` (ignored).
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * UpdateAndPublishNetworkFirewallPolicyYamlDetail response structure.
 * @class
 */
class UpdateAndPublishNetworkFirewallPolicyYamlDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeExportJobManageList response structure.
 * @class
 */
class DescribeExportJobManageListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total count
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Job list
         * @type {Array.<ExportJobInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ExportJobInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeRiskSyscallEventsExport response structure.
 * @class
 */
class DescribeRiskSyscallEventsExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * Task ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeUnfinishRefreshTask request structure.
 * @class
 */
class DescribeUnfinishRefreshTaskRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeAssetImageRegistryRiskInfoList request structure.
 * @class
 */
class DescribeAssetImageRegistryRiskInfoListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Vulnerability level</li>
<li>Name - String - Required: No - Vulnerability name</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Image ID
         * @type {ImageInfo || null}
         */
        this.ImageInfo = null;

        /**
         * Sorting field: `Level`.
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `+`, `-`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Image ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

        if (params.ImageInfo) {
            let obj = new ImageInfo();
            obj.deserialize(params.ImageInfo)
            this.ImageInfo = obj;
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * DescribeImageRegistryNamespaceList request structure.
 * @class
 */
class DescribeImageRegistryNamespaceListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Initial offset of the query. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be returned by the query. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Query filter. The `Name` field can be "Namespace".
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeAssetImageRegistryScanStatusOneKey request structure.
 * @class
 */
class DescribeAssetImageRegistryScanStatusOneKeyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of images for which to get the progress
         * @type {Array.<ImageInfo> || null}
         */
        this.Images = null;

        /**
         * Whether to get all images
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * List of IDs of images for which to get the progress
         * @type {Array.<number> || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Images) {
            this.Images = new Array();
            for (let z in params.Images) {
                let obj = new ImageInfo();
                obj.deserialize(params.Images[z]);
                this.Images.push(obj);
            }
        }
        this.All = 'All' in params ? params.All : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * ModifyAccessControlRuleStatus request structure.
 * @class
 */
class ModifyAccessControlRuleStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Policy IDs
         * @type {Array.<string> || null}
         */
        this.RuleIdSet = null;

        /**
         * Policy switch. Valid values: `true` (on); `false` (off).
         * @type {boolean || null}
         */
        this.IsEnable = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleIdSet = 'RuleIdSet' in params ? params.RuleIdSet : null;
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;

    }
}

/**
 * DescribeVulScanAuthorizedImageSummary request structure.
 * @class
 */
class DescribeVulScanAuthorizedImageSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeWarningRules request structure.
 * @class
 */
class DescribeWarningRulesRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * Runtime trend information
 * @class
 */
class RunTimeTendencyInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * The time of the day
         * @type {string || null}
         */
        this.CurTime = null;

        /**
         * Current quantity
         * @type {number || null}
         */
        this.Cnt = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CurTime = 'CurTime' in params ? params.CurTime : null;
        this.Cnt = 'Cnt' in params ? params.Cnt : null;

    }
}

/**
 * DescribeContainerAssetSummary request structure.
 * @class
 */
class DescribeContainerAssetSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * CKafka route details
 * @class
 */
class CkafkaRouteInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Route ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RouteID = null;

        /**
         * Domain name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Domain = null;

        /**
         * Domain port
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DomainPort = null;

        /**
         * VIP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Vip = null;

        /**
         * VIP type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VipType = null;

        /**
         * Access type
// `0`: PLAINTEXT (plaintext method, which does not carry user information and is supported for legacy versions and Community Edition)
	// `1`: SASL_PLAINTEXT (plaintext method, which authenticates the login through SASL before data start and is supported only for Community Edition)
	// `2`: SSL (SSL-encrypted communication, which does not carry user information and is supported for legacy versions and Community Edition)
	// `3`: SASL_SSL (SSL-encrypted communication, which authenticates the login through SASL before data start and is supported only for Community Edition)
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AccessType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RouteID = 'RouteID' in params ? params.RouteID : null;
        this.Domain = 'Domain' in params ? params.Domain : null;
        this.DomainPort = 'DomainPort' in params ? params.DomainPort : null;
        this.Vip = 'Vip' in params ? params.Vip : null;
        this.VipType = 'VipType' in params ? params.VipType : null;
        this.AccessType = 'AccessType' in params ? params.AccessType : null;

    }
}

/**
 * Component information
 * @class
 */
class ComponentsInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Component name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Component = null;

        /**
         * Component version information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Version = null;

        /**
         * Fixed version
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FixedVersion = null;

        /**
         * Path
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Path = null;

        /**
         * Type
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Add-on name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Name = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Component = 'Component' in params ? params.Component : null;
        this.Version = 'Version' in params ? params.Version : null;
        this.FixedVersion = 'FixedVersion' in params ? params.FixedVersion : null;
        this.Path = 'Path' in params ? params.Path : null;
        this.Type = 'Type' in params ? params.Type : null;
        this.Name = 'Name' in params ? params.Name : null;

    }
}

/**
 * DescribeImageAutoAuthorizedLogList response structure.
 * @class
 */
class DescribeImageAutoAuthorizedLogListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of automatically licensed images
         * @type {Array.<AutoAuthorizedImageInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new AutoAuthorizedImageInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteComplianceAssetPolicySetFromWhitelist request structure.
 * @class
 */
class DeleteComplianceAssetPolicySetFromWhitelistRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Asset ID
         * @type {number || null}
         */
        this.AssetItemId = null;

        /**
         * List of IDs of check items to be ignored in the specified asset
         * @type {Array.<number> || null}
         */
        this.CustomerPolicyItemIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetItemId = 'AssetItemId' in params ? params.AssetItemId : null;
        this.CustomerPolicyItemIdSet = 'CustomerPolicyItemIdSet' in params ? params.CustomerPolicyItemIdSet : null;

    }
}

/**
 * DeleteRiskSyscallWhiteLists response structure.
 * @class
 */
class DeleteRiskSyscallWhiteListsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageVirusList request structure.
 * @class
 */
class DescribeAssetImageVirusListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Name- String - Required: No - Image name</li>
<li>RiskLevel - String - Required: No - Risk level. Valid values: `1`, `2`, `3`, `4`.</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeAssetImageScanSetting response structure.
 * @class
 */
class DescribeAssetImageScanSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Switch
         * @type {boolean || null}
         */
        this.Enable = null;

        /**
         * Scan time, which is a complete time and parsed as hour/minute/second in time zone 0 on the backend.
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Scan interval
         * @type {number || null}
         */
        this.ScanPeriod = null;

        /**
         * Trojan scan
         * @type {boolean || null}
         */
        this.ScanVirus = null;

        /**
         * Sensitive data scan
         * @type {boolean || null}
         */
        this.ScanRisk = null;

        /**
         * Vulnerability scan
         * @type {boolean || null}
         */
        this.ScanVul = null;

        /**
         * Scan of all images
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * Scan of specified images
         * @type {Array.<string> || null}
         */
        this.Images = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Enable = 'Enable' in params ? params.Enable : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.ScanPeriod = 'ScanPeriod' in params ? params.ScanPeriod : null;
        this.ScanVirus = 'ScanVirus' in params ? params.ScanVirus : null;
        this.ScanRisk = 'ScanRisk' in params ? params.ScanRisk : null;
        this.ScanVul = 'ScanVul' in params ? params.ScanVul : null;
        this.All = 'All' in params ? params.All : null;
        this.Images = 'Images' in params ? params.Images : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeReverseShellDetail response structure.
 * @class
 */
class DescribeReverseShellDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Basic information of the event
         * @type {RunTimeEventBaseInfo || null}
         */
        this.EventBaseInfo = null;

        /**
         * Process information
         * @type {ProcessDetailInfo || null}
         */
        this.ProcessInfo = null;

        /**
         * Parent process information
         * @type {ProcessDetailBaseInfo || null}
         */
        this.ParentProcessInfo = null;

        /**
         * Event description
         * @type {ReverseShellEventDescription || null}
         */
        this.EventDetail = null;

        /**
         * Ancestor process information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ProcessBaseInfo || null}
         */
        this.AncestorProcessInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventBaseInfo) {
            let obj = new RunTimeEventBaseInfo();
            obj.deserialize(params.EventBaseInfo)
            this.EventBaseInfo = obj;
        }

        if (params.ProcessInfo) {
            let obj = new ProcessDetailInfo();
            obj.deserialize(params.ProcessInfo)
            this.ProcessInfo = obj;
        }

        if (params.ParentProcessInfo) {
            let obj = new ProcessDetailBaseInfo();
            obj.deserialize(params.ParentProcessInfo)
            this.ParentProcessInfo = obj;
        }

        if (params.EventDetail) {
            let obj = new ReverseShellEventDescription();
            obj.deserialize(params.EventDetail)
            this.EventDetail = obj;
        }

        if (params.AncestorProcessInfo) {
            let obj = new ProcessBaseInfo();
            obj.deserialize(params.AncestorProcessInfo)
            this.AncestorProcessInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeClusterSummary request structure.
 * @class
 */
class DescribeClusterSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * AddIgnoreVul request structure.
 * @class
 */
class AddIgnoreVulRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of POC IDs
         * @type {Array.<ModifyIgnoreVul> || null}
         */
        this.List = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ModifyIgnoreVul();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }

    }
}

/**
 * CreateEscapeWhiteListExportJob response structure.
 * @class
 */
class CreateEscapeWhiteListExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAccessControlRulesExport response structure.
 * @class
 */
class DescribeAccessControlRulesExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAbnormalProcessStatus response structure.
 * @class
 */
class ModifyAbnormalProcessStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAbnormalProcessEventsExport response structure.
 * @class
 */
class DescribeAbnormalProcessEventsExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Export job details
 * @class
 */
class ExportJobInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Job ID
         * @type {string || null}
         */
        this.JobID = null;

        /**
         * Job name
         * @type {string || null}
         */
        this.JobName = null;

        /**
         * Source
         * @type {string || null}
         */
        this.Source = null;

        /**
         * Export status
         * @type {string || null}
         */
        this.ExportStatus = null;

        /**
         * Export progress
         * @type {number || null}
         */
        this.ExportProgress = null;

        /**
         * Reason for failure
         * @type {string || null}
         */
        this.FailureMsg = null;

        /**
         * Timeout threshold
         * @type {string || null}
         */
        this.Timeout = null;

        /**
         * Insertion time
         * @type {string || null}
         */
        this.InsertTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobID = 'JobID' in params ? params.JobID : null;
        this.JobName = 'JobName' in params ? params.JobName : null;
        this.Source = 'Source' in params ? params.Source : null;
        this.ExportStatus = 'ExportStatus' in params ? params.ExportStatus : null;
        this.ExportProgress = 'ExportProgress' in params ? params.ExportProgress : null;
        this.FailureMsg = 'FailureMsg' in params ? params.FailureMsg : null;
        this.Timeout = 'Timeout' in params ? params.Timeout : null;
        this.InsertTime = 'InsertTime' in params ? params.InsertTime : null;

    }
}

/**
 * DescribeContainerAssetSummary response structure.
 * @class
 */
class DescribeContainerAssetSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of containers
         * @type {number || null}
         */
        this.ContainerTotalCnt = null;

        /**
         * Number of running containers
         * @type {number || null}
         */
        this.ContainerRunningCnt = null;

        /**
         * Number of suspended containers
         * @type {number || null}
         */
        this.ContainerPauseCnt = null;

        /**
         * Number of stopped containers
         * @type {number || null}
         */
        this.ContainerStopped = null;

        /**
         * Number of local images
         * @type {number || null}
         */
        this.ImageCnt = null;

        /**
         * Number of server nodes
         * @type {number || null}
         */
        this.HostCnt = null;

        /**
         * Number of running nodes on the server
         * @type {number || null}
         */
        this.HostRunningCnt = null;

        /**
         * Number of offline nodes on the server
         * @type {number || null}
         */
        this.HostOfflineCnt = null;

        /**
         * Number of image repositories
         * @type {number || null}
         */
        this.ImageRegistryCnt = null;

        /**
         * Total number of images
         * @type {number || null}
         */
        this.ImageTotalCnt = null;

        /**
         * Number of servers not installed with the agent
         * @type {number || null}
         */
        this.HostUnInstallCnt = null;

        /**
         * Number of super nodes
         * @type {number || null}
         */
        this.HostSuperNodeCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerTotalCnt = 'ContainerTotalCnt' in params ? params.ContainerTotalCnt : null;
        this.ContainerRunningCnt = 'ContainerRunningCnt' in params ? params.ContainerRunningCnt : null;
        this.ContainerPauseCnt = 'ContainerPauseCnt' in params ? params.ContainerPauseCnt : null;
        this.ContainerStopped = 'ContainerStopped' in params ? params.ContainerStopped : null;
        this.ImageCnt = 'ImageCnt' in params ? params.ImageCnt : null;
        this.HostCnt = 'HostCnt' in params ? params.HostCnt : null;
        this.HostRunningCnt = 'HostRunningCnt' in params ? params.HostRunningCnt : null;
        this.HostOfflineCnt = 'HostOfflineCnt' in params ? params.HostOfflineCnt : null;
        this.ImageRegistryCnt = 'ImageRegistryCnt' in params ? params.ImageRegistryCnt : null;
        this.ImageTotalCnt = 'ImageTotalCnt' in params ? params.ImageTotalCnt : null;
        this.HostUnInstallCnt = 'HostUnInstallCnt' in params ? params.HostUnInstallCnt : null;
        this.HostSuperNodeCnt = 'HostSuperNodeCnt' in params ? params.HostSuperNodeCnt : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateAssetImageScanTask request structure.
 * @class
 */
class CreateAssetImageScanTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to scan all images.
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * List of images to be scanned.
         * @type {Array.<string> || null}
         */
        this.Images = null;

        /**
         * Scan for vulnerabilities.
         * @type {boolean || null}
         */
        this.ScanVul = null;

        /**
         * Scan for trojans.
         * @type {boolean || null}
         */
        this.ScanVirus = null;

        /**
         * Scan for risks.
         * @type {boolean || null}
         */
        this.ScanRisk = null;

        /**
         * Filter
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Specified image IDs to be excluded
         * @type {Array.<string> || null}
         */
        this.ExcludeImageIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.All = 'All' in params ? params.All : null;
        this.Images = 'Images' in params ? params.Images : null;
        this.ScanVul = 'ScanVul' in params ? params.ScanVul : null;
        this.ScanVirus = 'ScanVirus' in params ? params.ScanVirus : null;
        this.ScanRisk = 'ScanRisk' in params ? params.ScanRisk : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.ExcludeImageIds = 'ExcludeImageIds' in params ? params.ExcludeImageIds : null;

    }
}

/**
 * CreateSearchTemplate request structure.
 * @class
 */
class CreateSearchTemplateRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Search template
         * @type {SearchTemplate || null}
         */
        this.SearchTemplate = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.SearchTemplate) {
            let obj = new SearchTemplate();
            obj.deserialize(params.SearchTemplate)
            this.SearchTemplate = obj;
        }

    }
}

/**
 * DescribeEscapeEventsExport request structure.
 * @class
 */
class DescribeEscapeEventsExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * AddEditAbnormalProcessRule request structure.
 * @class
 */
class AddEditAbnormalProcessRuleRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Information of the added policy. The policy ID is empty here but cannot be empty when you edit a policy.
         * @type {AbnormalProcessRuleInfo || null}
         */
        this.RuleInfo = null;

        /**
         * Required only when an item is allowed
         * @type {string || null}
         */
        this.EventId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.RuleInfo) {
            let obj = new AbnormalProcessRuleInfo();
            obj.deserialize(params.RuleInfo)
            this.RuleInfo = obj;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

    }
}

/**
 * CheckRepeatAssetImageRegistry request structure.
 * @class
 */
class CheckRepeatAssetImageRegistryRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Repository name
         * @type {string || null}
         */
        this.Name = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;

    }
}

/**
 * Structure of the affected node type
 * @class
 */
class AffectedNodeItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Instance ID
         * @type {string || null}
         */
        this.InstanceId = null;

        /**
         * Private IP
         * @type {string || null}
         */
        this.PrivateIpAddresses = null;

        /**
         * Node role, such as `Master` and `Work`.
         * @type {string || null}
         */
        this.InstanceRole = null;

        /**
         * K8s version
         * @type {string || null}
         */
        this.ClusterVersion = null;

        /**
         * Runtime component. Valid values: `docker`, `containerd`.
         * @type {string || null}
         */
        this.ContainerRuntime = null;

        /**
         * Region
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Verification information of the check result
         * @type {string || null}
         */
        this.VerifyInfo = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.NodeName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.InstanceId = 'InstanceId' in params ? params.InstanceId : null;
        this.PrivateIpAddresses = 'PrivateIpAddresses' in params ? params.PrivateIpAddresses : null;
        this.InstanceRole = 'InstanceRole' in params ? params.InstanceRole : null;
        this.ClusterVersion = 'ClusterVersion' in params ? params.ClusterVersion : null;
        this.ContainerRuntime = 'ContainerRuntime' in params ? params.ContainerRuntime : null;
        this.Region = 'Region' in params ? params.Region : null;
        this.VerifyInfo = 'VerifyInfo' in params ? params.VerifyInfo : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;

    }
}

/**
 * CreateCheckComponent request structure.
 * @class
 */
class CreateCheckComponentRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Information of the list of clusters for installation
         * @type {Array.<ClusterCreateComponentItem> || null}
         */
        this.ClusterInfoList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.ClusterInfoList) {
            this.ClusterInfoList = new Array();
            for (let z in params.ClusterInfoList) {
                let obj = new ClusterCreateComponentItem();
                obj.deserialize(params.ClusterInfoList[z]);
                this.ClusterInfoList.push(obj);
            }
        }

    }
}

/**
 * DescribeAgentInstallCommand response structure.
 * @class
 */
class DescribeAgentInstallCommandResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Linux installation command
         * @type {string || null}
         */
        this.LinuxCommand = null;

        /**
         * Windows installation command (Windows 2008 or later)
         * @type {string || null}
         */
        this.WindowsCommand = null;

        /**
         * Step 1 in the Window installation command (Windows 2003)
         * @type {string || null}
         */
        this.WindowsStepOne = null;

        /**
         * Step 2 in the Window installation command (Windows 2003)
         * @type {string || null}
         */
        this.WindowsStepTwo = null;

        /**
         * Download URL of the agent for Windows
         * @type {string || null}
         */
        this.WindowsDownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LinuxCommand = 'LinuxCommand' in params ? params.LinuxCommand : null;
        this.WindowsCommand = 'WindowsCommand' in params ? params.WindowsCommand : null;
        this.WindowsStepOne = 'WindowsStepOne' in params ? params.WindowsStepOne : null;
        this.WindowsStepTwo = 'WindowsStepTwo' in params ? params.WindowsStepTwo : null;
        this.WindowsDownloadUrl = 'WindowsDownloadUrl' in params ? params.WindowsDownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteRiskSyscallWhiteLists request structure.
 * @class
 */
class DeleteRiskSyscallWhiteListsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * IDs of allowed items
         * @type {Array.<string> || null}
         */
        this.WhiteListIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.WhiteListIdSet = 'WhiteListIdSet' in params ? params.WhiteListIdSet : null;

    }
}

/**
 * ModifyK8sApiAbnormalRuleStatus response structure.
 * @class
 */
class ModifyK8sApiAbnormalRuleStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeImageAuthorizedInfo request structure.
 * @class
 */
class DescribeImageAuthorizedInfoRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeExportJobDownloadURL response structure.
 * @class
 */
class DescribeExportJobDownloadURLResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Download URL
         * @type {string || null}
         */
        this.DownloadURL = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadURL = 'DownloadURL' in params ? params.DownloadURL : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryRiskInfoList response structure.
 * @class
 */
class DescribeAssetImageRegistryRiskInfoListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of image vulnerabilities
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ImageRisk> || null}
         */
        this.List = null;

        /**
         * Total number
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageRisk();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulIgnoreLocalImageList response structure.
 * @class
 */
class DescribeVulIgnoreLocalImageListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of images
         * @type {Array.<VulIgnoreLocalImage> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulIgnoreLocalImage();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryDetail response structure.
 * @class
 */
class DescribeAssetImageRegistryDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image digest
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageDigest = null;

        /**
         * Image address
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageRepoAddress = null;

        /**
         * Image type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RegistryType = null;

        /**
         * Repository name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageTag = null;

        /**
         * Scan time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanStatus = null;

        /**
         * Number of vulnerabilities
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VulCnt = null;

        /**
         * Number of viruses and trojans
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VirusCnt = null;

        /**
         * Number of risky behaviors
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RiskCnt = null;

        /**
         * Number of sensitive data items
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.SentiveInfoCnt = null;

        /**
         * Image system
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.OsName = null;

        /**
         * Trojan scan error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanVirusError = null;

        /**
         * Vulnerability scan error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanVulError = null;

        /**
         * Layer file information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LayerInfo = null;

        /**
         * Instance ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceId = null;

        /**
         * Instance name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceName = null;

        /**
         * Namespace
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * High-risk scan error
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanRiskError = null;

        /**
         * Trojan scanning progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanVirusProgress = null;

        /**
         * Vulnerability scanning progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanVulProgress = null;

        /**
         * Sensitive data scanning progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanRiskProgress = null;

        /**
         * Remaining scan time in seconds
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanRemainTime = null;

        /**
         * CVE scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CveStatus = null;

        /**
         * High-risk scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskStatus = null;

        /**
         * Trojan scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VirusStatus = null;

        /**
         * Overall progress
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Progress = null;

        /**
         * Licensing status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.IsAuthorized = null;

        /**
         * Image size
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ImageSize = null;

        /**
         * Image ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Image region
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RegistryRegion = null;

        /**
         * Image creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageCreateTime = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageDigest = 'ImageDigest' in params ? params.ImageDigest : null;
        this.ImageRepoAddress = 'ImageRepoAddress' in params ? params.ImageRepoAddress : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageTag = 'ImageTag' in params ? params.ImageTag : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;
        this.VulCnt = 'VulCnt' in params ? params.VulCnt : null;
        this.VirusCnt = 'VirusCnt' in params ? params.VirusCnt : null;
        this.RiskCnt = 'RiskCnt' in params ? params.RiskCnt : null;
        this.SentiveInfoCnt = 'SentiveInfoCnt' in params ? params.SentiveInfoCnt : null;
        this.OsName = 'OsName' in params ? params.OsName : null;
        this.ScanVirusError = 'ScanVirusError' in params ? params.ScanVirusError : null;
        this.ScanVulError = 'ScanVulError' in params ? params.ScanVulError : null;
        this.LayerInfo = 'LayerInfo' in params ? params.LayerInfo : null;
        this.InstanceId = 'InstanceId' in params ? params.InstanceId : null;
        this.InstanceName = 'InstanceName' in params ? params.InstanceName : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.ScanRiskError = 'ScanRiskError' in params ? params.ScanRiskError : null;
        this.ScanVirusProgress = 'ScanVirusProgress' in params ? params.ScanVirusProgress : null;
        this.ScanVulProgress = 'ScanVulProgress' in params ? params.ScanVulProgress : null;
        this.ScanRiskProgress = 'ScanRiskProgress' in params ? params.ScanRiskProgress : null;
        this.ScanRemainTime = 'ScanRemainTime' in params ? params.ScanRemainTime : null;
        this.CveStatus = 'CveStatus' in params ? params.CveStatus : null;
        this.RiskStatus = 'RiskStatus' in params ? params.RiskStatus : null;
        this.VirusStatus = 'VirusStatus' in params ? params.VirusStatus : null;
        this.Progress = 'Progress' in params ? params.Progress : null;
        this.IsAuthorized = 'IsAuthorized' in params ? params.IsAuthorized : null;
        this.ImageSize = 'ImageSize' in params ? params.ImageSize : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.RegistryRegion = 'RegistryRegion' in params ? params.RegistryRegion : null;
        this.ImageCreateTime = 'ImageCreateTime' in params ? params.ImageCreateTime : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddCompliancePolicyItemToWhitelist response structure.
 * @class
 */
class AddCompliancePolicyItemToWhitelistResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of asset IDs and check item IDs
 * @class
 */
class ComplianceAssetPolicySetItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Asset ID
         * @type {number || null}
         */
        this.CustomerAssetItemId = null;

        /**
         * List of IDs of check items to be ignored in the specified asset. If it is empty, it indicates all.
         * @type {Array.<number> || null}
         */
        this.CustomerPolicyItemIdSet = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetItemId = 'CustomerAssetItemId' in params ? params.CustomerAssetItemId : null;
        this.CustomerPolicyItemIdSet = 'CustomerPolicyItemIdSet' in params ? params.CustomerPolicyItemIdSet : null;

    }
}

/**
 * DescribeAccessControlRules request structure.
 * @class
 */
class DescribeAccessControlRulesRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * StopVirusScanTask response structure.
 * @class
 */
class StopVirusScanTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * K8sApi api abnormal event details
 * @class
 */
class K8sApiAbnormalEventInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Hit rule name
         * @type {string || null}
         */
        this.MatchRuleName = null;

        /**
         * Hit rule type
         * @type {string || null}
         */
        this.MatchRuleType = null;

        /**
         * Alarm level
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Cluster running status
         * @type {string || null}
         */
        this.ClusterRunningStatus = null;

        /**
         * First creation time
         * @type {string || null}
         */
        this.FirstCreateTime = null;

        /**
         * Last creation time
         * @type {string || null}
         */
        this.LastCreateTime = null;

        /**
         * Number of alarms
         * @type {number || null}
         */
        this.AlarmCount = null;

        /**
         * Status
`EVENT_UNDEAL`: Unhandled
`EVENT_DEALED`: Handled
`EVENT_IGNORE`: Ignored
`EVENT_DEL`: Deleted
`EVENT_ADD_WHITE`: Added to an allowlist
         * @type {string || null}
         */
        this.Status = null;

        /**
         * The master IP of a cluster
         * @type {string || null}
         */
        this.ClusterMasterIP = null;

        /**
         * K8s version
         * @type {string || null}
         */
        this.K8sVersion = null;

        /**
         * Runtime component
         * @type {Array.<string> || null}
         */
        this.RunningComponent = null;

        /**
         * Description
         * @type {string || null}
         */
        this.Desc = null;

        /**
         * Suggestion
         * @type {string || null}
         */
        this.Suggestion = null;

        /**
         * Request information
         * @type {string || null}
         */
        this.Info = null;

        /**
         * Rule ID
         * @type {string || null}
         */
        this.MatchRuleID = null;

        /**
         * An array of highlighted fields
         * @type {Array.<string> || null}
         */
        this.HighLightFields = null;

        /**
         * Hit rule
         * @type {K8sApiAbnormalRuleScopeInfo || null}
         */
        this.MatchRule = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MatchRuleName = 'MatchRuleName' in params ? params.MatchRuleName : null;
        this.MatchRuleType = 'MatchRuleType' in params ? params.MatchRuleType : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.ClusterRunningStatus = 'ClusterRunningStatus' in params ? params.ClusterRunningStatus : null;
        this.FirstCreateTime = 'FirstCreateTime' in params ? params.FirstCreateTime : null;
        this.LastCreateTime = 'LastCreateTime' in params ? params.LastCreateTime : null;
        this.AlarmCount = 'AlarmCount' in params ? params.AlarmCount : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.ClusterMasterIP = 'ClusterMasterIP' in params ? params.ClusterMasterIP : null;
        this.K8sVersion = 'K8sVersion' in params ? params.K8sVersion : null;
        this.RunningComponent = 'RunningComponent' in params ? params.RunningComponent : null;
        this.Desc = 'Desc' in params ? params.Desc : null;
        this.Suggestion = 'Suggestion' in params ? params.Suggestion : null;
        this.Info = 'Info' in params ? params.Info : null;
        this.MatchRuleID = 'MatchRuleID' in params ? params.MatchRuleID : null;
        this.HighLightFields = 'HighLightFields' in params ? params.HighLightFields : null;

        if (params.MatchRule) {
            let obj = new K8sApiAbnormalRuleScopeInfo();
            obj.deserialize(params.MatchRule)
            this.MatchRule = obj;
        }

    }
}

/**
 * DescribeVulDefenceEventTendency response structure.
 * @class
 */
class DescribeVulDefenceEventTendencyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trend of exploit prevention events
         * @type {Array.<VulDefenceEventTendency> || null}
         */
        this.DefendedList = null;

        /**
         * Trend of vulnerability attack events
         * @type {Array.<VulDefenceEventTendency> || null}
         */
        this.AttackList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.DefendedList) {
            this.DefendedList = new Array();
            for (let z in params.DefendedList) {
                let obj = new VulDefenceEventTendency();
                obj.deserialize(params.DefendedList[z]);
                this.DefendedList.push(obj);
            }
        }

        if (params.AttackList) {
            this.AttackList = new Array();
            for (let z in params.AttackList) {
                let obj = new VulDefenceEventTendency();
                obj.deserialize(params.AttackList[z]);
                this.AttackList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateK8sApiAbnormalRuleInfo request structure.
 * @class
 */
class CreateK8sApiAbnormalRuleInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule details
         * @type {K8sApiAbnormalRuleInfo || null}
         */
        this.RuleInfo = null;

        /**
         * The ID of the copy rule (for copy rule scenarios)
         * @type {string || null}
         */
        this.CopySrcRuleID = null;

        /**
         * Event ID (for adding events to an allowlist)
         * @type {number || null}
         */
        this.EventID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.RuleInfo) {
            let obj = new K8sApiAbnormalRuleInfo();
            obj.deserialize(params.RuleInfo)
            this.RuleInfo = obj;
        }
        this.CopySrcRuleID = 'CopySrcRuleID' in params ? params.CopySrcRuleID : null;
        this.EventID = 'EventID' in params ? params.EventID : null;

    }
}

/**
 * CreateK8sApiAbnormalRuleExportJob response structure.
 * @class
 */
class CreateK8sApiAbnormalRuleExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the exportation job. You can query the job progress by using this ID on the console.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * RenewImageAuthorizeState response structure.
 * @class
 */
class RenewImageAuthorizeStateResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of the automatic image licensing task
 * @class
 */
class ImageAutoAuthorizedTask extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Licensing method. Valid values: `AUTO` (automatic licensing); `MANUAL` (manual licensing).
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Task date
         * @type {string || null}
         */
        this.AuthorizedDate = null;

        /**
         * Image source. Valid values: `LOCAL` (local image); `REGISTRY` (repository image).
         * @type {string || null}
         */
        this.Source = null;

        /**
         * Last licensing time
         * @type {string || null}
         */
        this.LastAuthorizedTime = null;

        /**
         * Number of images automatically licensed successfully
         * @type {number || null}
         */
        this.SuccessCount = null;

        /**
         * Number of images failed to be automatically licensed
         * @type {number || null}
         */
        this.FailCount = null;

        /**
         * Error code for the last task. Valid values: `REACH_LIMIT` (reaching the upper limit on licenses); `LICENSE_INSUFFICIENT` (insufficient licenses).
         * @type {string || null}
         */
        this.LatestFailCode = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Type = 'Type' in params ? params.Type : null;
        this.AuthorizedDate = 'AuthorizedDate' in params ? params.AuthorizedDate : null;
        this.Source = 'Source' in params ? params.Source : null;
        this.LastAuthorizedTime = 'LastAuthorizedTime' in params ? params.LastAuthorizedTime : null;
        this.SuccessCount = 'SuccessCount' in params ? params.SuccessCount : null;
        this.FailCount = 'FailCount' in params ? params.FailCount : null;
        this.LatestFailCode = 'LatestFailCode' in params ? params.LatestFailCode : null;

    }
}

/**
 * AddEditWarningRules request structure.
 * @class
 */
class AddEditWarningRulesRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Alert switch policy
         * @type {Array.<WarningRule> || null}
         */
        this.WarningRules = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.WarningRules) {
            this.WarningRules = new Array();
            for (let z in params.WarningRules) {
                let obj = new WarningRule();
                obj.deserialize(params.WarningRules[z]);
                this.WarningRules.push(obj);
            }
        }

    }
}

/**
 * DescribeSearchLogs response structure.
 * @class
 */
class DescribeSearchLogsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Historical search records, the latest ten of which are retained.
         * @type {Array.<string> || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Data = 'Data' in params ? params.Data : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAsset response structure.
 * @class
 */
class ModifyAssetResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Sending result of the sync task
         * @type {string || null}
         */
        this.Status = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Status = 'Status' in params ? params.Status : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeReverseShellEventsExport response structure.
 * @class
 */
class DescribeReverseShellEventsExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * Task ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageBindRuleInfo request structure.
 * @class
 */
class DescribeAssetImageBindRuleInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"EventType","Values":[""]}]
EventType. Valid values:
`FILE_ABNORMAL_READ`: Access control.
`MALICE_PROCESS_START`: Malicious process startup.
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeAssetImageList response structure.
 * @class
 */
class DescribeAssetImageListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of images
         * @type {Array.<ImagesInfo> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImagesInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulDefenceEventDetail response structure.
 * @class
 */
class DescribeVulDefenceEventDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Exploit prevention event details
         * @type {VulDefenceEventDetail || null}
         */
        this.EventDetail = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.EventDetail) {
            let obj = new VulDefenceEventDetail();
            obj.deserialize(params.EventDetail)
            this.EventDetail = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Asset information
 * @class
 */
class ComplianceAssetInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Customer asset ID
         * @type {number || null}
         */
        this.CustomerAssetId = null;

        /**
         * Asset type
         * @type {string || null}
         */
        this.AssetType = null;

        /**
         * Asset name
         * @type {string || null}
         */
        this.AssetName = null;

        /**
         * This field is the image tag when the asset is an image.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageTag = null;

        /**
         * Server IP of the asset
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Node name of the asset
         * @type {string || null}
         */
        this.NodeName = null;

        /**
         * Check status

`CHECK_INIT`: To be checked.

`CHECK_RUNNING`: Checking.

`CHECK_FINISHED`: Checked.

`CHECK_FAILED`: Check failed.
         * @type {string || null}
         */
        this.CheckStatus = null;

        /**
         * Number of check items that the asset passed
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.PassedPolicyItemCount = null;

        /**
         * Number of check items that the asset failed
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.FailedPolicyItemCount = null;

        /**
         * Last check time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LastCheckTime = null;

        /**
         * Check result. Valid values:
`RESULT_FAILED`: Failed.
`RESULT_PASSED`: Passed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CheckResult = null;

        /**
         * Node instance ID
Note: This field may return `null`, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetId = 'CustomerAssetId' in params ? params.CustomerAssetId : null;
        this.AssetType = 'AssetType' in params ? params.AssetType : null;
        this.AssetName = 'AssetName' in params ? params.AssetName : null;
        this.ImageTag = 'ImageTag' in params ? params.ImageTag : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.NodeName = 'NodeName' in params ? params.NodeName : null;
        this.CheckStatus = 'CheckStatus' in params ? params.CheckStatus : null;
        this.PassedPolicyItemCount = 'PassedPolicyItemCount' in params ? params.PassedPolicyItemCount : null;
        this.FailedPolicyItemCount = 'FailedPolicyItemCount' in params ? params.FailedPolicyItemCount : null;
        this.LastCheckTime = 'LastCheckTime' in params ? params.LastCheckTime : null;
        this.CheckResult = 'CheckResult' in params ? params.CheckResult : null;
        this.InstanceId = 'InstanceId' in params ? params.InstanceId : null;

    }
}

/**
 * DescribeAssetImageRegistryVirusList request structure.
 * @class
 */
class DescribeAssetImageRegistryVirusListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Vulnerability level</li>
<li>Name - String - Required: No - Vulnerability name</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Image information
         * @type {ImageInfo || null}
         */
        this.ImageInfo = null;

        /**
         * Image ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

        if (params.ImageInfo) {
            let obj = new ImageInfo();
            obj.deserialize(params.ImageInfo)
            this.ImageInfo = obj;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * CreateEscapeEventsExportJob request structure.
 * @class
 */
class CreateEscapeEventsExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Maximum value: `10000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter - status. Valid values: `EVENT_UNDEAL` (pending); `EVENT_DEALED` (processed); `EVENT_INGNORE` (ignored).
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field: `latest_found_time`.
         * @type {string || null}
         */
        this.By = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * ModifyVirusMonitorSetting response structure.
 * @class
 */
class ModifyVirusMonitorSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CheckNetworkFirewallPolicyYaml response structure.
 * @class
 */
class CheckNetworkFirewallPolicyYamlResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeComplianceTaskAssetSummary response structure.
 * @class
 */
class DescribeComplianceTaskAssetSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Status

`USER_UNINIT`: Not initialized.
`USER_INITIALIZING`: Initializing.
`USER_NORMAL`: Normal.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * List of aggregated information of each type of asset
         * @type {Array.<ComplianceAssetSummary> || null}
         */
        this.AssetSummaryList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Status = 'Status' in params ? params.Status : null;

        if (params.AssetSummaryList) {
            this.AssetSummaryList = new Array();
            for (let z in params.AssetSummaryList) {
                let obj = new ComplianceAssetSummary();
                obj.deserialize(params.AssetSummaryList[z]);
                this.AssetSummaryList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeWarningRules response structure.
 * @class
 */
class DescribeWarningRulesResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of alert policies
         * @type {Array.<WarningRule> || null}
         */
        this.WarningRules = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.WarningRules) {
            this.WarningRules = new Array();
            for (let z in params.WarningRules) {
                let obj = new WarningRule();
                obj.deserialize(params.WarningRules[z]);
                this.WarningRules.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeUserCluster request structure.
 * @class
 */
class DescribeUserClusterRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Maximum number of records per query
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Name - String
Name. Valid values: `ClusterName`, `ClusterId`, `ClusterType`, `Region`, `ClusterCheckMode`, `ClusterAutoCheck`.
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeNetworkFirewallClusterRefreshStatus response structure.
 * @class
 */
class DescribeNetworkFirewallClusterRefreshStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task status. Valid values: `Task_Running`, `Task_Succ`, `Task_Error`, `Task_NoExist`.
         * @type {string || null}
         */
        this.TaskStatus = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskStatus = 'TaskStatus' in params ? params.TaskStatus : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of containers in the virus scanning task at runtime
 * @class
 */
class VirusTaskInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Node name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Private IP of the node
         * @type {string || null}
         */
        this.HostIp = null;

        /**
         * Scanning status:
`WAIT`: Pending scanning.
`FAILED`: Failed.
`SCANNING`: Scanning.
`FINISHED`: Ended.
`CANCELING`: Canceling.
`CANCELED`: Canceled.
`CANCEL_FAILED`: Failed to cancel.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Check start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * Check end time
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Number of risks
         * @type {number || null}
         */
        this.RiskCnt = null;

        /**
         * Event ID
         * @type {string || null}
         */
        this.Id = null;

        /**
         * Cause:
`SEND_SUCCESSED`: Task submitted.
`SCAN_WAIT`: Waiting to scan...
`OFFLINE`: Offline.
`SEND_FAILED`: Failed to deploy.
`TIMEOUT`: Timed out.
`LOW_AGENT_VERSION`: The Agent version is too old.
`AGENT_NOT_FOUND`: The image's agent doesn't exist.
`TOO_MANY`: Too many tasks.
`VALIDATION`: Invalid parameter.
`INTERNAL`: Internal service error.
`MISC`: Other errors.
`UNAUTH`: The image is not assigned with a license.
`SEND_CANCEL_SUCCESSED`: Task submitted.
         * @type {string || null}
         */
        this.ErrorMsg = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Public IP of the node
         * @type {string || null}
         */
        this.PublicIP = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.HostIp = 'HostIp' in params ? params.HostIp : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;
        this.RiskCnt = 'RiskCnt' in params ? params.RiskCnt : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.ErrorMsg = 'ErrorMsg' in params ? params.ErrorMsg : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.PublicIP = 'PublicIP' in params ? params.PublicIP : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;

    }
}

/**
 * Affected workload item in the cluster security check
 * @class
 */
class AffectedWorkloadItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Workload name
         * @type {string || null}
         */
        this.WorkloadName = null;

        /**
         * Workload type
         * @type {string || null}
         */
        this.WorkloadType = null;

        /**
         * Region
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Verification information of the check result
         * @type {string || null}
         */
        this.VerifyInfo = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.WorkloadName = 'WorkloadName' in params ? params.WorkloadName : null;
        this.WorkloadType = 'WorkloadType' in params ? params.WorkloadType : null;
        this.Region = 'Region' in params ? params.Region : null;
        this.VerifyInfo = 'VerifyInfo' in params ? params.VerifyInfo : null;

    }
}

/**
 * AddAndPublishNetworkFirewallPolicyYamlDetail request structure.
 * @class
 */
class AddAndPublishNetworkFirewallPolicyYamlDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.PolicyName = null;

        /**
         * Base64-encoded NetworkPolicy YAML string
         * @type {string || null}
         */
        this.Yaml = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.PolicyName = 'PolicyName' in params ? params.PolicyName : null;
        this.Yaml = 'Yaml' in params ? params.Yaml : null;
        this.Description = 'Description' in params ? params.Description : null;

    }
}

/**
 * CreateComplianceTask request structure.
 * @class
 */
class CreateComplianceTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of asset types to be scanned
`ASSET_CONTAINER`: Container.
`ASSET_IMAGE`: Image.
`ASSET_HOST`: Server.
`ASSET_K8S`: K8s asset.
A valid value must be entered for the `AssetTypeSet`, `PolicySetId`, or `PeriodTaskId` parameter.
         * @type {Array.<string> || null}
         */
        this.AssetTypeSet = null;

        /**
         * Policy set ID
         * @type {number || null}
         */
        this.PolicySetId = null;

        /**
         * Scheduled task ID
         * @type {number || null}
         */
        this.PeriodTaskId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AssetTypeSet = 'AssetTypeSet' in params ? params.AssetTypeSet : null;
        this.PolicySetId = 'PolicySetId' in params ? params.PolicySetId : null;
        this.PeriodTaskId = 'PeriodTaskId' in params ? params.PeriodTaskId : null;

    }
}

/**
 * DescribeAccessControlRulesExport request structure.
 * @class
 */
class DescribeAccessControlRulesExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * OpenTcssTrial request structure.
 * @class
 */
class OpenTcssTrialRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * CreateEscapeEventsExportJob response structure.
 * @class
 */
class CreateEscapeEventsExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export task ID, which is used to query the task progress on the frontend.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Description of the high-risk container syscall event at runtime
 * @class
 */
class RiskSyscallEventDescription extends  AbstractModel {
    constructor(){
        super();

        /**
         * Description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Solution
         * @type {string || null}
         */
        this.Solution = null;

        /**
         * Event remarks
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Syscall name
         * @type {string || null}
         */
        this.SyscallName = null;

        /**
         * Last processing time of the event
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.OperationTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Description = 'Description' in params ? params.Description : null;
        this.Solution = 'Solution' in params ? params.Solution : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.SyscallName = 'SyscallName' in params ? params.SyscallName : null;
        this.OperationTime = 'OperationTime' in params ? params.OperationTime : null;

    }
}

/**
 * DescribeImageAutoAuthorizedRule response structure.
 * @class
 */
class DescribeImageAutoAuthorizedRuleResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether the rule takes effect. Valid values: `0` (no); `1` (yes).
         * @type {number || null}
         */
        this.IsEnabled = null;

        /**
         * Scope. Valid values: `MANUAL` (specified servers); `ALL` (all images).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RangeType = null;

        /**
         * Number of servers when the scope is `MANUAL`
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.HostCount = null;

        /**
         * Maximum number of image licenses per day. `0`: Unlimited.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.MaxDailyCount = null;

        /**
         * Rule ID, which is `0` if not specified.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RuleId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.IsEnabled = 'IsEnabled' in params ? params.IsEnabled : null;
        this.RangeType = 'RangeType' in params ? params.RangeType : null;
        this.HostCount = 'HostCount' in params ? params.HostCount : null;
        this.MaxDailyCount = 'MaxDailyCount' in params ? params.MaxDailyCount : null;
        this.RuleId = 'RuleId' in params ? params.RuleId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddEditWarningRules response structure.
 * @class
 */
class AddEditWarningRulesResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulDefenceSetting request structure.
 * @class
 */
class DescribeVulDefenceSettingRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeVirusAutoIsolateSetting response structure.
 * @class
 */
class DescribeVirusAutoIsolateSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Automatic isolation switch. Valid values: `true` (on); `false` (off).
         * @type {boolean || null}
         */
        this.AutoIsolateSwitch = null;

        /**
         * Whether the process associated with the isolated file is interrupted. Valid values: `true` (yes); `false` (no).
         * @type {boolean || null}
         */
        this.IsKillProgress = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AutoIsolateSwitch = 'AutoIsolateSwitch' in params ? params.AutoIsolateSwitch : null;
        this.IsKillProgress = 'IsKillProgress' in params ? params.IsKillProgress : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of vulnerabilities
 * @class
 */
class VulInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Vulnerability tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * CVSS V3 score
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CVSSV3Score = null;

        /**
         * Risk level
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Level = null;

        /**
         * CVE No.
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * Vulnerability sub-category
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Category = null;

        /**
         * First discovery time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FoundTime = null;

        /**
         * Last discovery time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.LatestFoundTime = null;

        /**
         * Vulnerability ID
         * @type {number || null}
         */
        this.ID = null;

        /**
         * Number of affected local images
         * @type {number || null}
         */
        this.LocalImageCount = null;

        /**
         * Number of affected containers
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ContainerCount = null;

        /**
         * Number of affected repository images
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RegistryImageCount = null;

        /**
         * POC ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Defense status. Valid values: `NO_DEFENDED`, `DEFENDED`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DefenceStatus = null;

        /**
         * Scope of servers with exploit prevention enabled. Valid values: `MANUAL` (specified servers); `ALL` (all servers).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DefenceScope = null;

        /**
         * Number of servers with exploit prevention enabled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DefenceHostCount = null;

        /**
         * Number of attacks defended against
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DefendedCount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.CVSSV3Score = 'CVSSV3Score' in params ? params.CVSSV3Score : null;
        this.Level = 'Level' in params ? params.Level : null;
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.Category = 'Category' in params ? params.Category : null;
        this.FoundTime = 'FoundTime' in params ? params.FoundTime : null;
        this.LatestFoundTime = 'LatestFoundTime' in params ? params.LatestFoundTime : null;
        this.ID = 'ID' in params ? params.ID : null;
        this.LocalImageCount = 'LocalImageCount' in params ? params.LocalImageCount : null;
        this.ContainerCount = 'ContainerCount' in params ? params.ContainerCount : null;
        this.RegistryImageCount = 'RegistryImageCount' in params ? params.RegistryImageCount : null;
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.DefenceStatus = 'DefenceStatus' in params ? params.DefenceStatus : null;
        this.DefenceScope = 'DefenceScope' in params ? params.DefenceScope : null;
        this.DefenceHostCount = 'DefenceHostCount' in params ? params.DefenceHostCount : null;
        this.DefendedCount = 'DefendedCount' in params ? params.DefendedCount : null;

    }
}

/**
 * DescribeAssetImageRegistryRegistryList response structure.
 * @class
 */
class DescribeAssetImageRegistryRegistryListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mirror repository list
         * @type {Array.<ImageRepoRegistryInfo> || null}
         */
        this.List = null;

        /**
         * Total quantity
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageRepoRegistryInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryAssetStatus request structure.
 * @class
 */
class DescribeAssetImageRegistryAssetStatusRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeVulScanLocalImageList request structure.
 * @class
 */
class DescribeVulScanLocalImageListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Vulnerability scan task ID
         * @type {number || null}
         */
        this.TaskID = null;

        /**
         * Filter
<li>OnlyAffectedNewestImage- Bool- Required: No - Show only vulnerabilities that affect the latest image tags</li>
<li>ImageID- string - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>ScanStatus- string - Required: No - Check status. Valid values: `WAIT_SCAN` (pending); `SCANNING` (checking); `SCANNED` (checked); `SCAN_ERR` (failed to check); `CANCELED` (check ended).</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskID = 'TaskID' in params ? params.TaskID : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * Basic image information
 * @class
 */
class ImageProgress extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Repository type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RegistryType = null;

        /**
         * Image repository address
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageRepoAddress = null;

        /**
         * Instance ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceId = null;

        /**
         * Instance name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.InstanceName = null;

        /**
         * Namespace
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Repository name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageTag = null;

        /**
         * Image scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanStatus = null;

        /**
         * CVE scanning progress of the image
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CveProgress = null;

        /**
         * Sensitive data scanning progress of the image
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RiskProgress = null;

        /**
         * Trojan scanning progress of the image
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VirusProgress = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.ImageRepoAddress = 'ImageRepoAddress' in params ? params.ImageRepoAddress : null;
        this.InstanceId = 'InstanceId' in params ? params.InstanceId : null;
        this.InstanceName = 'InstanceName' in params ? params.InstanceName : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageTag = 'ImageTag' in params ? params.ImageTag : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;
        this.CveProgress = 'CveProgress' in params ? params.CveProgress : null;
        this.RiskProgress = 'RiskProgress' in params ? params.RiskProgress : null;
        this.VirusProgress = 'VirusProgress' in params ? params.VirusProgress : null;

    }
}

/**
 * CreateK8sApiAbnormalRuleExportJob request structure.
 * @class
 */
class CreateK8sApiAbnormalRuleExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filters.
<li>`RuleType` - String - Optional - Rule type</li>
<li>`Status` - String - Optional - Status</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sort order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {Array.<string> || null}
         */
        this.By = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * CreateVirusScanAgain response structure.
 * @class
 */
class CreateVirusScanAgainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateDefenceVulExportJob request structure.
 * @class
 */
class CreateDefenceVulExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10000`. Maximum value: `10000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Severity. Valid values: `CRITICAL` (critical); `HIGH` (high); `MIDDLE` (medium); `LOW` (low).</li>
<li>CVEID- string - Required: No - CVE No.</li>
<li>Name- string - Required: No - Vulnerability name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * ModifySecLogDeliveryClsSetting request structure.
 * @class
 */
class ModifySecLogDeliveryClsSettingRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Log information
         * @type {Array.<SecLogDeliveryClsSettingInfo> || null}
         */
        this.List = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new SecLogDeliveryClsSettingInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }

    }
}

/**
 * AddEditAccessControlRule response structure.
 * @class
 */
class AddEditAccessControlRuleResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeEscapeEventTypeSummary request structure.
 * @class
 */
class DescribeEscapeEventTypeSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeVulLevelImageSummary request structure.
 * @class
 */
class DescribeVulLevelImageSummaryRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DeleteCompliancePolicyItemFromWhitelist response structure.
 * @class
 */
class DeleteCompliancePolicyItemFromWhitelistResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecEventsTendency request structure.
 * @class
 */
class DescribeSecEventsTendencyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * End time
         * @type {string || null}
         */
        this.EndTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;

    }
}

/**
 * ResetSecLogTopicConfig response structure.
 * @class
 */
class ResetSecLogTopicConfigResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAccessControlRules response structure.
 * @class
 */
class DescribeAccessControlRulesResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of events
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of access control policies
         * @type {Array.<RuleBaseInfo> || null}
         */
        this.RuleSet = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.RuleSet) {
            this.RuleSet = new Array();
            for (let z in params.RuleSet) {
                let obj = new RuleBaseInfo();
                obj.deserialize(params.RuleSet[z]);
                this.RuleSet.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyEscapeRule response structure.
 * @class
 */
class ModifyEscapeRuleResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogVasInfo response structure.
 * @class
 */
class DescribeSecLogVasInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Purchase status
`Pending`: To be purchased.
`Normal`: Purchased.
`Isolate`: Isolated.
         * @type {string || null}
         */
        this.BuyStatus = null;

        /**
         * Storage period in months
         * @type {number || null}
         */
        this.LogSaveMonth = null;

        /**
         * Start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * End time
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Storage capacity (GB)
         * @type {number || null}
         */
        this.LogCapacity = null;

        /**
         * Resource ID
         * @type {string || null}
         */
        this.ResourceID = null;

        /**
         * Whether it has been purchased before. Valid values: `false` (no); `true` (yes).
         * @type {boolean || null}
         */
        this.IsPurchased = null;

        /**
         * Trial storage capacity (GB)
         * @type {number || null}
         */
        this.TrialCapacity = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.BuyStatus = 'BuyStatus' in params ? params.BuyStatus : null;
        this.LogSaveMonth = 'LogSaveMonth' in params ? params.LogSaveMonth : null;
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;
        this.LogCapacity = 'LogCapacity' in params ? params.LogCapacity : null;
        this.ResourceID = 'ResourceID' in params ? params.ResourceID : null;
        this.IsPurchased = 'IsPurchased' in params ? params.IsPurchased : null;
        this.TrialCapacity = 'TrialCapacity' in params ? params.TrialCapacity : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyVirusAutoIsolateSetting response structure.
 * @class
 */
class ModifyVirusAutoIsolateSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Brief information of the image
 * @class
 */
class AssetSimpleImageInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Number of associated containers
         * @type {number || null}
         */
        this.ContainerCnt = null;

        /**
         * Last scan time
         * @type {string || null}
         */
        this.ScanTime = null;

        /**
         * Image size
         * @type {number || null}
         */
        this.Size = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ContainerCnt = 'ContainerCnt' in params ? params.ContainerCnt : null;
        this.ScanTime = 'ScanTime' in params ? params.ScanTime : null;
        this.Size = 'Size' in params ? params.Size : null;

    }
}

/**
 * DescribeCompliancePolicyItemAffectedSummary request structure.
 * @class
 */
class DescribeCompliancePolicyItemAffectedSummaryRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * `CustomerPolicyItemId` returned by `DescribeComplianceTaskPolicyItemSummaryList`, which indicates the check item ID.
         * @type {number || null}
         */
        this.CustomerPolicyItemId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerPolicyItemId = 'CustomerPolicyItemId' in params ? params.CustomerPolicyItemId : null;

    }
}

/**
 * DescribeVirusDetail response structure.
 * @class
 */
class DescribeVirusDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Image ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageId = null;

        /**
         * Image name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Trojan file size
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Size = null;

        /**
         * Trojan file path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FilePath = null;

        /**
         * Last generation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ModifyTime = null;

        /**
         * Virus name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.VirusName = null;

        /**
         * Risk level. Valid values: `RISK_CRITICAL`, `RISK_HIGH`, `RISK_MEDIUM`, `RISK_LOW`, `RISK_NOTICE`.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RiskLevel = null;

        /**
         * Container name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Container ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Server name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Server ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostId = null;

        /**
         * Process name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Process path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Process MD5
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessMd5 = null;

        /**
         * Process ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ProcessId = null;

        /**
         * Process parameter
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessArgv = null;

        /**
         * Process chain
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessChan = null;

        /**
         * Process group
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessAccountGroup = null;

        /**
         * Process initiator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessStartAccount = null;

        /**
         * Process file permission
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ProcessFileAuthority = null;

        /**
         * Source. Valid values: `0` (quick scan); `1` (scheduled scan); `2` (real-time monitoring).
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.SourceType = null;

        /**
         * Tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * Event description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HarmDescribe = null;

        /**
         * Solution
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.SuggestScheme = null;

        /**
         * Remarks
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Mark = null;

        /**
         * Suspicious file name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FileName = null;

        /**
         * MD5 checksum of the file
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FileMd5 = null;

        /**
         * Event type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.EventType = null;

        /**
         * Cluster name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * `DEAL_NONE`: Pending.
`DEAL_IGNORE`: Ignored.
`DEAL_ADD_WHITELIST`: Allowed.
`DEAL_DEL`: Deleted.
`DEAL_ISOLATE`: Isolated.
`DEAL_ISOLATING`: Isolating.
`DEAL_ISOLATE_FAILED`: Isolation failed.
`DEAL_RECOVERING`: Recovering.
`DEAL_RECOVER_FAILED`: Recovery failed.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Sub-status of the failure:
`FILE_NOT_FOUND`: The file does not exist.
`FILE_ABNORMAL`: The file is abnormal.
`FILE_ABNORMAL_DEAL_RECOVER`: The file is abnormal when recovered.
`BACKUP_FILE_NOT_FOUND`: The backup file does not exist.
`CONTAINER_NOT_FOUND_DEAL_ISOLATE`: The container does not exist during isolation.
`CONTAINER_NOT_FOUND_DEAL_RECOVER`: The container does not exist during recovery.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.SubStatus = null;

        /**
         * Private IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Public IP
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ClientIP = null;

        /**
         * Parent process initiator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PProcessStartUser = null;

        /**
         * User group of the parent process
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PProcessUserGroup = null;

        /**
         * Path of the parent process
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PProcessPath = null;

        /**
         * Command line parameters of the parent process
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PProcessParam = null;

        /**
         * Ancestor process initiator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AncestorProcessStartUser = null;

        /**
         * Ancestor process user group
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AncestorProcessUserGroup = null;

        /**
         * Ancestor process path
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AncestorProcessPath = null;

        /**
         * Command line parameters of the ancestor process
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AncestorProcessParam = null;

        /**
         * Last processing time of the event
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.OperationTime = null;

        /**
         * Container isolation status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetStatus = null;

        /**
         * Sub-status of container isolation
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerNetSubStatus = null;

        /**
         * Container isolation operation source
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ContainerIsolateOperationSrc = null;

        /**
         * Check platform
`1`: Tencent Cloud Security Engine.
`2`: tav.
`3`: binaryAi.
`4`: Unusual behavior.
`5`: Threat intelligence.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.CheckPlatform = null;

        /**
         * File accessed time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FileAccessTime = null;

        /**
         * File modified time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.FileModifyTime = null;

        /**
         * Node subnet ID
         * @type {string || null}
         */
        this.NodeSubNetID = null;

        /**
         * Node subnet name
         * @type {string || null}
         */
        this.NodeSubNetName = null;

        /**
         * Subnet IP range
         * @type {string || null}
         */
        this.NodeSubNetCIDR = null;

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod status
         * @type {string || null}
         */
        this.PodStatus = null;

        /**
         * UID of the node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * Node type. Values: `NORMAL` (general node), `SUPER` (super node).
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * 
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * 
         * @type {string || null}
         */
        this.WorkloadType = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageId = 'ImageId' in params ? params.ImageId : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.Size = 'Size' in params ? params.Size : null;
        this.FilePath = 'FilePath' in params ? params.FilePath : null;
        this.ModifyTime = 'ModifyTime' in params ? params.ModifyTime : null;
        this.VirusName = 'VirusName' in params ? params.VirusName : null;
        this.RiskLevel = 'RiskLevel' in params ? params.RiskLevel : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.HostId = 'HostId' in params ? params.HostId : null;
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.ProcessMd5 = 'ProcessMd5' in params ? params.ProcessMd5 : null;
        this.ProcessId = 'ProcessId' in params ? params.ProcessId : null;
        this.ProcessArgv = 'ProcessArgv' in params ? params.ProcessArgv : null;
        this.ProcessChan = 'ProcessChan' in params ? params.ProcessChan : null;
        this.ProcessAccountGroup = 'ProcessAccountGroup' in params ? params.ProcessAccountGroup : null;
        this.ProcessStartAccount = 'ProcessStartAccount' in params ? params.ProcessStartAccount : null;
        this.ProcessFileAuthority = 'ProcessFileAuthority' in params ? params.ProcessFileAuthority : null;
        this.SourceType = 'SourceType' in params ? params.SourceType : null;
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.HarmDescribe = 'HarmDescribe' in params ? params.HarmDescribe : null;
        this.SuggestScheme = 'SuggestScheme' in params ? params.SuggestScheme : null;
        this.Mark = 'Mark' in params ? params.Mark : null;
        this.FileName = 'FileName' in params ? params.FileName : null;
        this.FileMd5 = 'FileMd5' in params ? params.FileMd5 : null;
        this.EventType = 'EventType' in params ? params.EventType : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.SubStatus = 'SubStatus' in params ? params.SubStatus : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ClientIP = 'ClientIP' in params ? params.ClientIP : null;
        this.PProcessStartUser = 'PProcessStartUser' in params ? params.PProcessStartUser : null;
        this.PProcessUserGroup = 'PProcessUserGroup' in params ? params.PProcessUserGroup : null;
        this.PProcessPath = 'PProcessPath' in params ? params.PProcessPath : null;
        this.PProcessParam = 'PProcessParam' in params ? params.PProcessParam : null;
        this.AncestorProcessStartUser = 'AncestorProcessStartUser' in params ? params.AncestorProcessStartUser : null;
        this.AncestorProcessUserGroup = 'AncestorProcessUserGroup' in params ? params.AncestorProcessUserGroup : null;
        this.AncestorProcessPath = 'AncestorProcessPath' in params ? params.AncestorProcessPath : null;
        this.AncestorProcessParam = 'AncestorProcessParam' in params ? params.AncestorProcessParam : null;
        this.OperationTime = 'OperationTime' in params ? params.OperationTime : null;
        this.ContainerNetStatus = 'ContainerNetStatus' in params ? params.ContainerNetStatus : null;
        this.ContainerNetSubStatus = 'ContainerNetSubStatus' in params ? params.ContainerNetSubStatus : null;
        this.ContainerIsolateOperationSrc = 'ContainerIsolateOperationSrc' in params ? params.ContainerIsolateOperationSrc : null;
        this.CheckPlatform = 'CheckPlatform' in params ? params.CheckPlatform : null;
        this.FileAccessTime = 'FileAccessTime' in params ? params.FileAccessTime : null;
        this.FileModifyTime = 'FileModifyTime' in params ? params.FileModifyTime : null;
        this.NodeSubNetID = 'NodeSubNetID' in params ? params.NodeSubNetID : null;
        this.NodeSubNetName = 'NodeSubNetName' in params ? params.NodeSubNetName : null;
        this.NodeSubNetCIDR = 'NodeSubNetCIDR' in params ? params.NodeSubNetCIDR : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodStatus = 'PodStatus' in params ? params.PodStatus : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.WorkloadType = 'WorkloadType' in params ? params.WorkloadType : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeImageAutoAuthorizedTaskList response structure.
 * @class
 */
class DescribeImageAutoAuthorizedTaskListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of automatic licensing tasks
         * @type {Array.<ImageAutoAuthorizedTask> || null}
         */
        this.List = null;

        /**
         * Total number
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new ImageAutoAuthorizedTask();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeComplianceAssetList response structure.
 * @class
 */
class DescribeComplianceAssetListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of assets
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of assets
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ComplianceAssetInfo> || null}
         */
        this.AssetInfoList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.AssetInfoList) {
            this.AssetInfoList = new Array();
            for (let z in params.AssetInfoList) {
                let obj = new ComplianceAssetInfo();
                obj.deserialize(params.AssetInfoList[z]);
                this.AssetInfoList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateVulContainerExportJob request structure.
 * @class
 */
class CreateVulContainerExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Number of results to be returned. Default value: `50000`. Maximum value: `50000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>OnlyAffectedNewestImage- Bool- Required: No - Show only vulnerabilities that affect the latest image tags</li>
<li>ContainerID- string - Required: No - Container ID</li>
<li>ContainerName- String - Required: No - Container name</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeSecLogDeliveryClsSetting response structure.
 * @class
 */
class DescribeSecLogDeliveryClsSettingResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of log types
         * @type {Array.<SecLogDeliveryClsSettingInfo> || null}
         */
        this.LogTypeList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.LogTypeList) {
            this.LogTypeList = new Array();
            for (let z in params.LogTypeList) {
                let obj = new SecLogDeliveryClsSettingInfo();
                obj.deserialize(params.LogTypeList[z]);
                this.LogTypeList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeComplianceAssetDetailInfo response structure.
 * @class
 */
class DescribeComplianceAssetDetailInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Asset details
         * @type {ComplianceAssetDetailInfo || null}
         */
        this.AssetDetailInfo = null;

        /**
         * This field is returned when the asset is a container.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ComplianceContainerDetailInfo || null}
         */
        this.ContainerDetailInfo = null;

        /**
         * This field is returned when the asset is an image.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ComplianceImageDetailInfo || null}
         */
        this.ImageDetailInfo = null;

        /**
         * This field is returned when the asset is a server.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ComplianceHostDetailInfo || null}
         */
        this.HostDetailInfo = null;

        /**
         * This field is returned when the asset is a K8s asset.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ComplianceK8SDetailInfo || null}
         */
        this.K8SDetailInfo = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.AssetDetailInfo) {
            let obj = new ComplianceAssetDetailInfo();
            obj.deserialize(params.AssetDetailInfo)
            this.AssetDetailInfo = obj;
        }

        if (params.ContainerDetailInfo) {
            let obj = new ComplianceContainerDetailInfo();
            obj.deserialize(params.ContainerDetailInfo)
            this.ContainerDetailInfo = obj;
        }

        if (params.ImageDetailInfo) {
            let obj = new ComplianceImageDetailInfo();
            obj.deserialize(params.ImageDetailInfo)
            this.ImageDetailInfo = obj;
        }

        if (params.HostDetailInfo) {
            let obj = new ComplianceHostDetailInfo();
            obj.deserialize(params.HostDetailInfo)
            this.HostDetailInfo = obj;
        }

        if (params.K8SDetailInfo) {
            let obj = new ComplianceK8SDetailInfo();
            obj.deserialize(params.K8SDetailInfo)
            this.K8SDetailInfo = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteEscapeWhiteList response structure.
 * @class
 */
class DeleteEscapeWhiteListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * RemoveAssetImageRegistryRegistryDetail response structure.
 * @class
 */
class RemoveAssetImageRegistryRegistryDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ScanComplianceScanFailedAssets response structure.
 * @class
 */
class ScanComplianceScanFailedAssetsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of another check task
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyAssetImageRegistryScanStop request structure.
 * @class
 */
class ModifyAssetImageRegistryScanStopRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Whether to scan all images
         * @type {boolean || null}
         */
        this.All = null;

        /**
         * List of scanned images
         * @type {Array.<ImageInfo> || null}
         */
        this.Images = null;

        /**
         * List of scanned images
         * @type {Array.<number> || null}
         */
        this.Id = null;

        /**
         * Filter
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * List of images not to be scanned, which is used together with `Filters`.
         * @type {Array.<number> || null}
         */
        this.ExcludeImageList = null;

        /**
         * Whether to scan only the latest repository images
         * @type {boolean || null}
         */
        this.OnlyScanLatest = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.All = 'All' in params ? params.All : null;

        if (params.Images) {
            this.Images = new Array();
            for (let z in params.Images) {
                let obj = new ImageInfo();
                obj.deserialize(params.Images[z]);
                this.Images.push(obj);
            }
        }
        this.Id = 'Id' in params ? params.Id : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.ExcludeImageList = 'ExcludeImageList' in params ? params.ExcludeImageList : null;
        this.OnlyScanLatest = 'OnlyScanLatest' in params ? params.OnlyScanLatest : null;

    }
}

/**
 * DeleteNetworkFirewallPolicyDetail response structure.
 * @class
 */
class DeleteNetworkFirewallPolicyDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the created task. `0` indicates that the creation failed.
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * Result of creating the deletion task. Valid values: `Succ`, `Failed`.
         * @type {string || null}
         */
        this.Result = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Result = 'Result' in params ? params.Result : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeK8sApiAbnormalTendency request structure.
 * @class
 */
class DescribeK8sApiAbnormalTendencyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Trend period (default value: 7 days)
         * @type {number || null}
         */
        this.TendencyPeriod = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TendencyPeriod = 'TendencyPeriod' in params ? params.TendencyPeriod : null;

    }
}

/**
 * Information of the allowlist of high-risk syscalls
 * @class
 */
class RiskSyscallWhiteListInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Array of image IDs. An empty array indicates all.
         * @type {Array.<string> || null}
         */
        this.ImageIds = null;

        /**
         * Syscall name. The `DescribeRiskSyscallNames` API can be called to get the list of enumerated values.
         * @type {Array.<string> || null}
         */
        this.SyscallNames = null;

        /**
         * Target process
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Allowed item ID, which is empty if the item is newly created.
         * @type {string || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageIds = 'ImageIds' in params ? params.ImageIds : null;
        this.SyscallNames = 'SyscallNames' in params ? params.SyscallNames : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * DescribeNewestVul response structure.
 * @class
 */
class DescribeNewestVulResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

        /**
         * Vulnerability name
         * @type {string || null}
         */
        this.VulName = null;

        /**
         * Disclosure time
         * @type {string || null}
         */
        this.SubmitTime = null;

        /**
         * Emergency vulnerability risk information. Valid values: `NOT_SCAN` (not scanned); `SCANNING` (scanning); `SCANNED` (scanned).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Vulnerability CVE ID
         * @type {string || null}
         */
        this.CVEID = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PocID = 'PocID' in params ? params.PocID : null;
        this.VulName = 'VulName' in params ? params.VulName : null;
        this.SubmitTime = 'SubmitTime' in params ? params.SubmitTime : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.CVEID = 'CVEID' in params ? params.CVEID : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeCompliancePolicyItemAffectedAssetList response structure.
 * @class
 */
class DescribeCompliancePolicyItemAffectedAssetListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of assets affected by each check item
         * @type {Array.<ComplianceAffectedAsset> || null}
         */
        this.AffectedAssetList = null;

        /**
         * Total number of assets affected by the check item
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.AffectedAssetList) {
            this.AffectedAssetList = new Array();
            for (let z in params.AffectedAssetList) {
                let obj = new ComplianceAffectedAsset();
                obj.deserialize(params.AffectedAssetList[z]);
                this.AffectedAssetList.push(obj);
            }
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeComplianceAssetPolicyItemList request structure.
 * @class
 */
class DescribeComplianceAssetPolicyItemListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Customer asset ID
         * @type {number || null}
         */
        this.CustomerAssetId = null;

        /**
         * Initial offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be obtained. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Filter list, which is supported by the `Name` field.
RiskLevel
         * @type {Array.<ComplianceFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerAssetId = 'CustomerAssetId' in params ? params.CustomerAssetId : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new ComplianceFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * DescribeABTestConfig response structure.
 * @class
 */
class DescribeABTestConfigResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Canary project configuration
         * @type {Array.<ABTestConfig> || null}
         */
        this.Config = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Config) {
            this.Config = new Array();
            for (let z in params.Config) {
                let obj = new ABTestConfig();
                obj.deserialize(params.Config[z]);
                this.Config.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Quick search template
 * @class
 */
class SearchTemplate extends  AbstractModel {
    constructor(){
        super();

        /**
         * Search name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Search index type
         * @type {string || null}
         */
        this.LogType = null;

        /**
         * Search statement
         * @type {string || null}
         */
        this.Condition = null;

        /**
         * Time range
         * @type {string || null}
         */
        this.TimeRange = null;

        /**
         * Converted search statement content
         * @type {string || null}
         */
        this.Query = null;

        /**
         * Search method. Valid values: `standard` (search in the search box); `simple` (search by filter).
         * @type {string || null}
         */
        this.Flag = null;

        /**
         * Displayed data
         * @type {string || null}
         */
        this.DisplayData = null;

        /**
         * Rule ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.LogType = 'LogType' in params ? params.LogType : null;
        this.Condition = 'Condition' in params ? params.Condition : null;
        this.TimeRange = 'TimeRange' in params ? params.TimeRange : null;
        this.Query = 'Query' in params ? params.Query : null;
        this.Flag = 'Flag' in params ? params.Flag : null;
        this.DisplayData = 'DisplayData' in params ? params.DisplayData : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * DescribeContainerSecEventSummary response structure.
 * @class
 */
class DescribeContainerSecEventSummaryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Pending escape event
         * @type {number || null}
         */
        this.UnhandledEscapeCnt = null;

        /**
         * Pending reverse shell event
         * @type {number || null}
         */
        this.UnhandledReverseShellCnt = null;

        /**
         * Pending high-risk syscall
         * @type {number || null}
         */
        this.UnhandledRiskSyscallCnt = null;

        /**
         * Pending abnormal process
         * @type {number || null}
         */
        this.UnhandledAbnormalProcessCnt = null;

        /**
         * Pending file tampering event
         * @type {number || null}
         */
        this.UnhandledFileCnt = null;

        /**
         * Pending trojan event
         * @type {number || null}
         */
        this.UnhandledVirusEventCnt = null;

        /**
         * Unhandled malicious outgoing connections
         * @type {number || null}
         */
        this.UnhandledMaliciousConnectionEventCnt = null;

        /**
         * Unhandled K8sApi events
Note: This field may return `null`, indicating that no valid value was found.
         * @type {number || null}
         */
        this.UnhandledK8sApiEventCnt = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UnhandledEscapeCnt = 'UnhandledEscapeCnt' in params ? params.UnhandledEscapeCnt : null;
        this.UnhandledReverseShellCnt = 'UnhandledReverseShellCnt' in params ? params.UnhandledReverseShellCnt : null;
        this.UnhandledRiskSyscallCnt = 'UnhandledRiskSyscallCnt' in params ? params.UnhandledRiskSyscallCnt : null;
        this.UnhandledAbnormalProcessCnt = 'UnhandledAbnormalProcessCnt' in params ? params.UnhandledAbnormalProcessCnt : null;
        this.UnhandledFileCnt = 'UnhandledFileCnt' in params ? params.UnhandledFileCnt : null;
        this.UnhandledVirusEventCnt = 'UnhandledVirusEventCnt' in params ? params.UnhandledVirusEventCnt : null;
        this.UnhandledMaliciousConnectionEventCnt = 'UnhandledMaliciousConnectionEventCnt' in params ? params.UnhandledMaliciousConnectionEventCnt : null;
        this.UnhandledK8sApiEventCnt = 'UnhandledK8sApiEventCnt' in params ? params.UnhandledK8sApiEventCnt : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Runtime security details - Basic process information
 * @class
 */
class ProcessDetailBaseInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Process name
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Process PID
         * @type {number || null}
         */
        this.ProcessId = null;

        /**
         * Process initiator
         * @type {string || null}
         */
        this.ProcessStartUser = null;

        /**
         * Process user group
         * @type {string || null}
         */
        this.ProcessUserGroup = null;

        /**
         * Process path
         * @type {string || null}
         */
        this.ProcessPath = null;

        /**
         * Process command line parameter
         * @type {string || null}
         */
        this.ProcessParam = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.ProcessId = 'ProcessId' in params ? params.ProcessId : null;
        this.ProcessStartUser = 'ProcessStartUser' in params ? params.ProcessStartUser : null;
        this.ProcessUserGroup = 'ProcessUserGroup' in params ? params.ProcessUserGroup : null;
        this.ProcessPath = 'ProcessPath' in params ? params.ProcessPath : null;
        this.ProcessParam = 'ProcessParam' in params ? params.ProcessParam : null;

    }
}

/**
 * DescribeAssetHostList request structure.
 * @class
 */
class DescribeAssetHostListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filters.
<li>`Status` - String - Optional - Agent status. Values: `ALL`; `UNINSTALL` (Not installed); `OFFLINE`, `ONLINE`. Default to `All` if it's not specified. </li>
<li>`HostName` - String - Optional - Server name</li>
<li>`Group - String - Optional - Server group</li>
<li>`HostIP` - String - Optional - Server IP</li>
<li>`HostID - String - Optional - Server ID</li>
<li>`DockerVersion` - String - Optional - Docker version</li>
<li>`MachineType` - String - Optional - Server type. Values: `ALL`; `CVM` (Cloud Virtual Machine); `ECM` (Edge Computing Machine); `LH` (Lighthouse), `BM` (Cloud Bare Metal); `Other` (non-Tencent Cloud server). Default to `ALL` if it's not specified.</li>
<li>`DockerStatus` - String - Optional - Docker installation status. Values: `ALL`; `INSTALL` (Installed); `UNINSTALL` (Not installed)</li>
<li>`ProjectID` - String - Optional - Project ID</li>
<li>`Tag:xxx(tag:key)` - String - Optional - Tag key-value pair; Example: `Filters":[{"Name":"tag:tke-kind","Values":["service"]}]`</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * CreateVulDefenceHostExportJob request structure.
 * @class
 */
class CreateVulDefenceHostExportJobRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filter
<li>Status- String - Required: No - Plugin status. Valid values: `SUCCESS` (normal); `FAIL` (abnormal); `NO_DEFENCE` (not defended).</li>
<li>KeyWords- string - Required: No - Server name/IP</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Maximum value: `100000`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field. Valid values: `ModifyTime` (update time); `CreateTime` (first enablement time).
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeImageAutoAuthorizedLogList request structure.
 * @class
 */
class DescribeImageAutoAuthorizedLogListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the automatic licensing task
         * @type {number || null}
         */
        this.TaskId = null;

        /**
         * `Status` (licensing result). Valid values: `SUCCESS` (success); `REACH_LIMIT` (reaching the upper limit on licenses); `LICENSE_INSUFFICIENT` (insufficient licenses).
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Sorting field: `AuthorizedTime`.
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order. Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * DescribeRiskSyscallEventsExport request structure.
 * @class
 */
class DescribeRiskSyscallEventsExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;
        this.ExportField = 'ExportField' in params ? params.ExportField : null;

    }
}

/**
 * DescribeRiskSyscallWhiteLists request structure.
 * @class
 */
class DescribeRiskSyscallWhiteListsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter parameter. "Filters":[{"Name":"Status","Values":["2"]}]
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Valid values: `asc`, `desc`.
         * @type {string || null}
         */
        this.Order = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.Order = 'Order' in params ? params.Order : null;
        this.By = 'By' in params ? params.By : null;

    }
}

/**
 * DescribeVulDefencePlugin request structure.
 * @class
 */
class DescribeVulDefencePluginRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Host ID or unique super node ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter condition
<li>
Status- String - Required: No - Plugin status. Valid values: `INJECTING` (injecting); `SUCCESS` (injected successfully); `FAIL` (injection failed); `TIMEOUT` (plugin timed out); `QUIT` (plugin exited).
</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * List of containers
 * @class
 */
class ContainerInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerID = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Container status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Operator
         * @type {string || null}
         */
        this.RunAs = null;

        /**
         * Command line
         * @type {string || null}
         */
        this.Cmd = null;

        /**
         * CPU utilization * 1000
         * @type {number || null}
         */
        this.CPUUsage = null;

        /**
         * Memory usage in KB
         * @type {number || null}
         */
        this.RamUsage = null;

        /**
         * Image name
         * @type {string || null}
         */
        this.ImageName = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.POD = null;

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Server IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Server name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIp = null;

        /**
         * Network status
`NORMAL`: 	Not isolated.
`ISOLATED`: 		Isolated.
`ISOLATING`: 		Isolating.
`ISOLATE_FAILED`: 	Isolation failed.
`RESTORING`: Recovering.
`RESTORE_FAILED`: Recovery failed.
         * @type {string || null}
         */
        this.NetStatus = null;

        /**
         * Sub-status of the network
         * @type {string || null}
         */
        this.NetSubStatus = null;

        /**
         * Isolation source
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IsolateSource = null;

        /**
         * Isolation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IsolateTime = null;

        /**
         * Super node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Node type. Valid values: `NORMAL` (general node), `SUPER` (super node)
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * UID of the super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

        /**
         * Number of CPU cores used by the pod
         * @type {number || null}
         */
        this.PodCpu = null;

        /**
         * Memory specification of the Pod
         * @type {number || null}
         */
        this.PodMem = null;

        /**
         * 
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * 
         * @type {string || null}
         */
        this.ClusterID = null;

        /**
         * 
         * @type {string || null}
         */
        this.PodUid = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ContainerID = 'ContainerID' in params ? params.ContainerID : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.RunAs = 'RunAs' in params ? params.RunAs : null;
        this.Cmd = 'Cmd' in params ? params.Cmd : null;
        this.CPUUsage = 'CPUUsage' in params ? params.CPUUsage : null;
        this.RamUsage = 'RamUsage' in params ? params.RamUsage : null;
        this.ImageName = 'ImageName' in params ? params.ImageName : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.POD = 'POD' in params ? params.POD : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.PublicIp = 'PublicIp' in params ? params.PublicIp : null;
        this.NetStatus = 'NetStatus' in params ? params.NetStatus : null;
        this.NetSubStatus = 'NetSubStatus' in params ? params.NetSubStatus : null;
        this.IsolateSource = 'IsolateSource' in params ? params.IsolateSource : null;
        this.IsolateTime = 'IsolateTime' in params ? params.IsolateTime : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;
        this.PodCpu = 'PodCpu' in params ? params.PodCpu : null;
        this.PodMem = 'PodMem' in params ? params.PodMem : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.ClusterID = 'ClusterID' in params ? params.ClusterID : null;
        this.PodUid = 'PodUid' in params ? params.PodUid : null;

    }
}

/**
 * DescribeAssetImageRegistryScanStatusOneKey response structure.
 * @class
 */
class DescribeAssetImageRegistryScanStatusOneKeyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of images
         * @type {number || null}
         */
        this.ImageTotal = null;

        /**
         * Number of scanned images
         * @type {number || null}
         */
        this.ImageScanCnt = null;

        /**
         * Scanning progress list
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ImageProgress> || null}
         */
        this.ImageStatus = null;

        /**
         * Number of successfully scanned images
         * @type {number || null}
         */
        this.SuccessCount = null;

        /**
         * Number of risks
         * @type {number || null}
         */
        this.RiskCount = null;

        /**
         * Scanning progress
         * @type {number || null}
         */
        this.Schedule = null;

        /**
         * Scanning status
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Remaining scan time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanRemainTime = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ImageTotal = 'ImageTotal' in params ? params.ImageTotal : null;
        this.ImageScanCnt = 'ImageScanCnt' in params ? params.ImageScanCnt : null;

        if (params.ImageStatus) {
            this.ImageStatus = new Array();
            for (let z in params.ImageStatus) {
                let obj = new ImageProgress();
                obj.deserialize(params.ImageStatus[z]);
                this.ImageStatus.push(obj);
            }
        }
        this.SuccessCount = 'SuccessCount' in params ? params.SuccessCount : null;
        this.RiskCount = 'RiskCount' in params ? params.RiskCount : null;
        this.Schedule = 'Schedule' in params ? params.Schedule : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.ScanRemainTime = 'ScanRemainTime' in params ? params.ScanRemainTime : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryRegistryDetail request structure.
 * @class
 */
class DescribeAssetImageRegistryRegistryDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Unique repository ID
         * @type {number || null}
         */
        this.RegistryId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RegistryId = 'RegistryId' in params ? params.RegistryId : null;

    }
}

/**
 * The structure returned by the audit of the network cluster asset
 * @class
 */
class NetworkAuditRecord extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Cluster name
         * @type {string || null}
         */
        this.ClusterName = null;

        /**
         * Cluster region
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Action
         * @type {string || null}
         */
        this.Action = null;

        /**
         * Operator
         * @type {string || null}
         */
        this.Operation = null;

        /**
         * Policy name
         * @type {string || null}
         */
        this.NetworkPolicyName = null;

        /**
         * Operation time
         * @type {string || null}
         */
        this.OperationTime = null;

        /**
         * Operator `appid`
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AppId = null;

        /**
         * Operator UIN
         * @type {string || null}
         */
        this.Uin = null;

        /**
         * The policy ID.
Note: This field may return·`null`, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.PolicyId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
        this.Region = 'Region' in params ? params.Region : null;
        this.Action = 'Action' in params ? params.Action : null;
        this.Operation = 'Operation' in params ? params.Operation : null;
        this.NetworkPolicyName = 'NetworkPolicyName' in params ? params.NetworkPolicyName : null;
        this.OperationTime = 'OperationTime' in params ? params.OperationTime : null;
        this.AppId = 'AppId' in params ? params.AppId : null;
        this.Uin = 'Uin' in params ? params.Uin : null;
        this.PolicyId = 'PolicyId' in params ? params.PolicyId : null;

    }
}

/**
 * UpdateAssetImageRegistryRegistryDetail request structure.
 * @class
 */
class UpdateAssetImageRegistryRegistryDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Repository name
         * @type {string || null}
         */
        this.Name = null;

        /**
         * Username
         * @type {string || null}
         */
        this.Username = null;

        /**
         * Password
         * @type {string || null}
         */
        this.Password = null;

        /**
         * Repository URL
         * @type {string || null}
         */
        this.Url = null;

        /**
         * Repository type, which can be `harbor`.
         * @type {string || null}
         */
        this.RegistryType = null;

        /**
         * Network type, which can be `public` (public network).
         * @type {string || null}
         */
        this.NetType = null;

        /**
         * Repository version
         * @type {string || null}
         */
        this.RegistryVersion = null;

        /**
         * Region. Default value: `default`.
         * @type {string || null}
         */
        this.RegistryRegion = null;

        /**
         * Speed limit
         * @type {number || null}
         */
        this.SpeedLimit = null;

        /**
         * Valid values: `0` (secure mode with certificate verification, which is the default value); `1` (unsecure mode that skips certificate verification).
         * @type {number || null}
         */
        this.Insecure = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Name = 'Name' in params ? params.Name : null;
        this.Username = 'Username' in params ? params.Username : null;
        this.Password = 'Password' in params ? params.Password : null;
        this.Url = 'Url' in params ? params.Url : null;
        this.RegistryType = 'RegistryType' in params ? params.RegistryType : null;
        this.NetType = 'NetType' in params ? params.NetType : null;
        this.RegistryVersion = 'RegistryVersion' in params ? params.RegistryVersion : null;
        this.RegistryRegion = 'RegistryRegion' in params ? params.RegistryRegion : null;
        this.SpeedLimit = 'SpeedLimit' in params ? params.SpeedLimit : null;
        this.Insecure = 'Insecure' in params ? params.Insecure : null;

    }
}

/**
 * DescribeK8sApiAbnormalRuleScopeList request structure.
 * @class
 */
class DescribeK8sApiAbnormalRuleScopeListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule ID
         * @type {string || null}
         */
        this.RuleID = null;

        /**
         * Offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * The number of results returned. Default value: 10. Maximum value: 100.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Filters.
<li>`Action` - String - Optional - Filter by action</li>
<li>`RiskLevel` - String - Optional - Threat level</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RuleID = 'RuleID' in params ? params.RuleID : null;
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

    }
}

/**
 * Information list of TCSS
 * @class
 */
class ServiceInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Service ID
         * @type {string || null}
         */
        this.ServiceID = null;

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostID = null;

        /**
         * Server IP
         * @type {string || null}
         */
        this.HostIP = null;

        /**
         * Container name
         * @type {string || null}
         */
        this.ContainerName = null;

        /**
         * Service name, such as `nginx` and `redis`
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Version
         * @type {string || null}
         */
        this.Version = null;

        /**
         * Account
         * @type {string || null}
         */
        this.RunAs = null;

        /**
         * Listened port
         * @type {Array.<string> || null}
         */
        this.Listen = null;

        /**
         * Configuration
         * @type {string || null}
         */
        this.Config = null;

        /**
         * Number of associated processes
         * @type {number || null}
         */
        this.ProcessCnt = null;

        /**
         * Access log
         * @type {string || null}
         */
        this.AccessLog = null;

        /**
         * Error log
         * @type {string || null}
         */
        this.ErrorLog = null;

        /**
         * Data directory
         * @type {string || null}
         */
        this.DataPath = null;

        /**
         * Web directory
         * @type {string || null}
         */
        this.WebRoot = null;

        /**
         * ID of the associated process
         * @type {Array.<number> || null}
         */
        this.Pids = null;

        /**
         * Service type. Valid values: `app`, `web`, `db`.
         * @type {string || null}
         */
        this.MainType = null;

        /**
         * Execution file
         * @type {string || null}
         */
        this.Exe = null;

        /**
         * Service command line parameter
         * @type {string || null}
         */
        this.Parameter = null;

        /**
         * Container ID
         * @type {string || null}
         */
        this.ContainerId = null;

        /**
         * Server name
         * @type {string || null}
         */
        this.HostName = null;

        /**
         * Public IP
         * @type {string || null}
         */
        this.PublicIp = null;

        /**
         * Node ID
         * @type {string || null}
         */
        this.NodeID = null;

        /**
         * Pod IP
         * @type {string || null}
         */
        this.PodIP = null;

        /**
         * Pod name
         * @type {string || null}
         */
        this.PodName = null;

        /**
         * Node type.
         * @type {string || null}
         */
        this.NodeType = null;

        /**
         * UID of the super node
         * @type {string || null}
         */
        this.NodeUniqueID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ServiceID = 'ServiceID' in params ? params.ServiceID : null;
        this.HostID = 'HostID' in params ? params.HostID : null;
        this.HostIP = 'HostIP' in params ? params.HostIP : null;
        this.ContainerName = 'ContainerName' in params ? params.ContainerName : null;
        this.Type = 'Type' in params ? params.Type : null;
        this.Version = 'Version' in params ? params.Version : null;
        this.RunAs = 'RunAs' in params ? params.RunAs : null;
        this.Listen = 'Listen' in params ? params.Listen : null;
        this.Config = 'Config' in params ? params.Config : null;
        this.ProcessCnt = 'ProcessCnt' in params ? params.ProcessCnt : null;
        this.AccessLog = 'AccessLog' in params ? params.AccessLog : null;
        this.ErrorLog = 'ErrorLog' in params ? params.ErrorLog : null;
        this.DataPath = 'DataPath' in params ? params.DataPath : null;
        this.WebRoot = 'WebRoot' in params ? params.WebRoot : null;
        this.Pids = 'Pids' in params ? params.Pids : null;
        this.MainType = 'MainType' in params ? params.MainType : null;
        this.Exe = 'Exe' in params ? params.Exe : null;
        this.Parameter = 'Parameter' in params ? params.Parameter : null;
        this.ContainerId = 'ContainerId' in params ? params.ContainerId : null;
        this.HostName = 'HostName' in params ? params.HostName : null;
        this.PublicIp = 'PublicIp' in params ? params.PublicIp : null;
        this.NodeID = 'NodeID' in params ? params.NodeID : null;
        this.PodIP = 'PodIP' in params ? params.PodIP : null;
        this.PodName = 'PodName' in params ? params.PodName : null;
        this.NodeType = 'NodeType' in params ? params.NodeType : null;
        this.NodeUniqueID = 'NodeUniqueID' in params ? params.NodeUniqueID : null;

    }
}

/**
 * AddEditReverseShellWhiteList request structure.
 * @class
 */
class AddEditReverseShellWhiteListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Information of the allowed item to be added or edited. When an allowed item is added, `WhiteListInfo.id` can be empty; when an allowed item is edited, `WhiteListInfo.id` cannot be empty.
         * @type {ReverseShellWhiteListInfo || null}
         */
        this.WhiteListInfo = null;

        /**
         * Used only when an event is added to the allowlist
         * @type {string || null}
         */
        this.EventId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.WhiteListInfo) {
            let obj = new ReverseShellWhiteListInfo();
            obj.deserialize(params.WhiteListInfo)
            this.WhiteListInfo = obj;
        }
        this.EventId = 'EventId' in params ? params.EventId : null;

    }
}

/**
 * Repository images ignored by the vulnerability scan
 * @class
 */
class VulIgnoreRegistryImage extends  AbstractModel {
    constructor(){
        super();

        /**
         * Record ID
         * @type {number || null}
         */
        this.ID = null;

        /**
         * Repository name
         * @type {string || null}
         */
        this.RegistryName = null;

        /**
         * Image tag
         * @type {string || null}
         */
        this.ImageVersion = null;

        /**
         * Repository address
         * @type {string || null}
         */
        this.RegistryPath = null;

        /**
         * Image ID
         * @type {string || null}
         */
        this.ImageID = null;

        /**
         * POC ID
         * @type {string || null}
         */
        this.PocID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ID = 'ID' in params ? params.ID : null;
        this.RegistryName = 'RegistryName' in params ? params.RegistryName : null;
        this.ImageVersion = 'ImageVersion' in params ? params.ImageVersion : null;
        this.RegistryPath = 'RegistryPath' in params ? params.RegistryPath : null;
        this.ImageID = 'ImageID' in params ? params.ImageID : null;
        this.PocID = 'PocID' in params ? params.PocID : null;

    }
}

/**
 * DescribeVirusTaskList request structure.
 * @class
 */
class DescribeVirusTaskListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.TaskId = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>ContainerName- String - Required: No - Container name</li>
<li>ContainerId - String - Required: No - Container ID</li>
<li>Hostname - String - Required: No - Server name</li>
<li>HostIp- String - Required: No - Server IP</li>
<li>ImageId- String - Required: No - Image ID</li>
<li>ImageName- String - Required: No - Image name</li>
<li>Status- String - Required: No - Status</li>
         * @type {Array.<RunTimeFilters> || null}
         */
        this.Filters = null;

        /**
         * Sorting field
         * @type {string || null}
         */
        this.By = null;

        /**
         * Sorting order
         * @type {string || null}
         */
        this.Order = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new RunTimeFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }
        this.By = 'By' in params ? params.By : null;
        this.Order = 'Order' in params ? params.Order : null;

    }
}

/**
 * CreateRiskDnsEventExportJob response structure.
 * @class
 */
class CreateRiskDnsEventExportJobResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the exportation job. You can query the job progress by using this ID on the console.
         * @type {string || null}
         */
        this.JobId = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.JobId = 'JobId' in params ? params.JobId : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryVirusListExport request structure.
 * @class
 */
class DescribeAssetImageRegistryVirusListExportRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Export field
         * @type {Array.<string> || null}
         */
        this.ExportField = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Filter
<li>Level- String - Required: No - Vulnerability level</li>
<li>Name - String - Required: No - Vulnerability name</li>
         * @type {Array.<AssetFilters> || null}
         */
        this.Filters = null;

        /**
         * Image information
         * @type {ImageInfo || null}
         */
        this.ImageInfo = null;

        /**
         * Image ID
         * @type {number || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ExportField = 'ExportField' in params ? params.ExportField : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

        if (params.Filters) {
            this.Filters = new Array();
            for (let z in params.Filters) {
                let obj = new AssetFilters();
                obj.deserialize(params.Filters[z]);
                this.Filters.push(obj);
            }
        }

        if (params.ImageInfo) {
            let obj = new ImageInfo();
            obj.deserialize(params.ImageInfo)
            this.ImageInfo = obj;
        }
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * DescribeWebVulList response structure.
 * @class
 */
class DescribeWebVulListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of vulnerabilities
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List of vulnerabilities
         * @type {Array.<VulInfo> || null}
         */
        this.List = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.List) {
            this.List = new Array();
            for (let z in params.List) {
                let obj = new VulInfo();
                obj.deserialize(params.List[z]);
                this.List.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeVulScanInfo response structure.
 * @class
 */
class DescribeVulScanInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of local images scanned this time
         * @type {number || null}
         */
        this.LocalImageScanCount = null;

        /**
         * Number of ignored vulnerabilities
         * @type {number || null}
         */
        this.IgnoreVulCount = null;

        /**
         * Start time of the vulnerability scan
         * @type {string || null}
         */
        this.ScanStartTime = null;

        /**
         * End time of the vulnerability scan
         * @type {string || null}
         */
        this.ScanEndTime = null;

        /**
         * Number of images found to be at risk
         * @type {number || null}
         */
        this.FoundRiskImageCount = null;

        /**
         * Number of vulnerabilities found in local images
         * @type {number || null}
         */
        this.FoundVulCount = null;

        /**
         * Scanning progress
         * @type {number || null}
         */
        this.ScanProgress = null;

        /**
         * Total number of repository images scanned this time
         * @type {number || null}
         */
        this.RegistryImageScanCount = null;

        /**
         * ID of the last task to scan local images for vulnerabilities
         * @type {number || null}
         */
        this.LocalTaskID = null;

        /**
         * Scanning status. Valid values: `NOT_SCAN` (not scanned); `SCANNING` (scanning); `SCANNED` (scanned); `CANCELED` (stopped).
         * @type {string || null}
         */
        this.Status = null;

        /**
         * Remaining time in seconds
         * @type {number || null}
         */
        this.RemainingTime = null;

        /**
         * ID of the last task to scan repository images for vulnerabilities
         * @type {number || null}
         */
        this.RegistryTaskID = null;

        /**
         * Number of vulnerabilities found in the repository
         * @type {number || null}
         */
        this.RegistryFoundVulCount = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.LocalImageScanCount = 'LocalImageScanCount' in params ? params.LocalImageScanCount : null;
        this.IgnoreVulCount = 'IgnoreVulCount' in params ? params.IgnoreVulCount : null;
        this.ScanStartTime = 'ScanStartTime' in params ? params.ScanStartTime : null;
        this.ScanEndTime = 'ScanEndTime' in params ? params.ScanEndTime : null;
        this.FoundRiskImageCount = 'FoundRiskImageCount' in params ? params.FoundRiskImageCount : null;
        this.FoundVulCount = 'FoundVulCount' in params ? params.FoundVulCount : null;
        this.ScanProgress = 'ScanProgress' in params ? params.ScanProgress : null;
        this.RegistryImageScanCount = 'RegistryImageScanCount' in params ? params.RegistryImageScanCount : null;
        this.LocalTaskID = 'LocalTaskID' in params ? params.LocalTaskID : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.RemainingTime = 'RemainingTime' in params ? params.RemainingTime : null;
        this.RegistryTaskID = 'RegistryTaskID' in params ? params.RegistryTaskID : null;
        this.RegistryFoundVulCount = 'RegistryFoundVulCount' in params ? params.RegistryFoundVulCount : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetImageRegistryListExport response structure.
 * @class
 */
class DescribeAssetImageRegistryListExportResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Excel file download URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DownloadUrl = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DownloadUrl = 'DownloadUrl' in params ? params.DownloadUrl : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Container runtime security - File attribute information
 * @class
 */
class FileAttributeInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Filename
         * @type {string || null}
         */
        this.FileName = null;

        /**
         * File type
         * @type {string || null}
         */
        this.FileType = null;

        /**
         * File size in bytes
         * @type {number || null}
         */
        this.FileSize = null;

        /**
         * File path
         * @type {string || null}
         */
        this.FilePath = null;

        /**
         * File creation time
         * @type {string || null}
         */
        this.FileCreateTime = null;

        /**
         * Time when the file is last tampered with
         * @type {string || null}
         */
        this.LatestTamperedFileMTime = null;

        /**
         * Content of the new file
         * @type {string || null}
         */
        this.NewFile = null;

        /**
         * Differences between old and new files
         * @type {string || null}
         */
        this.FileDiff = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.FileName = 'FileName' in params ? params.FileName : null;
        this.FileType = 'FileType' in params ? params.FileType : null;
        this.FileSize = 'FileSize' in params ? params.FileSize : null;
        this.FilePath = 'FilePath' in params ? params.FilePath : null;
        this.FileCreateTime = 'FileCreateTime' in params ? params.FileCreateTime : null;
        this.LatestTamperedFileMTime = 'LatestTamperedFileMTime' in params ? params.LatestTamperedFileMTime : null;
        this.NewFile = 'NewFile' in params ? params.NewFile : null;
        this.FileDiff = 'FileDiff' in params ? params.FileDiff : null;

    }
}

/**
 * DescribeVulTendency request structure.
 * @class
 */
class DescribeVulTendencyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Start time
         * @type {string || null}
         */
        this.StartTime = null;

        /**
         * End time
         * @type {string || null}
         */
        this.EndTime = null;

        /**
         * Enumeration:
`LATEST`: Latest version.
`CONTAINER`: Running container.
         * @type {string || null}
         */
        this.SphereOfInfluence = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.StartTime = 'StartTime' in params ? params.StartTime : null;
        this.EndTime = 'EndTime' in params ? params.EndTime : null;
        this.SphereOfInfluence = 'SphereOfInfluence' in params ? params.SphereOfInfluence : null;

    }
}

/**
 * DescribePostPayDetail request structure.
 * @class
 */
class DescribePostPayDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.Offset = 'Offset' in params ? params.Offset : null;

    }
}

/**
 * ModifyK8sApiAbnormalEventStatus response structure.
 * @class
 */
class ModifyK8sApiAbnormalEventStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSecLogDeliveryKafkaOptions response structure.
 * @class
 */
class DescribeSecLogDeliveryKafkaOptionsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Instance list
         * @type {Array.<CKafkaInstanceInfo> || null}
         */
        this.InstanceList = null;

        /**
         * Region list
         * @type {Array.<RegionInfo> || null}
         */
        this.RegionList = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.InstanceList) {
            this.InstanceList = new Array();
            for (let z in params.InstanceList) {
                let obj = new CKafkaInstanceInfo();
                obj.deserialize(params.InstanceList[z]);
                this.InstanceList.push(obj);
            }
        }

        if (params.RegionList) {
            this.RegionList = new Array();
            for (let z in params.RegionList) {
                let obj = new RegionInfo();
                obj.deserialize(params.RegionList[z]);
                this.RegionList.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeAssetHostDetail request structure.
 * @class
 */
class DescribeAssetHostDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Server ID
         * @type {string || null}
         */
        this.HostId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.HostId = 'HostId' in params ? params.HostId : null;

    }
}

/**
 * DescribeRefreshTask response structure.
 * @class
 */
class DescribeRefreshTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Refresh task status. Valid values: `Task_New`, `Task_Running`, `Task_Finish`, `Task_Error`, `Task_NoExist`.
         * @type {string || null}
         */
        this.TaskStatus = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskStatus = 'TaskStatus' in params ? params.TaskStatus : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of an allowed reverse shell
 * @class
 */
class ReverseShellWhiteListInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Target IP
         * @type {string || null}
         */
        this.DstIp = null;

        /**
         * Target port
         * @type {string || null}
         */
        this.DstPort = null;

        /**
         * Target process
         * @type {string || null}
         */
        this.ProcessName = null;

        /**
         * Array of image IDs. An empty array indicates all.
         * @type {Array.<string> || null}
         */
        this.ImageIds = null;

        /**
         * Allowed item ID, which is empty if the item is newly created.
         * @type {string || null}
         */
        this.Id = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DstIp = 'DstIp' in params ? params.DstIp : null;
        this.DstPort = 'DstPort' in params ? params.DstPort : null;
        this.ProcessName = 'ProcessName' in params ? params.ProcessName : null;
        this.ImageIds = 'ImageIds' in params ? params.ImageIds : null;
        this.Id = 'Id' in params ? params.Id : null;

    }
}

/**
 * UpdateNetworkFirewallPolicyDetail request structure.
 * @class
 */
class UpdateNetworkFirewallPolicyDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Cluster ID
         * @type {string || null}
         */
        this.ClusterId = null;

        /**
         * Policy ID
         * @type {number || null}
         */
        this.Id = null;

        /**
         * Inbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.FromPolicyRule = null;

        /**
         * Outbound rule

`1`: Allow all.

`2`: Reject all.

`3`: Custom.
         * @type {number || null}
         */
        this.ToPolicyRule = null;

        /**
         * Pod selector
         * @type {string || null}
         */
        this.PodSelector = null;

        /**
         * Namespace
         * @type {string || null}
         */
        this.Namespace = null;

        /**
         * Policy description
         * @type {string || null}
         */
        this.Description = null;

        /**
         * Custom rule
         * @type {Array.<NetworkCustomPolicy> || null}
         */
        this.CustomPolicy = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
        this.Id = 'Id' in params ? params.Id : null;
        this.FromPolicyRule = 'FromPolicyRule' in params ? params.FromPolicyRule : null;
        this.ToPolicyRule = 'ToPolicyRule' in params ? params.ToPolicyRule : null;
        this.PodSelector = 'PodSelector' in params ? params.PodSelector : null;
        this.Namespace = 'Namespace' in params ? params.Namespace : null;
        this.Description = 'Description' in params ? params.Description : null;

        if (params.CustomPolicy) {
            this.CustomPolicy = new Array();
            for (let z in params.CustomPolicy) {
                let obj = new NetworkCustomPolicy();
                obj.deserialize(params.CustomPolicy[z]);
                this.CustomPolicy.push(obj);
            }
        }

    }
}

/**
 * Enablement/Disablement of the container escape scan policy
 * @class
 */
class EscapeRuleEnabled extends  AbstractModel {
    constructor(){
        super();

        /**
         * Rule type
   `ESCAPE_HOST_ACESS_FILE`: Host file access escape.
   `ESCAPE_MOUNT_NAMESPACE`: Mount namespace escape.
   `ESCAPE_PRIVILEDGE`: Program privilege escalation escape.
   `ESCAPE_PRIVILEDGE_CONTAINER_START`: Privileged container startup escape.
   `ESCAPE_MOUNT_SENSITIVE_PTAH`: Sensitive path mount.
   `ESCAPE_SYSCALL`: Syscall escape.
         * @type {string || null}
         */
        this.Type = null;

        /**
         * Whether to enable. Valid values: `false` (no); `true` (yes).
         * @type {boolean || null}
         */
        this.IsEnable = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Type = 'Type' in params ? params.Type : null;
        this.IsEnable = 'IsEnable' in params ? params.IsEnable : null;

    }
}

/**
 * DescribeK8sApiAbnormalEventInfo request structure.
 * @class
 */
class DescribeK8sApiAbnormalEventInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Event ID
         * @type {number || null}
         */
        this.ID = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ID = 'ID' in params ? params.ID : null;

    }
}

/**
 * DescribeSearchTemplates request structure.
 * @class
 */
class DescribeSearchTemplatesRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Offset. Default value: `0`.
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results to be returned. Default value: `10`. Maximum value: `100`.
         * @type {number || null}
         */
        this.Limit = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;

    }
}

module.exports = {
    CreateVirusScanAgainRequest: CreateVirusScanAgainRequest,
    DescribeSecLogDeliveryKafkaSettingRequest: DescribeSecLogDeliveryKafkaSettingRequest,
    DescribeSearchTemplatesResponse: DescribeSearchTemplatesResponse,
    ScanIgnoreVul: ScanIgnoreVul,
    UpdateImageRegistryTimingScanTaskResponse: UpdateImageRegistryTimingScanTaskResponse,
    DescribeScanIgnoreVulListResponse: DescribeScanIgnoreVulListResponse,
    ModifyVulDefenceEventStatusRequest: ModifyVulDefenceEventStatusRequest,
    ModifyVirusAutoIsolateExampleSwitchResponse: ModifyVirusAutoIsolateExampleSwitchResponse,
    CKafkaTopicInfo: CKafkaTopicInfo,
    CreateVulExportJobResponse: CreateVulExportJobResponse,
    DescribeUnfinishRefreshTaskResponse: DescribeUnfinishRefreshTaskResponse,
    CreateComponentExportJobRequest: CreateComponentExportJobRequest,
    ComplianceBenchmarkStandardEnable: ComplianceBenchmarkStandardEnable,
    CreateNetworkFirewallUndoPublishRequest: CreateNetworkFirewallUndoPublishRequest,
    CreateRefreshTaskResponse: CreateRefreshTaskResponse,
    CreateVulDefenceHostExportJobResponse: CreateVulDefenceHostExportJobResponse,
    ImageVul: ImageVul,
    CreateVulImageExportJobResponse: CreateVulImageExportJobResponse,
    AbnormalProcessEventDescription: AbnormalProcessEventDescription,
    CompliancePeriodTaskRule: CompliancePeriodTaskRule,
    DescribeVirusScanTimeoutSettingResponse: DescribeVirusScanTimeoutSettingResponse,
    DescribeVulImageListResponse: DescribeVulImageListResponse,
    CreateVulExportJobRequest: CreateVulExportJobRequest,
    DescribeNetworkFirewallNamespaceLabelListResponse: DescribeNetworkFirewallNamespaceLabelListResponse,
    ClusterCreateComponentItem: ClusterCreateComponentItem,
    DescribeAssetComponentListResponse: DescribeAssetComponentListResponse,
    DescribeVulImageListRequest: DescribeVulImageListRequest,
    DescribeAssetImageRegistryVulListResponse: DescribeAssetImageRegistryVulListResponse,
    VulScanImageInfo: VulScanImageInfo,
    AddAssetImageRegistryRegistryDetailResponse: AddAssetImageRegistryRegistryDetailResponse,
    DeleteCompliancePolicyItemFromWhitelistRequest: DeleteCompliancePolicyItemFromWhitelistRequest,
    DescribeAssetImageDetailRequest: DescribeAssetImageDetailRequest,
    VulIgnoreLocalImage: VulIgnoreLocalImage,
    ModifyK8sApiAbnormalRuleInfoResponse: ModifyK8sApiAbnormalRuleInfoResponse,
    ModifyAssetImageScanStopResponse: ModifyAssetImageScanStopResponse,
    AddAssetImageRegistryRegistryDetailRequest: AddAssetImageRegistryRegistryDetailRequest,
    AddIgnoreVulResponse: AddIgnoreVulResponse,
    VulDefenceEventTendency: VulDefenceEventTendency,
    DescribeNetworkFirewallClusterRefreshStatusRequest: DescribeNetworkFirewallClusterRefreshStatusRequest,
    DescribeAssetImageRegistryVirusListExportResponse: DescribeAssetImageRegistryVirusListExportResponse,
    DescribeSecEventsTendencyResponse: DescribeSecEventsTendencyResponse,
    DescribeAccessControlEventsExportResponse: DescribeAccessControlEventsExportResponse,
    DescribeImageRiskSummaryResponse: DescribeImageRiskSummaryResponse,
    DescribeNetworkFirewallPolicyDetailRequest: DescribeNetworkFirewallPolicyDetailRequest,
    CreateAccessControlsRuleExportJobResponse: CreateAccessControlsRuleExportJobResponse,
    ModifyAssetImageRegistryScanStopResponse: ModifyAssetImageRegistryScanStopResponse,
    DescribeAssetImageRegistryRiskListExportRequest: DescribeAssetImageRegistryRiskListExportRequest,
    SetCheckModeResponse: SetCheckModeResponse,
    SecLogJoinObjectInfo: SecLogJoinObjectInfo,
    DescribeVulImageSummaryRequest: DescribeVulImageSummaryRequest,
    DescribeAssetImageScanStatusResponse: DescribeAssetImageScanStatusResponse,
    DescribeVirusAutoIsolateSampleDetailResponse: DescribeVirusAutoIsolateSampleDetailResponse,
    DescribeVulDefenceEventTendencyRequest: DescribeVulDefenceEventTendencyRequest,
    DescribeAbnormalProcessRulesExportRequest: DescribeAbnormalProcessRulesExportRequest,
    DescribePurchaseStateInfoResponse: DescribePurchaseStateInfoResponse,
    SoftQuotaDayInfo: SoftQuotaDayInfo,
    DescribeVulDefencePluginResponse: DescribeVulDefencePluginResponse,
    DescribeAssetImageRegistryRegistryDetailResponse: DescribeAssetImageRegistryRegistryDetailResponse,
    RunTimeFilters: RunTimeFilters,
    DescribeVirusDetailRequest: DescribeVirusDetailRequest,
    DeleteEscapeWhiteListRequest: DeleteEscapeWhiteListRequest,
    DescribeClusterDetailRequest: DescribeClusterDetailRequest,
    ModifyK8sApiAbnormalRuleInfoRequest: ModifyK8sApiAbnormalRuleInfoRequest,
    UpdateAndPublishNetworkFirewallPolicyDetailResponse: UpdateAndPublishNetworkFirewallPolicyDetailResponse,
    DescribeAssetImageListRequest: DescribeAssetImageListRequest,
    DescribeSecLogDeliveryClsOptionsRequest: DescribeSecLogDeliveryClsOptionsRequest,
    DescribeRiskSyscallWhiteListDetailRequest: DescribeRiskSyscallWhiteListDetailRequest,
    DescribeK8sApiAbnormalRuleScopeListResponse: DescribeK8sApiAbnormalRuleScopeListResponse,
    ModifyAbnormalProcessRuleStatusRequest: ModifyAbnormalProcessRuleStatusRequest,
    DescribeVulTendencyResponse: DescribeVulTendencyResponse,
    ProcessDetailInfo: ProcessDetailInfo,
    DescribeAutoAuthorizedRuleHostRequest: DescribeAutoAuthorizedRuleHostRequest,
    ScanCompliancePolicyItemsRequest: ScanCompliancePolicyItemsRequest,
    DescribeAgentDaemonSetCmdResponse: DescribeAgentDaemonSetCmdResponse,
    DescribeAssetImageVirusListExportRequest: DescribeAssetImageVirusListExportRequest,
    CreateAssetImageScanTaskResponse: CreateAssetImageScanTaskResponse,
    DescribeTaskResultSummaryRequest: DescribeTaskResultSummaryRequest,
    DeleteAccessControlRulesRequest: DeleteAccessControlRulesRequest,
    DeleteRiskSyscallEventsResponse: DeleteRiskSyscallEventsResponse,
    OpenTcssTrialResponse: OpenTcssTrialResponse,
    DescribeSearchExportListResponse: DescribeSearchExportListResponse,
    CreateVulScanTaskRequest: CreateVulScanTaskRequest,
    ComplianceK8SDetailInfo: ComplianceK8SDetailInfo,
    AccessControlEventDescription: AccessControlEventDescription,
    DescribeAccessControlEventsResponse: DescribeAccessControlEventsResponse,
    SecLogDeliveryKafkaSettingInfo: SecLogDeliveryKafkaSettingInfo,
    DescribeRiskSyscallWhiteListsResponse: DescribeRiskSyscallWhiteListsResponse,
    CreateNetworkFirewallPolicyDiscoverResponse: CreateNetworkFirewallPolicyDiscoverResponse,
    ComplianceAssetDetailInfo: ComplianceAssetDetailInfo,
    UnauthorizedCoresTendency: UnauthorizedCoresTendency,
    DescribeRiskSyscallEventsResponse: DescribeRiskSyscallEventsResponse,
    AssetClusterListItem: AssetClusterListItem,
    NetworkPolicyInfoItem: NetworkPolicyInfoItem,
    DescribeAssetImageRiskListResponse: DescribeAssetImageRiskListResponse,
    CreateEmergencyVulExportJobResponse: CreateEmergencyVulExportJobResponse,
    CreateVulDefenceEventExportJobRequest: CreateVulDefenceEventExportJobRequest,
    ClusterCustomParameters: ClusterCustomParameters,
    DeleteIgnoreVulRequest: DeleteIgnoreVulRequest,
    DescribeReverseShellEventsResponse: DescribeReverseShellEventsResponse,
    ImageSimpleInfo: ImageSimpleInfo,
    DescribeComplianceAssetDetailInfoRequest: DescribeComplianceAssetDetailInfoRequest,
    NetworkPeer: NetworkPeer,
    DescribeESAggregationsResponse: DescribeESAggregationsResponse,
    CreateExportComplianceStatusListJobResponse: CreateExportComplianceStatusListJobResponse,
    DescribeAssetAppServiceListResponse: DescribeAssetAppServiceListResponse,
    DescribeAssetSyncLastTimeRequest: DescribeAssetSyncLastTimeRequest,
    ImageComponent: ImageComponent,
    ComplianceBenchmarkStandard: ComplianceBenchmarkStandard,
    DescribeEscapeRuleInfoResponse: DescribeEscapeRuleInfoResponse,
    VulTendencyInfo: VulTendencyInfo,
    DescribePurchaseStateInfoRequest: DescribePurchaseStateInfoRequest,
    AddCompliancePolicyItemToWhitelistRequest: AddCompliancePolicyItemToWhitelistRequest,
    ComplianceAssetSummary: ComplianceAssetSummary,
    AbnormalProcessEventTendencyInfo: AbnormalProcessEventTendencyInfo,
    DescribeAssetClusterListResponse: DescribeAssetClusterListResponse,
    EscapeRule: EscapeRule,
    CompliancePeriodTask: CompliancePeriodTask,
    DescribeAssetImageRegistryRiskListExportResponse: DescribeAssetImageRegistryRiskListExportResponse,
    SecLogAlertMsgInfo: SecLogAlertMsgInfo,
    AutoAuthorizedImageInfo: AutoAuthorizedImageInfo,
    UpdateAssetImageRegistryRegistryDetailResponse: UpdateAssetImageRegistryRegistryDetailResponse,
    ModifySecLogDeliveryKafkaSettingResponse: ModifySecLogDeliveryKafkaSettingResponse,
    DeleteAbnormalProcessRulesResponse: DeleteAbnormalProcessRulesResponse,
    ImageRepoRegistryInfo: ImageRepoRegistryInfo,
    RuleBaseInfo: RuleBaseInfo,
    ProcessInfo: ProcessInfo,
    ImageInfo: ImageInfo,
    DescribeReverseShellDetailRequest: DescribeReverseShellDetailRequest,
    ModifyReverseShellStatusRequest: ModifyReverseShellStatusRequest,
    DescribePublicKeyResponse: DescribePublicKeyResponse,
    SetCheckModeRequest: SetCheckModeRequest,
    DescribeAssetImageRiskListExportRequest: DescribeAssetImageRiskListExportRequest,
    DescribeAffectedWorkloadListRequest: DescribeAffectedWorkloadListRequest,
    DescribeVulDefenceHostRequest: DescribeVulDefenceHostRequest,
    EmergencyVulInfo: EmergencyVulInfo,
    ExportVirusListRequest: ExportVirusListRequest,
    CreateWebVulExportJobRequest: CreateWebVulExportJobRequest,
    CreateK8sApiAbnormalEventExportJobRequest: CreateK8sApiAbnormalEventExportJobRequest,
    DescribeK8sApiAbnormalTendencyResponse: DescribeK8sApiAbnormalTendencyResponse,
    K8sApiAbnormalEventListItem: K8sApiAbnormalEventListItem,
    SecLogJoinInfo: SecLogJoinInfo,
    PromotionActivityContent: PromotionActivityContent,
    DescribeAffectedClusterCountRequest: DescribeAffectedClusterCountRequest,
    DescribeAssetImageRegistryVulListExportRequest: DescribeAssetImageRegistryVulListExportRequest,
    AddEditRiskSyscallWhiteListRequest: AddEditRiskSyscallWhiteListRequest,
    K8sApiAbnormalRuleInfo: K8sApiAbnormalRuleInfo,
    ReverseShellEventInfo: ReverseShellEventInfo,
    DescribeSecLogJoinObjectListResponse: DescribeSecLogJoinObjectListResponse,
    CreateSystemVulExportJobRequest: CreateSystemVulExportJobRequest,
    DescribeVulScanInfoRequest: DescribeVulScanInfoRequest,
    DescribeRiskSyscallDetailRequest: DescribeRiskSyscallDetailRequest,
    ScanComplianceAssetsByPolicyItemRequest: ScanComplianceAssetsByPolicyItemRequest,
    DescribeAbnormalProcessRulesRequest: DescribeAbnormalProcessRulesRequest,
    DescribeAssetImageRegistryListResponse: DescribeAssetImageRegistryListResponse,
    DescribeVirusAutoIsolateSampleDetailRequest: DescribeVirusAutoIsolateSampleDetailRequest,
    DescribeAssetImageVirusListResponse: DescribeAssetImageVirusListResponse,
    DeleteComplianceAssetPolicySetFromWhitelistResponse: DeleteComplianceAssetPolicySetFromWhitelistResponse,
    DescribeK8sApiAbnormalSummaryResponse: DescribeK8sApiAbnormalSummaryResponse,
    DescribeSecLogJoinTypeListResponse: DescribeSecLogJoinTypeListResponse,
    DescribeAssetSyncLastTimeResponse: DescribeAssetSyncLastTimeResponse,
    CreateAssetImageScanSettingRequest: CreateAssetImageScanSettingRequest,
    EscapeWhiteListInfo: EscapeWhiteListInfo,
    CreateNetworkFirewallUndoPublishResponse: CreateNetworkFirewallUndoPublishResponse,
    DescribeIndexListResponse: DescribeIndexListResponse,
    ModifyVulDefenceSettingRequest: ModifyVulDefenceSettingRequest,
    DescribeAssetSummaryResponse: DescribeAssetSummaryResponse,
    CreateNetworkFirewallClusterRefreshResponse: CreateNetworkFirewallClusterRefreshResponse,
    CreateComponentExportJobResponse: CreateComponentExportJobResponse,
    DescribeReverseShellWhiteListsResponse: DescribeReverseShellWhiteListsResponse,
    DescribeVulContainerListRequest: DescribeVulContainerListRequest,
    DeleteReverseShellEventsRequest: DeleteReverseShellEventsRequest,
    ClsLogsetInfo: ClsLogsetInfo,
    ModifyEscapeEventStatusResponse: ModifyEscapeEventStatusResponse,
    CheckRepeatAssetImageRegistryResponse: CheckRepeatAssetImageRegistryResponse,
    VulDefenceEvent: VulDefenceEvent,
    DescribeAccessControlEventsExportRequest: DescribeAccessControlEventsExportRequest,
    ExportVirusListResponse: ExportVirusListResponse,
    DeleteReverseShellWhiteListsResponse: DeleteReverseShellWhiteListsResponse,
    DescribeNetworkFirewallAuditRecordResponse: DescribeNetworkFirewallAuditRecordResponse,
    DescribeSecLogCleanSettingInfoResponse: DescribeSecLogCleanSettingInfoResponse,
    UpdateNetworkFirewallPolicyYamlDetailResponse: UpdateNetworkFirewallPolicyYamlDetailResponse,
    DescribeAssetImageBindRuleInfoResponse: DescribeAssetImageBindRuleInfoResponse,
    DescribeESHitsRequest: DescribeESHitsRequest,
    DescribeTcssSummaryResponse: DescribeTcssSummaryResponse,
    DeleteRiskSyscallEventsRequest: DeleteRiskSyscallEventsRequest,
    DescribeAssetContainerListRequest: DescribeAssetContainerListRequest,
    DescribeEscapeSafeStateResponse: DescribeEscapeSafeStateResponse,
    DescribeImageRiskSummaryRequest: DescribeImageRiskSummaryRequest,
    CreateDefenceVulExportJobResponse: CreateDefenceVulExportJobResponse,
    StopVirusScanTaskRequest: StopVirusScanTaskRequest,
    AbnormalProcessRuleInfo: AbnormalProcessRuleInfo,
    ScanComplianceAssetsByPolicyItemResponse: ScanComplianceAssetsByPolicyItemResponse,
    CreateRiskDnsEventExportJobRequest: CreateRiskDnsEventExportJobRequest,
    ComplianceWhitelistItem: ComplianceWhitelistItem,
    DescribeAssetPortListRequest: DescribeAssetPortListRequest,
    DescribeComplianceTaskPolicyItemSummaryListResponse: DescribeComplianceTaskPolicyItemSummaryListResponse,
    ComplianceContainerDetailInfo: ComplianceContainerDetailInfo,
    DescribeReverseShellEventsRequest: DescribeReverseShellEventsRequest,
    AddNetworkFirewallPolicyDetailResponse: AddNetworkFirewallPolicyDetailResponse,
    DescribeNetworkFirewallPolicyStatusRequest: DescribeNetworkFirewallPolicyStatusRequest,
    DescribeSecLogKafkaUINResponse: DescribeSecLogKafkaUINResponse,
    DescribeAbnormalProcessRuleDetailRequest: DescribeAbnormalProcessRuleDetailRequest,
    DescribeLogStorageStatisticRequest: DescribeLogStorageStatisticRequest,
    VirusInfo: VirusInfo,
    DescribeVulIgnoreRegistryImageListRequest: DescribeVulIgnoreRegistryImageListRequest,
    AddEditImageAutoAuthorizedRuleResponse: AddEditImageAutoAuthorizedRuleResponse,
    ClusterCheckTaskItem: ClusterCheckTaskItem,
    DescribeVirusAutoIsolateSampleListRequest: DescribeVirusAutoIsolateSampleListRequest,
    ModifySecLogJoinObjectsResponse: ModifySecLogJoinObjectsResponse,
    DescribeAffectedClusterCountResponse: DescribeAffectedClusterCountResponse,
    RenewImageAuthorizeStateRequest: RenewImageAuthorizeStateRequest,
    DescribeVirusAutoIsolateSettingRequest: DescribeVirusAutoIsolateSettingRequest,
    CreateAssetImageRegistryScanTaskOneKeyRequest: CreateAssetImageRegistryScanTaskOneKeyRequest,
    RemoveAssetImageRegistryRegistryDetailRequest: RemoveAssetImageRegistryRegistryDetailRequest,
    NetworkCustomPolicy: NetworkCustomPolicy,
    DeleteNetworkFirewallPolicyDetailRequest: DeleteNetworkFirewallPolicyDetailRequest,
    ModifyEscapeEventStatusRequest: ModifyEscapeEventStatusRequest,
    ImagesBindRuleInfo: ImagesBindRuleInfo,
    ImageHost: ImageHost,
    AddComplianceAssetPolicySetToWhitelistResponse: AddComplianceAssetPolicySetToWhitelistResponse,
    DescribeUnauthorizedCoresTendencyResponse: DescribeUnauthorizedCoresTendencyResponse,
    DescribeNetworkFirewallPolicyStatusResponse: DescribeNetworkFirewallPolicyStatusResponse,
    DescribeAssetContainerListResponse: DescribeAssetContainerListResponse,
    ModifyContainerNetStatusRequest: ModifyContainerNetStatusRequest,
    DescribeVulIgnoreLocalImageListRequest: DescribeVulIgnoreLocalImageListRequest,
    DescribeVirusMonitorSettingResponse: DescribeVirusMonitorSettingResponse,
    DescribeSystemVulListRequest: DescribeSystemVulListRequest,
    DescribeContainerSecEventSummaryRequest: DescribeContainerSecEventSummaryRequest,
    DescribeAssetImageRegistrySummaryResponse: DescribeAssetImageRegistrySummaryResponse,
    DescribeSecLogCleanSettingInfoRequest: DescribeSecLogCleanSettingInfoRequest,
    DescribeVulScanAuthorizedImageSummaryResponse: DescribeVulScanAuthorizedImageSummaryResponse,
    DescribeImageAuthorizedInfoResponse: DescribeImageAuthorizedInfoResponse,
    DescribeAbnormalProcessEventsRequest: DescribeAbnormalProcessEventsRequest,
    ModifyAbnormalProcessRuleStatusResponse: ModifyAbnormalProcessRuleStatusResponse,
    DescribeVirusListRequest: DescribeVirusListRequest,
    DescribeComplianceAssetListRequest: DescribeComplianceAssetListRequest,
    ModifyVirusScanSettingResponse: ModifyVirusScanSettingResponse,
    ImagesVul: ImagesVul,
    DescribePromotionActivityResponse: DescribePromotionActivityResponse,
    ModifyVirusMonitorSettingRequest: ModifyVirusMonitorSettingRequest,
    ModifyEscapeWhiteListRequest: ModifyEscapeWhiteListRequest,
    AddAndPublishNetworkFirewallPolicyDetailResponse: AddAndPublishNetworkFirewallPolicyDetailResponse,
    DescribeSearchExportListRequest: DescribeSearchExportListRequest,
    DescribeReverseShellWhiteListDetailRequest: DescribeReverseShellWhiteListDetailRequest,
    AddCompliancePolicyAssetSetToWhitelistResponse: AddCompliancePolicyAssetSetToWhitelistResponse,
    DescribeVulContainerListResponse: DescribeVulContainerListResponse,
    DescribeRiskSyscallNamesRequest: DescribeRiskSyscallNamesRequest,
    ModifyVulDefenceEventStatusResponse: ModifyVulDefenceEventStatusResponse,
    DescribeEscapeEventInfoResponse: DescribeEscapeEventInfoResponse,
    DescribeK8sApiAbnormalRuleInfoResponse: DescribeK8sApiAbnormalRuleInfoResponse,
    DescribeESHitsResponse: DescribeESHitsResponse,
    DescribeImageRegistryTimingScanTaskResponse: DescribeImageRegistryTimingScanTaskResponse,
    ClusterInfoItem: ClusterInfoItem,
    DescribeComplianceScanFailedAssetListResponse: DescribeComplianceScanFailedAssetListResponse,
    ModifyReverseShellStatusResponse: ModifyReverseShellStatusResponse,
    DeleteMachineResponse: DeleteMachineResponse,
    AddCompliancePolicyAssetSetToWhitelistRequest: AddCompliancePolicyAssetSetToWhitelistRequest,
    DescribeEscapeWhiteListResponse: DescribeEscapeWhiteListResponse,
    DescribeAssetImageHostListRequest: DescribeAssetImageHostListRequest,
    AbnormalProcessEventInfo: AbnormalProcessEventInfo,
    DescribeCompliancePeriodTaskListResponse: DescribeCompliancePeriodTaskListResponse,
    DescribeAssetImageScanSettingRequest: DescribeAssetImageScanSettingRequest,
    AccessControlSystemChildRuleInfo: AccessControlSystemChildRuleInfo,
    DescribeSecLogAlertMsgResponse: DescribeSecLogAlertMsgResponse,
    DescribeInspectionReportRequest: DescribeInspectionReportRequest,
    DescribeAgentDaemonSetCmdRequest: DescribeAgentDaemonSetCmdRequest,
    DescribeSecLogAlertMsgRequest: DescribeSecLogAlertMsgRequest,
    AddNetworkFirewallPolicyYamlDetailResponse: AddNetworkFirewallPolicyYamlDetailResponse,
    AccessControlEventInfo: AccessControlEventInfo,
    DescribeClusterSummaryResponse: DescribeClusterSummaryResponse,
    DescribeSecLogDeliveryClsOptionsResponse: DescribeSecLogDeliveryClsOptionsResponse,
    DeleteMachineRequest: DeleteMachineRequest,
    CreateVulImageExportJobRequest: CreateVulImageExportJobRequest,
    DescribeValueAddedSrvInfoRequest: DescribeValueAddedSrvInfoRequest,
    DescribeCompliancePolicyItemAffectedSummaryResponse: DescribeCompliancePolicyItemAffectedSummaryResponse,
    ModifyRiskSyscallStatusResponse: ModifyRiskSyscallStatusResponse,
    DescribeVulSummaryRequest: DescribeVulSummaryRequest,
    DescribeAutoAuthorizedRuleHostResponse: DescribeAutoAuthorizedRuleHostResponse,
    DeleteIgnoreVulResponse: DeleteIgnoreVulResponse,
    ModifyAssetImageRegistryScanStopOneKeyRequest: ModifyAssetImageRegistryScanStopOneKeyRequest,
    DeleteSearchTemplateRequest: DeleteSearchTemplateRequest,
    SwitchImageAutoAuthorizedRuleResponse: SwitchImageAutoAuthorizedRuleResponse,
    DescribeExportJobResultRequest: DescribeExportJobResultRequest,
    DescribeNetworkFirewallNamespaceLabelListRequest: DescribeNetworkFirewallNamespaceLabelListRequest,
    DescribeK8sApiAbnormalEventListRequest: DescribeK8sApiAbnormalEventListRequest,
    DescribeAffectedWorkloadListResponse: DescribeAffectedWorkloadListResponse,
    CreateComplianceTaskResponse: CreateComplianceTaskResponse,
    DescribeAssetImageRegistryListRequest: DescribeAssetImageRegistryListRequest,
    VulDefencePlugin: VulDefencePlugin,
    DescribeAbnormalProcessEventTendencyResponse: DescribeAbnormalProcessEventTendencyResponse,
    DescribeScanIgnoreVulListRequest: DescribeScanIgnoreVulListRequest,
    DescribeReverseShellWhiteListsRequest: DescribeReverseShellWhiteListsRequest,
    CheckNetworkFirewallPolicyYamlRequest: CheckNetworkFirewallPolicyYamlRequest,
    DescribeRiskListRequest: DescribeRiskListRequest,
    VulDefenceHost: VulDefenceHost,
    ModifyAccessControlStatusResponse: ModifyAccessControlStatusResponse,
    DeleteReverseShellWhiteListsRequest: DeleteReverseShellWhiteListsRequest,
    DescribeEmergencyVulListResponse: DescribeEmergencyVulListResponse,
    DescribeAssetAppServiceListRequest: DescribeAssetAppServiceListRequest,
    ModifyImageAuthorizedResponse: ModifyImageAuthorizedResponse,
    NetworkClusterInfoItem: NetworkClusterInfoItem,
    AddEscapeWhiteListResponse: AddEscapeWhiteListResponse,
    ModifySecLogCleanSettingInfoResponse: ModifySecLogCleanSettingInfoResponse,
    DescribeWebVulListRequest: DescribeWebVulListRequest,
    ModifyVirusScanSettingRequest: ModifyVirusScanSettingRequest,
    DescribeVulDefenceEventRequest: DescribeVulDefenceEventRequest,
    DescribeVirusSummaryResponse: DescribeVirusSummaryResponse,
    DescribeAssetDBServiceListRequest: DescribeAssetDBServiceListRequest,
    UpdateAndPublishNetworkFirewallPolicyYamlDetailRequest: UpdateAndPublishNetworkFirewallPolicyYamlDetailRequest,
    DescribeProVersionInfoResponse: DescribeProVersionInfoResponse,
    AddEditAbnormalProcessRuleResponse: AddEditAbnormalProcessRuleResponse,
    ScanComplianceScanFailedAssetsRequest: ScanComplianceScanFailedAssetsRequest,
    ModifySecLogDeliveryClsSettingResponse: ModifySecLogDeliveryClsSettingResponse,
    DescribeComplianceTaskAssetSummaryRequest: DescribeComplianceTaskAssetSummaryRequest,
    CreateCheckComponentResponse: CreateCheckComponentResponse,
    DescribeImageRegistryTimingScanTaskRequest: DescribeImageRegistryTimingScanTaskRequest,
    DescribeRiskSyscallWhiteListDetailResponse: DescribeRiskSyscallWhiteListDetailResponse,
    AddNetworkFirewallPolicyYamlDetailRequest: AddNetworkFirewallPolicyYamlDetailRequest,
    DescribeVulLevelImageSummaryResponse: DescribeVulLevelImageSummaryResponse,
    ScanComplianceAssetsResponse: ScanComplianceAssetsResponse,
    DescribeCompliancePeriodTaskListRequest: DescribeCompliancePeriodTaskListRequest,
    CreateAssetImageVirusExportJobResponse: CreateAssetImageVirusExportJobResponse,
    DescribeIndexListRequest: DescribeIndexListRequest,
    CreateWebVulExportJobResponse: CreateWebVulExportJobResponse,
    DescribeReverseShellWhiteListDetailResponse: DescribeReverseShellWhiteListDetailResponse,
    DescribeUnauthorizedCoresTendencyRequest: DescribeUnauthorizedCoresTendencyRequest,
    DescribeAssetImageVulListExportResponse: DescribeAssetImageVulListExportResponse,
    VulTopRankingInfo: VulTopRankingInfo,
    DescribeProVersionInfoRequest: DescribeProVersionInfoRequest,
    DescribeVulLevelSummaryRequest: DescribeVulLevelSummaryRequest,
    EscapeEventDescription: EscapeEventDescription,
    DescribeAssetImageDetailResponse: DescribeAssetImageDetailResponse,
    CreateAssetImageRegistryScanTaskOneKeyResponse: CreateAssetImageRegistryScanTaskOneKeyResponse,
    AbnormalProcessSystemChildRuleInfo: AbnormalProcessSystemChildRuleInfo,
    DescribeAssetImageVulListExportRequest: DescribeAssetImageVulListExportRequest,
    DescribeExportJobResultResponse: DescribeExportJobResultResponse,
    ReverseShellWhiteListBaseInfo: ReverseShellWhiteListBaseInfo,
    AccessControlRuleInfo: AccessControlRuleInfo,
    DescribeAssetHostListResponse: DescribeAssetHostListResponse,
    DescribeABTestConfigRequest: DescribeABTestConfigRequest,
    K8sApiAbnormalRuleScopeInfo: K8sApiAbnormalRuleScopeInfo,
    StopVulScanTaskRequest: StopVulScanTaskRequest,
    ImageRepoInfo: ImageRepoInfo,
    CreateAssetImageRegistryScanTaskResponse: CreateAssetImageRegistryScanTaskResponse,
    DescribePublicKeyRequest: DescribePublicKeyRequest,
    PortInfo: PortInfo,
    DescribeAssetImageRegistrySummaryRequest: DescribeAssetImageRegistrySummaryRequest,
    DescribeVirusManualScanEstimateTimeoutResponse: DescribeVirusManualScanEstimateTimeoutResponse,
    DescribeTaskResultSummaryResponse: DescribeTaskResultSummaryResponse,
    HostInfo: HostInfo,
    DescribeVirusScanTimeoutSettingRequest: DescribeVirusScanTimeoutSettingRequest,
    ModifySecLogJoinStateResponse: ModifySecLogJoinStateResponse,
    ModifyAccessControlRuleStatusResponse: ModifyAccessControlRuleStatusResponse,
    ModifyAssetImageScanStopRequest: ModifyAssetImageScanStopRequest,
    CreateRefreshTaskRequest: CreateRefreshTaskRequest,
    DescribeK8sApiAbnormalEventListResponse: DescribeK8sApiAbnormalEventListResponse,
    DescribeNewestVulRequest: DescribeNewestVulRequest,
    DescribeAbnormalProcessLevelSummaryResponse: DescribeAbnormalProcessLevelSummaryResponse,
    AddEscapeWhiteListRequest: AddEscapeWhiteListRequest,
    DescribeESAggregationsRequest: DescribeESAggregationsRequest,
    NetworkClusterPodInfo: NetworkClusterPodInfo,
    DescribeAssetImageRiskListExportResponse: DescribeAssetImageRiskListExportResponse,
    ModifySecLogCleanSettingInfoRequest: ModifySecLogCleanSettingInfoRequest,
    DescribeAccessControlEventsRequest: DescribeAccessControlEventsRequest,
    DescribeAccessControlRuleDetailRequest: DescribeAccessControlRuleDetailRequest,
    ModifyVirusScanTimeoutSettingRequest: ModifyVirusScanTimeoutSettingRequest,
    CreateProcessEventsExportJobResponse: CreateProcessEventsExportJobResponse,
    ImageRiskInfo: ImageRiskInfo,
    DescribeRiskSyscallDetailResponse: DescribeRiskSyscallDetailResponse,
    DeleteK8sApiAbnormalRuleResponse: DeleteK8sApiAbnormalRuleResponse,
    ComplianceHostDetailInfo: ComplianceHostDetailInfo,
    VulAffectedImageComponentInfo: VulAffectedImageComponentInfo,
    DescribePromotionActivityRequest: DescribePromotionActivityRequest,
    AccessControlChildRuleInfo: AccessControlChildRuleInfo,
    DescribeSecLogKafkaUINRequest: DescribeSecLogKafkaUINRequest,
    CreateSystemVulExportJobResponse: CreateSystemVulExportJobResponse,
    DescribeRiskSyscallNamesResponse: DescribeRiskSyscallNamesResponse,
    AddEditReverseShellWhiteListResponse: AddEditReverseShellWhiteListResponse,
    DescribeAbnormalProcessEventsResponse: DescribeAbnormalProcessEventsResponse,
    InitializeUserComplianceEnvironmentResponse: InitializeUserComplianceEnvironmentResponse,
    ReverseShellEventDescription: ReverseShellEventDescription,
    DescribeImageRegistryNamespaceListResponse: DescribeImageRegistryNamespaceListResponse,
    VulAffectedImageInfo: VulAffectedImageInfo,
    TagInfo: TagInfo,
    DescribeK8sApiAbnormalRuleListResponse: DescribeK8sApiAbnormalRuleListResponse,
    DeleteCompliancePolicyAssetSetFromWhitelistResponse: DeleteCompliancePolicyAssetSetFromWhitelistResponse,
    DescribeVirusTaskListResponse: DescribeVirusTaskListResponse,
    DescribeAssetHostDetailResponse: DescribeAssetHostDetailResponse,
    CKafkaInstanceInfo: CKafkaInstanceInfo,
    DescribeAffectedNodeListResponse: DescribeAffectedNodeListResponse,
    DeleteK8sApiAbnormalRuleRequest: DeleteK8sApiAbnormalRuleRequest,
    ModifyVirusFileStatusResponse: ModifyVirusFileStatusResponse,
    DescribeAbnormalProcessRulesExportResponse: DescribeAbnormalProcessRulesExportResponse,
    SyncAssetImageRegistryAssetResponse: SyncAssetImageRegistryAssetResponse,
    DescribeAbnormalProcessEventTendencyRequest: DescribeAbnormalProcessEventTendencyRequest,
    DescribeEscapeEventDetailResponse: DescribeEscapeEventDetailResponse,
    ScanCompliancePolicyItemsResponse: ScanCompliancePolicyItemsResponse,
    DeleteAccessControlRulesResponse: DeleteAccessControlRulesResponse,
    DescribeVulImageSummaryResponse: DescribeVulImageSummaryResponse,
    DescribeEscapeRuleInfoRequest: DescribeEscapeRuleInfoRequest,
    VirusTendencyInfo: VirusTendencyInfo,
    DescribeComplianceWhitelistItemListResponse: DescribeComplianceWhitelistItemListResponse,
    DescribeAssetWebServiceListRequest: DescribeAssetWebServiceListRequest,
    UpdateImageRegistryTimingScanTaskRequest: UpdateImageRegistryTimingScanTaskRequest,
    DescribeEscapeEventTendencyRequest: DescribeEscapeEventTendencyRequest,
    DescribeInspectionReportResponse: DescribeInspectionReportResponse,
    SecLogDeliveryClsSettingInfo: SecLogDeliveryClsSettingInfo,
    DescribeVirusScanTaskStatusRequest: DescribeVirusScanTaskStatusRequest,
    CreateAssetImageScanSettingResponse: CreateAssetImageScanSettingResponse,
    DescribeVulDefenceEventDetailRequest: DescribeVulDefenceEventDetailRequest,
    DescribeVirusAutoIsolateSampleListResponse: DescribeVirusAutoIsolateSampleListResponse,
    DescribeVirusEventTendencyRequest: DescribeVirusEventTendencyRequest,
    DescribeAssetImageRegistryVulListExportResponse: DescribeAssetImageRegistryVulListExportResponse,
    NetworkPorts: NetworkPorts,
    DescribeAssetContainerDetailRequest: DescribeAssetContainerDetailRequest,
    ModifyAccessControlStatusRequest: ModifyAccessControlStatusRequest,
    CreateProcessEventsExportJobRequest: CreateProcessEventsExportJobRequest,
    DescribeVulDetailResponse: DescribeVulDetailResponse,
    RegistryConnDetectResult: RegistryConnDetectResult,
    ModifyCompliancePeriodTaskResponse: ModifyCompliancePeriodTaskResponse,
    RiskSyscallEventInfo: RiskSyscallEventInfo,
    DescribeEscapeEventTendencyResponse: DescribeEscapeEventTendencyResponse,
    ClusterCheckItem: ClusterCheckItem,
    DescribeAssetImageVulListResponse: DescribeAssetImageVulListResponse,
    DescribeK8sApiAbnormalSummaryRequest: DescribeK8sApiAbnormalSummaryRequest,
    DescribeAbnormalProcessLevelSummaryRequest: DescribeAbnormalProcessLevelSummaryRequest,
    AssetFilters: AssetFilters,
    ModifyK8sApiAbnormalRuleStatusRequest: ModifyK8sApiAbnormalRuleStatusRequest,
    DescribeNetworkFirewallPolicyDetailResponse: DescribeNetworkFirewallPolicyDetailResponse,
    DescribePostPayDetailResponse: DescribePostPayDetailResponse,
    DescribeK8sApiAbnormalEventInfoResponse: DescribeK8sApiAbnormalEventInfoResponse,
    DescribeNetworkFirewallPodLabelsListResponse: DescribeNetworkFirewallPodLabelsListResponse,
    VulAffectedComponentInfo: VulAffectedComponentInfo,
    DescribeAssetImageScanStatusRequest: DescribeAssetImageScanStatusRequest,
    DescribeCheckItemListResponse: DescribeCheckItemListResponse,
    ComplianceScanFailedAsset: ComplianceScanFailedAsset,
    ScanComplianceAssetsRequest: ScanComplianceAssetsRequest,
    DescribeAbnormalProcessRuleDetailResponse: DescribeAbnormalProcessRuleDetailResponse,
    ModifyVirusFileStatusRequest: ModifyVirusFileStatusRequest,
    VulAffectedRegistryImageInfo: VulAffectedRegistryImageInfo,
    CreateVulContainerExportJobResponse: CreateVulContainerExportJobResponse,
    DescribeAssetImageRegistryListExportRequest: DescribeAssetImageRegistryListExportRequest,
    CreateK8sApiAbnormalRuleInfoResponse: CreateK8sApiAbnormalRuleInfoResponse,
    ProcessBaseInfo: ProcessBaseInfo,
    ModifyEscapeRuleRequest: ModifyEscapeRuleRequest,
    K8sApiAbnormalTendencyItem: K8sApiAbnormalTendencyItem,
    DescribeAbnormalProcessRulesResponse: DescribeAbnormalProcessRulesResponse,
    ModifyVulDefenceSettingResponse: ModifyVulDefenceSettingResponse,
    SupportDefenceVul: SupportDefenceVul,
    DescribeCheckItemListRequest: DescribeCheckItemListRequest,
    DescribeImageComponentListResponse: DescribeImageComponentListResponse,
    CreateAbnormalProcessRulesExportJobResponse: CreateAbnormalProcessRulesExportJobResponse,
    DescribeSecLogDeliveryKafkaOptionsRequest: DescribeSecLogDeliveryKafkaOptionsRequest,
    DescribeVirusScanSettingResponse: DescribeVirusScanSettingResponse,
    DescribeAccessControlRuleDetailResponse: DescribeAccessControlRuleDetailResponse,
    CreateNetworkFirewallPublishRequest: CreateNetworkFirewallPublishRequest,
    CreateHostExportJobResponse: CreateHostExportJobResponse,
    DescribeNetworkFirewallPolicyDiscoverRequest: DescribeNetworkFirewallPolicyDiscoverRequest,
    DescribeNetworkFirewallPolicyYamlDetailResponse: DescribeNetworkFirewallPolicyYamlDetailResponse,
    CreateOrModifyPostPayCoresRequest: CreateOrModifyPostPayCoresRequest,
    ModifyImageAuthorizedRequest: ModifyImageAuthorizedRequest,
    DescribeAssetImageScanTaskRequest: DescribeAssetImageScanTaskRequest,
    DescribeSecLogDeliveryClsSettingRequest: DescribeSecLogDeliveryClsSettingRequest,
    UpdateNetworkFirewallPolicyDetailResponse: UpdateNetworkFirewallPolicyDetailResponse,
    ModifySecLogKafkaUINResponse: ModifySecLogKafkaUINResponse,
    DescribeNetworkFirewallPodLabelsListRequest: DescribeNetworkFirewallPodLabelsListRequest,
    CreateVirusScanTaskResponse: CreateVirusScanTaskResponse,
    DescribeNetworkFirewallAuditRecordRequest: DescribeNetworkFirewallAuditRecordRequest,
    DescribeAssetProcessListRequest: DescribeAssetProcessListRequest,
    DescribeAssetProcessListResponse: DescribeAssetProcessListResponse,
    EscapeEventInfo: EscapeEventInfo,
    ModifyVirusScanTimeoutSettingResponse: ModifyVirusScanTimeoutSettingResponse,
    CreateAssetImageVirusExportJobRequest: CreateAssetImageVirusExportJobRequest,
    DescribeAssetImageRegistryDetailRequest: DescribeAssetImageRegistryDetailRequest,
    CreateAssetImageRegistryScanTaskRequest: CreateAssetImageRegistryScanTaskRequest,
    DescribeAssetClusterListRequest: DescribeAssetClusterListRequest,
    DescribeAssetImageListExportResponse: DescribeAssetImageListExportResponse,
    WarningRule: WarningRule,
    VulAffectedContainerInfo: VulAffectedContainerInfo,
    DescribeLogStorageStatisticResponse: DescribeLogStorageStatisticResponse,
    CreateSearchTemplateResponse: CreateSearchTemplateResponse,
    DescribeAssetContainerDetailResponse: DescribeAssetContainerDetailResponse,
    DescribeVulDefenceSettingResponse: DescribeVulDefenceSettingResponse,
    DescribeImageComponentListRequest: DescribeImageComponentListRequest,
    AbnormalProcessChildRuleInfo: AbnormalProcessChildRuleInfo,
    DescribeNetworkFirewallPolicyListResponse: DescribeNetworkFirewallPolicyListResponse,
    DescribeAgentInstallCommandRequest: DescribeAgentInstallCommandRequest,
    ResetSecLogTopicConfigRequest: ResetSecLogTopicConfigRequest,
    DescribeAssetImageVirusListExportResponse: DescribeAssetImageVirusListExportResponse,
    DescribeVirusScanSettingRequest: DescribeVirusScanSettingRequest,
    SecTendencyEventInfo: SecTendencyEventInfo,
    CreateAccessControlsRuleExportJobRequest: CreateAccessControlsRuleExportJobRequest,
    VirusAutoIsolateSampleInfo: VirusAutoIsolateSampleInfo,
    DescribeExportJobDownloadURLRequest: DescribeExportJobDownloadURLRequest,
    DescribeImageAutoAuthorizedRuleRequest: DescribeImageAutoAuthorizedRuleRequest,
    DescribeVulIgnoreRegistryImageListResponse: DescribeVulIgnoreRegistryImageListResponse,
    UpdateAndPublishNetworkFirewallPolicyDetailRequest: UpdateAndPublishNetworkFirewallPolicyDetailRequest,
    DescribeAssetPortListResponse: DescribeAssetPortListResponse,
    DescribeRefreshTaskRequest: DescribeRefreshTaskRequest,
    CreateClusterCheckTaskResponse: CreateClusterCheckTaskResponse,
    ClsTopicInfo: ClsTopicInfo,
    DescribeCompliancePolicyItemAffectedAssetListRequest: DescribeCompliancePolicyItemAffectedAssetListRequest,
    DescribeImageRiskTendencyRequest: DescribeImageRiskTendencyRequest,
    CreateOrModifyPostPayCoresResponse: CreateOrModifyPostPayCoresResponse,
    ComplianceAffectedAsset: ComplianceAffectedAsset,
    DescribeVirusMonitorSettingRequest: DescribeVirusMonitorSettingRequest,
    DescribeAssetImageHostListResponse: DescribeAssetImageHostListResponse,
    ModifySecLogKafkaUINRequest: ModifySecLogKafkaUINRequest,
    ModifyVirusAutoIsolateSettingRequest: ModifyVirusAutoIsolateSettingRequest,
    DescribeNetworkFirewallClusterListResponse: DescribeNetworkFirewallClusterListResponse,
    EscapeEventTendencyInfo: EscapeEventTendencyInfo,
    DescribeImageRiskTendencyResponse: DescribeImageRiskTendencyResponse,
    CompliancePolicyAssetSetItem: CompliancePolicyAssetSetItem,
    SyncAssetImageRegistryAssetRequest: SyncAssetImageRegistryAssetRequest,
    DescribeComplianceScanFailedAssetListRequest: DescribeComplianceScanFailedAssetListRequest,
    DescribeSearchLogsRequest: DescribeSearchLogsRequest,
    DescribeEscapeEventTypeSummaryResponse: DescribeEscapeEventTypeSummaryResponse,
    DescribeAssetImageRegistryVulListRequest: DescribeAssetImageRegistryVulListRequest,
    DescribeImageSimpleListResponse: DescribeImageSimpleListResponse,
    CreateAbnormalProcessRulesExportJobRequest: CreateAbnormalProcessRulesExportJobRequest,
    CreateK8sApiAbnormalEventExportJobResponse: CreateK8sApiAbnormalEventExportJobResponse,
    DescribeUserClusterResponse: DescribeUserClusterResponse,
    DescribeAssetImageRegistryRegistryListRequest: DescribeAssetImageRegistryRegistryListRequest,
    DescribeVulDefenceHostResponse: DescribeVulDefenceHostResponse,
    CreateImageExportJobRequest: CreateImageExportJobRequest,
    CreateEmergencyVulExportJobRequest: CreateEmergencyVulExportJobRequest,
    K8sApiAbnormalRuleListItem: K8sApiAbnormalRuleListItem,
    DescribeVirusScanTaskStatusResponse: DescribeVirusScanTaskStatusResponse,
    DescribeEscapeEventsExportResponse: DescribeEscapeEventsExportResponse,
    ComplianceImageDetailInfo: ComplianceImageDetailInfo,
    DescribeVulScanLocalImageListResponse: DescribeVulScanLocalImageListResponse,
    DescribeComplianceWhitelistItemListRequest: DescribeComplianceWhitelistItemListRequest,
    DescribeAccessControlDetailRequest: DescribeAccessControlDetailRequest,
    ClusterRiskItem: ClusterRiskItem,
    DescribeVirusListResponse: DescribeVirusListResponse,
    DescribeAbnormalProcessEventsExportRequest: DescribeAbnormalProcessEventsExportRequest,
    DescribeVulSummaryResponse: DescribeVulSummaryResponse,
    DescribeAssetComponentListRequest: DescribeAssetComponentListRequest,
    DescribeEmergencyVulListRequest: DescribeEmergencyVulListRequest,
    DeleteReverseShellEventsResponse: DeleteReverseShellEventsResponse,
    DescribeAbnormalProcessDetailResponse: DescribeAbnormalProcessDetailResponse,
    DescribeAssetImageListExportRequest: DescribeAssetImageListExportRequest,
    ModifyAssetImageRegistryScanStopOneKeyResponse: ModifyAssetImageRegistryScanStopOneKeyResponse,
    VulDefenceEventDetail: VulDefenceEventDetail,
    UpdateNetworkFirewallPolicyYamlDetailRequest: UpdateNetworkFirewallPolicyYamlDetailRequest,
    DescribeK8sApiAbnormalRuleInfoRequest: DescribeK8sApiAbnormalRuleInfoRequest,
    DescribeVulRegistryImageListRequest: DescribeVulRegistryImageListRequest,
    RunTimeEventBaseInfo: RunTimeEventBaseInfo,
    DescribeSystemVulListResponse: DescribeSystemVulListResponse,
    ModifyIgnoreVul: ModifyIgnoreVul,
    DescribeAssetImageRegistryVirusListResponse: DescribeAssetImageRegistryVirusListResponse,
    DescribeAssetImageSimpleListRequest: DescribeAssetImageSimpleListRequest,
    DescribeAssetDBServiceListResponse: DescribeAssetDBServiceListResponse,
    DescribeSecLogJoinTypeListRequest: DescribeSecLogJoinTypeListRequest,
    DescribeImageSimpleListRequest: DescribeImageSimpleListRequest,
    CreateNetworkFirewallPolicyDiscoverRequest: CreateNetworkFirewallPolicyDiscoverRequest,
    ImageRiskTendencyInfo: ImageRiskTendencyInfo,
    DescribeVulTopRankingResponse: DescribeVulTopRankingResponse,
    DescribeAssetWebServiceListResponse: DescribeAssetWebServiceListResponse,
    VulDetailInfo: VulDetailInfo,
    DescribeVulLevelSummaryResponse: DescribeVulLevelSummaryResponse,
    AddNetworkFirewallPolicyDetailRequest: AddNetworkFirewallPolicyDetailRequest,
    DescribeComplianceTaskPolicyItemSummaryListRequest: DescribeComplianceTaskPolicyItemSummaryListRequest,
    CompliancePolicyItemSummary: CompliancePolicyItemSummary,
    DescribeAssetImageVulListRequest: DescribeAssetImageVulListRequest,
    ModifyRiskSyscallStatusRequest: ModifyRiskSyscallStatusRequest,
    DescribeVulDefenceEventResponse: DescribeVulDefenceEventResponse,
    DescribeVirusEventTendencyResponse: DescribeVirusEventTendencyResponse,
    AddEditImageAutoAuthorizedRuleRequest: AddEditImageAutoAuthorizedRuleRequest,
    SwitchImageAutoAuthorizedRuleRequest: SwitchImageAutoAuthorizedRuleRequest,
    DescribeVirusSampleDownloadUrlResponse: DescribeVirusSampleDownloadUrlResponse,
    DescribeValueAddedSrvInfoResponse: DescribeValueAddedSrvInfoResponse,
    RunTimeRiskInfo: RunTimeRiskInfo,
    CreateVirusScanTaskRequest: CreateVirusScanTaskRequest,
    DescribeAbnormalProcessDetailRequest: DescribeAbnormalProcessDetailRequest,
    DescribeAssetImageScanTaskResponse: DescribeAssetImageScanTaskResponse,
    AddEditAccessControlRuleRequest: AddEditAccessControlRuleRequest,
    DescribeVulTopRankingRequest: DescribeVulTopRankingRequest,
    ConfirmNetworkFirewallPolicyRequest: ConfirmNetworkFirewallPolicyRequest,
    ContainerMount: ContainerMount,
    DeleteSearchTemplateResponse: DeleteSearchTemplateResponse,
    AddComplianceAssetPolicySetToWhitelistRequest: AddComplianceAssetPolicySetToWhitelistRequest,
    DescribeVirusAutoIsolateSampleDownloadURLResponse: DescribeVirusAutoIsolateSampleDownloadURLResponse,
    DescribeSecLogVasInfoRequest: DescribeSecLogVasInfoRequest,
    DescribeNetworkFirewallPolicyDiscoverResponse: DescribeNetworkFirewallPolicyDiscoverResponse,
    DescribeAssetImageSimpleListResponse: DescribeAssetImageSimpleListResponse,
    DescribeComplianceAssetPolicyItemListResponse: DescribeComplianceAssetPolicyItemListResponse,
    ComplianceFilters: ComplianceFilters,
    ImageVirusInfo: ImageVirusInfo,
    StopVulScanTaskResponse: StopVulScanTaskResponse,
    ModifyEscapeWhiteListResponse: ModifyEscapeWhiteListResponse,
    NetworkClusterNamespaceLabelInfo: NetworkClusterNamespaceLabelInfo,
    ImagesInfo: ImagesInfo,
    ModifyVirusAutoIsolateExampleSwitchRequest: ModifyVirusAutoIsolateExampleSwitchRequest,
    ImageVirus: ImageVirus,
    ModifySecLogDeliveryKafkaSettingRequest: ModifySecLogDeliveryKafkaSettingRequest,
    DescribeReverseShellEventsExportRequest: DescribeReverseShellEventsExportRequest,
    ModifyK8sApiAbnormalEventStatusRequest: ModifyK8sApiAbnormalEventStatusRequest,
    ModifySecLogJoinObjectsRequest: ModifySecLogJoinObjectsRequest,
    DescribeK8sApiAbnormalRuleListRequest: DescribeK8sApiAbnormalRuleListRequest,
    DescribeAccessControlDetailResponse: DescribeAccessControlDetailResponse,
    CreateImageExportJobResponse: CreateImageExportJobResponse,
    ProjectInfo: ProjectInfo,
    DescribeAffectedNodeListRequest: DescribeAffectedNodeListRequest,
    DescribeAssetImageRegistryAssetStatusResponse: DescribeAssetImageRegistryAssetStatusResponse,
    ContainerNetwork: ContainerNetwork,
    DescribeSecLogDeliveryKafkaSettingResponse: DescribeSecLogDeliveryKafkaSettingResponse,
    CreateHostExportJobRequest: CreateHostExportJobRequest,
    AddEditRiskSyscallWhiteListResponse: AddEditRiskSyscallWhiteListResponse,
    DescribeVirusAutoIsolateSampleDownloadURLRequest: DescribeVirusAutoIsolateSampleDownloadURLRequest,
    ModifyAbnormalProcessStatusRequest: ModifyAbnormalProcessStatusRequest,
    DescribeVulDetailRequest: DescribeVulDetailRequest,
    CreateEscapeWhiteListExportJobRequest: CreateEscapeWhiteListExportJobRequest,
    DescribeSecLogJoinObjectListRequest: DescribeSecLogJoinObjectListRequest,
    ImageRisk: ImageRisk,
    DescribeClusterDetailResponse: DescribeClusterDetailResponse,
    ComplianceAssetPolicyItem: ComplianceAssetPolicyItem,
    InitializeUserComplianceEnvironmentRequest: InitializeUserComplianceEnvironmentRequest,
    DescribeSupportDefenceVulResponse: DescribeSupportDefenceVulResponse,
    DescribeAssetImageRiskListRequest: DescribeAssetImageRiskListRequest,
    DescribeEscapeSafeStateRequest: DescribeEscapeSafeStateRequest,
    DescribeVirusManualScanEstimateTimeoutRequest: DescribeVirusManualScanEstimateTimeoutRequest,
    CreateVulScanTaskResponse: CreateVulScanTaskResponse,
    DescribeTcssSummaryRequest: DescribeTcssSummaryRequest,
    ModifyContainerNetStatusResponse: ModifyContainerNetStatusResponse,
    DescribeEscapeEventDetailRequest: DescribeEscapeEventDetailRequest,
    DescribeSupportDefenceVulRequest: DescribeSupportDefenceVulRequest,
    DeleteCompliancePolicyAssetSetFromWhitelistRequest: DeleteCompliancePolicyAssetSetFromWhitelistRequest,
    DescribeExportJobManageListRequest: DescribeExportJobManageListRequest,
    DescribeVirusSummaryRequest: DescribeVirusSummaryRequest,
    DescribeNetworkFirewallPolicyYamlDetailRequest: DescribeNetworkFirewallPolicyYamlDetailRequest,
    ModifySecLogJoinStateRequest: ModifySecLogJoinStateRequest,
    ABTestConfig: ABTestConfig,
    RiskSyscallWhiteListBaseInfo: RiskSyscallWhiteListBaseInfo,
    DeleteAbnormalProcessRulesRequest: DeleteAbnormalProcessRulesRequest,
    CreateNetworkFirewallClusterRefreshRequest: CreateNetworkFirewallClusterRefreshRequest,
    ModifyCompliancePeriodTaskRequest: ModifyCompliancePeriodTaskRequest,
    DescribeRiskSyscallEventsRequest: DescribeRiskSyscallEventsRequest,
    DescribeRiskListResponse: DescribeRiskListResponse,
    ModifyAssetRequest: ModifyAssetRequest,
    RegionInfo: RegionInfo,
    DescribeEscapeWhiteListRequest: DescribeEscapeWhiteListRequest,
    DescribeNetworkFirewallPolicyListRequest: DescribeNetworkFirewallPolicyListRequest,
    ComponentInfo: ComponentInfo,
    ConfirmNetworkFirewallPolicyResponse: ConfirmNetworkFirewallPolicyResponse,
    CreateNetworkFirewallPublishResponse: CreateNetworkFirewallPublishResponse,
    DescribeAssetSummaryRequest: DescribeAssetSummaryRequest,
    CreateClusterCheckTaskRequest: CreateClusterCheckTaskRequest,
    RaspInfo: RaspInfo,
    DescribeNetworkFirewallClusterListRequest: DescribeNetworkFirewallClusterListRequest,
    DescribeVulRegistryImageListResponse: DescribeVulRegistryImageListResponse,
    CreateVulDefenceEventExportJobResponse: CreateVulDefenceEventExportJobResponse,
    AutoAuthorizedRuleHostInfo: AutoAuthorizedRuleHostInfo,
    CreateExportComplianceStatusListJobRequest: CreateExportComplianceStatusListJobRequest,
    DescribeImageAutoAuthorizedTaskListRequest: DescribeImageAutoAuthorizedTaskListRequest,
    DescribeVirusSampleDownloadUrlRequest: DescribeVirusSampleDownloadUrlRequest,
    AddAndPublishNetworkFirewallPolicyYamlDetailResponse: AddAndPublishNetworkFirewallPolicyYamlDetailResponse,
    AddAndPublishNetworkFirewallPolicyDetailRequest: AddAndPublishNetworkFirewallPolicyDetailRequest,
    DescribeEscapeEventInfoRequest: DescribeEscapeEventInfoRequest,
    UpdateAndPublishNetworkFirewallPolicyYamlDetailResponse: UpdateAndPublishNetworkFirewallPolicyYamlDetailResponse,
    DescribeExportJobManageListResponse: DescribeExportJobManageListResponse,
    DescribeRiskSyscallEventsExportResponse: DescribeRiskSyscallEventsExportResponse,
    DescribeUnfinishRefreshTaskRequest: DescribeUnfinishRefreshTaskRequest,
    DescribeAssetImageRegistryRiskInfoListRequest: DescribeAssetImageRegistryRiskInfoListRequest,
    DescribeImageRegistryNamespaceListRequest: DescribeImageRegistryNamespaceListRequest,
    DescribeAssetImageRegistryScanStatusOneKeyRequest: DescribeAssetImageRegistryScanStatusOneKeyRequest,
    ModifyAccessControlRuleStatusRequest: ModifyAccessControlRuleStatusRequest,
    DescribeVulScanAuthorizedImageSummaryRequest: DescribeVulScanAuthorizedImageSummaryRequest,
    DescribeWarningRulesRequest: DescribeWarningRulesRequest,
    RunTimeTendencyInfo: RunTimeTendencyInfo,
    DescribeContainerAssetSummaryRequest: DescribeContainerAssetSummaryRequest,
    CkafkaRouteInfo: CkafkaRouteInfo,
    ComponentsInfo: ComponentsInfo,
    DescribeImageAutoAuthorizedLogListResponse: DescribeImageAutoAuthorizedLogListResponse,
    DeleteComplianceAssetPolicySetFromWhitelistRequest: DeleteComplianceAssetPolicySetFromWhitelistRequest,
    DeleteRiskSyscallWhiteListsResponse: DeleteRiskSyscallWhiteListsResponse,
    DescribeAssetImageVirusListRequest: DescribeAssetImageVirusListRequest,
    DescribeAssetImageScanSettingResponse: DescribeAssetImageScanSettingResponse,
    DescribeReverseShellDetailResponse: DescribeReverseShellDetailResponse,
    DescribeClusterSummaryRequest: DescribeClusterSummaryRequest,
    AddIgnoreVulRequest: AddIgnoreVulRequest,
    CreateEscapeWhiteListExportJobResponse: CreateEscapeWhiteListExportJobResponse,
    DescribeAccessControlRulesExportResponse: DescribeAccessControlRulesExportResponse,
    ModifyAbnormalProcessStatusResponse: ModifyAbnormalProcessStatusResponse,
    DescribeAbnormalProcessEventsExportResponse: DescribeAbnormalProcessEventsExportResponse,
    ExportJobInfo: ExportJobInfo,
    DescribeContainerAssetSummaryResponse: DescribeContainerAssetSummaryResponse,
    CreateAssetImageScanTaskRequest: CreateAssetImageScanTaskRequest,
    CreateSearchTemplateRequest: CreateSearchTemplateRequest,
    DescribeEscapeEventsExportRequest: DescribeEscapeEventsExportRequest,
    AddEditAbnormalProcessRuleRequest: AddEditAbnormalProcessRuleRequest,
    CheckRepeatAssetImageRegistryRequest: CheckRepeatAssetImageRegistryRequest,
    AffectedNodeItem: AffectedNodeItem,
    CreateCheckComponentRequest: CreateCheckComponentRequest,
    DescribeAgentInstallCommandResponse: DescribeAgentInstallCommandResponse,
    DeleteRiskSyscallWhiteListsRequest: DeleteRiskSyscallWhiteListsRequest,
    ModifyK8sApiAbnormalRuleStatusResponse: ModifyK8sApiAbnormalRuleStatusResponse,
    DescribeImageAuthorizedInfoRequest: DescribeImageAuthorizedInfoRequest,
    DescribeExportJobDownloadURLResponse: DescribeExportJobDownloadURLResponse,
    DescribeAssetImageRegistryRiskInfoListResponse: DescribeAssetImageRegistryRiskInfoListResponse,
    DescribeVulIgnoreLocalImageListResponse: DescribeVulIgnoreLocalImageListResponse,
    DescribeAssetImageRegistryDetailResponse: DescribeAssetImageRegistryDetailResponse,
    AddCompliancePolicyItemToWhitelistResponse: AddCompliancePolicyItemToWhitelistResponse,
    ComplianceAssetPolicySetItem: ComplianceAssetPolicySetItem,
    DescribeAccessControlRulesRequest: DescribeAccessControlRulesRequest,
    StopVirusScanTaskResponse: StopVirusScanTaskResponse,
    K8sApiAbnormalEventInfo: K8sApiAbnormalEventInfo,
    DescribeVulDefenceEventTendencyResponse: DescribeVulDefenceEventTendencyResponse,
    CreateK8sApiAbnormalRuleInfoRequest: CreateK8sApiAbnormalRuleInfoRequest,
    CreateK8sApiAbnormalRuleExportJobResponse: CreateK8sApiAbnormalRuleExportJobResponse,
    RenewImageAuthorizeStateResponse: RenewImageAuthorizeStateResponse,
    ImageAutoAuthorizedTask: ImageAutoAuthorizedTask,
    AddEditWarningRulesRequest: AddEditWarningRulesRequest,
    DescribeSearchLogsResponse: DescribeSearchLogsResponse,
    ModifyAssetResponse: ModifyAssetResponse,
    DescribeReverseShellEventsExportResponse: DescribeReverseShellEventsExportResponse,
    DescribeAssetImageBindRuleInfoRequest: DescribeAssetImageBindRuleInfoRequest,
    DescribeAssetImageListResponse: DescribeAssetImageListResponse,
    DescribeVulDefenceEventDetailResponse: DescribeVulDefenceEventDetailResponse,
    ComplianceAssetInfo: ComplianceAssetInfo,
    DescribeAssetImageRegistryVirusListRequest: DescribeAssetImageRegistryVirusListRequest,
    CreateEscapeEventsExportJobRequest: CreateEscapeEventsExportJobRequest,
    ModifyVirusMonitorSettingResponse: ModifyVirusMonitorSettingResponse,
    CheckNetworkFirewallPolicyYamlResponse: CheckNetworkFirewallPolicyYamlResponse,
    DescribeComplianceTaskAssetSummaryResponse: DescribeComplianceTaskAssetSummaryResponse,
    DescribeWarningRulesResponse: DescribeWarningRulesResponse,
    DescribeUserClusterRequest: DescribeUserClusterRequest,
    DescribeNetworkFirewallClusterRefreshStatusResponse: DescribeNetworkFirewallClusterRefreshStatusResponse,
    VirusTaskInfo: VirusTaskInfo,
    AffectedWorkloadItem: AffectedWorkloadItem,
    AddAndPublishNetworkFirewallPolicyYamlDetailRequest: AddAndPublishNetworkFirewallPolicyYamlDetailRequest,
    CreateComplianceTaskRequest: CreateComplianceTaskRequest,
    DescribeAccessControlRulesExportRequest: DescribeAccessControlRulesExportRequest,
    OpenTcssTrialRequest: OpenTcssTrialRequest,
    CreateEscapeEventsExportJobResponse: CreateEscapeEventsExportJobResponse,
    RiskSyscallEventDescription: RiskSyscallEventDescription,
    DescribeImageAutoAuthorizedRuleResponse: DescribeImageAutoAuthorizedRuleResponse,
    AddEditWarningRulesResponse: AddEditWarningRulesResponse,
    DescribeVulDefenceSettingRequest: DescribeVulDefenceSettingRequest,
    DescribeVirusAutoIsolateSettingResponse: DescribeVirusAutoIsolateSettingResponse,
    VulInfo: VulInfo,
    DescribeAssetImageRegistryRegistryListResponse: DescribeAssetImageRegistryRegistryListResponse,
    DescribeAssetImageRegistryAssetStatusRequest: DescribeAssetImageRegistryAssetStatusRequest,
    DescribeVulScanLocalImageListRequest: DescribeVulScanLocalImageListRequest,
    ImageProgress: ImageProgress,
    CreateK8sApiAbnormalRuleExportJobRequest: CreateK8sApiAbnormalRuleExportJobRequest,
    CreateVirusScanAgainResponse: CreateVirusScanAgainResponse,
    CreateDefenceVulExportJobRequest: CreateDefenceVulExportJobRequest,
    ModifySecLogDeliveryClsSettingRequest: ModifySecLogDeliveryClsSettingRequest,
    AddEditAccessControlRuleResponse: AddEditAccessControlRuleResponse,
    DescribeEscapeEventTypeSummaryRequest: DescribeEscapeEventTypeSummaryRequest,
    DescribeVulLevelImageSummaryRequest: DescribeVulLevelImageSummaryRequest,
    DeleteCompliancePolicyItemFromWhitelistResponse: DeleteCompliancePolicyItemFromWhitelistResponse,
    DescribeSecEventsTendencyRequest: DescribeSecEventsTendencyRequest,
    ResetSecLogTopicConfigResponse: ResetSecLogTopicConfigResponse,
    DescribeAccessControlRulesResponse: DescribeAccessControlRulesResponse,
    ModifyEscapeRuleResponse: ModifyEscapeRuleResponse,
    DescribeSecLogVasInfoResponse: DescribeSecLogVasInfoResponse,
    ModifyVirusAutoIsolateSettingResponse: ModifyVirusAutoIsolateSettingResponse,
    AssetSimpleImageInfo: AssetSimpleImageInfo,
    DescribeCompliancePolicyItemAffectedSummaryRequest: DescribeCompliancePolicyItemAffectedSummaryRequest,
    DescribeVirusDetailResponse: DescribeVirusDetailResponse,
    DescribeImageAutoAuthorizedTaskListResponse: DescribeImageAutoAuthorizedTaskListResponse,
    DescribeComplianceAssetListResponse: DescribeComplianceAssetListResponse,
    CreateVulContainerExportJobRequest: CreateVulContainerExportJobRequest,
    DescribeSecLogDeliveryClsSettingResponse: DescribeSecLogDeliveryClsSettingResponse,
    DescribeComplianceAssetDetailInfoResponse: DescribeComplianceAssetDetailInfoResponse,
    DeleteEscapeWhiteListResponse: DeleteEscapeWhiteListResponse,
    RemoveAssetImageRegistryRegistryDetailResponse: RemoveAssetImageRegistryRegistryDetailResponse,
    ScanComplianceScanFailedAssetsResponse: ScanComplianceScanFailedAssetsResponse,
    ModifyAssetImageRegistryScanStopRequest: ModifyAssetImageRegistryScanStopRequest,
    DeleteNetworkFirewallPolicyDetailResponse: DeleteNetworkFirewallPolicyDetailResponse,
    DescribeK8sApiAbnormalTendencyRequest: DescribeK8sApiAbnormalTendencyRequest,
    RiskSyscallWhiteListInfo: RiskSyscallWhiteListInfo,
    DescribeNewestVulResponse: DescribeNewestVulResponse,
    DescribeCompliancePolicyItemAffectedAssetListResponse: DescribeCompliancePolicyItemAffectedAssetListResponse,
    DescribeComplianceAssetPolicyItemListRequest: DescribeComplianceAssetPolicyItemListRequest,
    DescribeABTestConfigResponse: DescribeABTestConfigResponse,
    SearchTemplate: SearchTemplate,
    DescribeContainerSecEventSummaryResponse: DescribeContainerSecEventSummaryResponse,
    ProcessDetailBaseInfo: ProcessDetailBaseInfo,
    DescribeAssetHostListRequest: DescribeAssetHostListRequest,
    CreateVulDefenceHostExportJobRequest: CreateVulDefenceHostExportJobRequest,
    DescribeImageAutoAuthorizedLogListRequest: DescribeImageAutoAuthorizedLogListRequest,
    DescribeRiskSyscallEventsExportRequest: DescribeRiskSyscallEventsExportRequest,
    DescribeRiskSyscallWhiteListsRequest: DescribeRiskSyscallWhiteListsRequest,
    DescribeVulDefencePluginRequest: DescribeVulDefencePluginRequest,
    ContainerInfo: ContainerInfo,
    DescribeAssetImageRegistryScanStatusOneKeyResponse: DescribeAssetImageRegistryScanStatusOneKeyResponse,
    DescribeAssetImageRegistryRegistryDetailRequest: DescribeAssetImageRegistryRegistryDetailRequest,
    NetworkAuditRecord: NetworkAuditRecord,
    UpdateAssetImageRegistryRegistryDetailRequest: UpdateAssetImageRegistryRegistryDetailRequest,
    DescribeK8sApiAbnormalRuleScopeListRequest: DescribeK8sApiAbnormalRuleScopeListRequest,
    ServiceInfo: ServiceInfo,
    AddEditReverseShellWhiteListRequest: AddEditReverseShellWhiteListRequest,
    VulIgnoreRegistryImage: VulIgnoreRegistryImage,
    DescribeVirusTaskListRequest: DescribeVirusTaskListRequest,
    CreateRiskDnsEventExportJobResponse: CreateRiskDnsEventExportJobResponse,
    DescribeAssetImageRegistryVirusListExportRequest: DescribeAssetImageRegistryVirusListExportRequest,
    DescribeWebVulListResponse: DescribeWebVulListResponse,
    DescribeVulScanInfoResponse: DescribeVulScanInfoResponse,
    DescribeAssetImageRegistryListExportResponse: DescribeAssetImageRegistryListExportResponse,
    FileAttributeInfo: FileAttributeInfo,
    DescribeVulTendencyRequest: DescribeVulTendencyRequest,
    DescribePostPayDetailRequest: DescribePostPayDetailRequest,
    ModifyK8sApiAbnormalEventStatusResponse: ModifyK8sApiAbnormalEventStatusResponse,
    DescribeSecLogDeliveryKafkaOptionsResponse: DescribeSecLogDeliveryKafkaOptionsResponse,
    DescribeAssetHostDetailRequest: DescribeAssetHostDetailRequest,
    DescribeRefreshTaskResponse: DescribeRefreshTaskResponse,
    ReverseShellWhiteListInfo: ReverseShellWhiteListInfo,
    UpdateNetworkFirewallPolicyDetailRequest: UpdateNetworkFirewallPolicyDetailRequest,
    EscapeRuleEnabled: EscapeRuleEnabled,
    DescribeK8sApiAbnormalEventInfoRequest: DescribeK8sApiAbnormalEventInfoRequest,
    DescribeSearchTemplatesRequest: DescribeSearchTemplatesRequest,

}