Files
step-ca-webui/shared/models.py
2024-09-22 22:12:32 +05:00

54 lines
992 B
Python

import enum
from datetime import datetime
from typing import Optional, List
from uuid import UUID
from pydantic import BaseModel
class LogSeverity(enum.StrEnum):
DEBUG = "DEBUG"
INFO = "INFO"
WARNING = "WARN"
ERROR = "ERROR"
@staticmethod
def as_list() -> List[str]: # TODO use
return [s.upper() for s in LogSeverity]
class LogsFilter(BaseModel):
trace_id: Optional[UUID] = None
commands_only: bool
severity: List[LogSeverity]
class Paging(BaseModel):
page: int
page_size: int
class KeyType(enum.StrEnum):
RSA = "RSA"
ECDSA = "ECDSA"
@staticmethod
def as_list() -> List[str]: # TODO use
return [s.upper() for s in KeyType]
class CommandInfo(BaseModel):
command: str
output: str
exit_code: int
action: str
class LogEntry(BaseModel):
timestamp: datetime
entry_id: int
severity: LogSeverity
trace_id: UUID
message: str
command_info: Optional[CommandInfo] = None