Source code for app.schemas.system

"""
System schemas for API validation
"""

from pydantic import BaseModel, Field
from typing import List, Dict, Any, Optional
from datetime import datetime
from enum import Enum


class LogLevel(str, Enum):
    """Log level enumeration"""
    debug = "debug"
    info = "info"
    warning = "warning"
    error = "error"
    critical = "critical"


[docs] class SystemInfo(BaseModel): """System information schema""" version: str hostname: str platform: str python_version: str uptime_seconds: float memory_usage_mb: float cpu_percent: float nats_connected: bool redis_connected: bool database_connected: bool
[docs] class HealthCheck(BaseModel): """Health check response schema""" status: str = Field(..., description="healthy, degraded, or unhealthy") version: str checks: Dict[str, bool] = Field(..., description="Individual component health checks") timestamp: datetime = Field(default_factory=datetime.utcnow)
[docs] class LogEntry(BaseModel): """Log entry schema""" timestamp: datetime level: LogLevel message: str module: str metadata: Dict[str, Any] = Field(default_factory=dict)
class LogQuery(BaseModel): """Log query parameters""" level: Optional[LogLevel] = None module: Optional[str] = None start_time: Optional[datetime] = None end_time: Optional[datetime] = None limit: int = Field(100, ge=1, le=1000)