from dataclasses import field from marshmallow_dataclass import dataclass from marshmallow import validates_schema, ValidationError from iti.applications.common.utils.schema import BaseSchema, Pagination from typing import ClassVar, Optional from apiflask import fields @dataclass(base_schema=BaseSchema) class AlertLogQuery(Pagination): """ 告警日志信息查询请求 """ alert_tag: str = field( default=None, metadata={ "required": False, "metadata": {"example": "ep1-nd0", "description": "告警标签"}, }, ) status: int = field( default=None, metadata={ "required": False, "metadata": {"example": 0, "description": "状态"}, }, ) Schema: ClassVar[BaseSchema] = BaseSchema class AlertLogAddRequest(BaseSchema): """ 告警日志信息添加请求 """ alert_tag = fields.String( required=True, metadata={ "example": "ep1-nd0", "description": "告警标签", }, ) alert_target_name = fields.String( required=True, metadata={ "example": "ep1-nd0", "description": "告警对象名称", }, ) trigger_count = fields.Integer( required=True, metadata={ "example": 1, "description": "触发次数", }, ) status = fields.Integer( required=True, metadata={ "example": 0, "description": "状态", }, ) alert_content = fields.String( required=True, metadata={ "example": "ep1-nd0", "description": "告警内容", }, ) alert_level = fields.Integer( required=True, metadata={ "example": 0, "description": "告警级别", }, ) class AlertLogUpdateRequest(BaseSchema): """ 告警日志信息更新请求 """ alert_tag = fields.String( required=True, metadata={ "example": "ep1-nd0", "description": "告警标签", }, ) alert_target_name = fields.String( required=True, metadata={ "example": "ep1-nd0", "description": "告警对象名称", }, ) trigger_count = fields.Integer( required=True, metadata={ "example": 1, "description": "触发次数", }, ) status = fields.Integer( required=True, metadata={ "example": 0, "description": "状态", }, ) alert_content = fields.String( required=True, metadata={ "example": "ep1-nd0", "description": "告警内容", }, ) alert_level = fields.Integer( required=True, metadata={ "example": 0, "description": "告警级别", }, ) class NodeAlertLogAddRequest(BaseSchema): """ 节点值异常告警日志信息添加请求 """ node_id = fields.Integer( required=True, metadata={ "example": 1, "description": "节点ID", }, ) alert_value = fields.String( required=True, metadata={ "example": "-2.1", "description": "告警值", }, )