Files
LLM-Zabbix-HABR/alert-receiver/app/models.py
T

47 lines
1.0 KiB
Python

from __future__ import annotations
from datetime import datetime
from typing import Any
from pydantic import BaseModel, Field
class NormalizedEvent(BaseModel):
source: str = "zabbix"
correlation_id: str
received_at: datetime
remote_addr: str | None = None
event_id: str | None = None
problem_id: str | None = None
event_type: str = "problem"
timestamp: datetime | None = None
severity: str | None = None
severity_code: int | None = None
host: str | None = None
host_id: str | None = None
service: str | None = None
trigger_name: str | None = None
trigger_id: str | None = None
item_id: str | None = None
value: str | None = None
opdata: str | None = None
zabbix_url: str | None = None
tags: dict[str, str] = Field(default_factory=dict)
raw_payload: dict[str, Any]
class ReceiverAck(BaseModel):
accepted: bool
correlation_id: str
forwarded_to_processor: bool
message: str
class ProcessorForwardEnvelope(BaseModel):
event: NormalizedEvent