53 lines
1.0 KiB
Python
53 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from app.models.common import (
|
|
APIModel,
|
|
DockerContainerState,
|
|
HealthStatus,
|
|
OverallStatus,
|
|
ServiceKind,
|
|
ServiceSource,
|
|
SourceStatus,
|
|
TimestampedResponse,
|
|
)
|
|
|
|
|
|
class ServicesDockerSummary(APIModel):
|
|
running: int
|
|
stopped: int
|
|
unhealthy: int
|
|
total: int
|
|
source_status: SourceStatus
|
|
|
|
|
|
class ServicesUptimeKumaSummary(APIModel):
|
|
monitors_up: int
|
|
monitors_down: int
|
|
monitors_paused: int
|
|
total: int
|
|
source_status: SourceStatus
|
|
|
|
|
|
class ServicesSummary(APIModel):
|
|
overall_status: OverallStatus
|
|
docker: ServicesDockerSummary
|
|
uptime_kuma: ServicesUptimeKumaSummary
|
|
|
|
|
|
class ServiceItem(APIModel):
|
|
id: str
|
|
name: str
|
|
kind: ServiceKind
|
|
status: OverallStatus
|
|
health: HealthStatus
|
|
latency_ms: int | None = None
|
|
docker_state: DockerContainerState
|
|
url: str | None = None
|
|
source: ServiceSource
|
|
last_checked: str | None = None
|
|
|
|
|
|
class ServicesResponse(TimestampedResponse):
|
|
summary: ServicesSummary
|
|
services: list[ServiceItem]
|