51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class ProviderCapability(BaseModel):
|
|
provider_name: str
|
|
display_name: str
|
|
authority_level: str
|
|
supported_layers: list[str]
|
|
supported_geometry_types: list[str]
|
|
supported_query_modes: list[str]
|
|
fetch_signature: str
|
|
configured: bool
|
|
status: str
|
|
limitation_message: str
|
|
attribution: str
|
|
license_note: str
|
|
not_configured_reason: str | None = None
|
|
|
|
|
|
class HealthResponse(BaseModel):
|
|
status: str
|
|
service: str
|
|
version: str
|
|
build_sha: str | None = None
|
|
build_time: str | None = None
|
|
database: str | None = None
|
|
postgis: str | None = None
|
|
migration: str | None = None
|
|
storage: str | None = None
|
|
checks: dict[str, str] = Field(default_factory=dict)
|
|
|
|
|
|
class SystemCapabilities(BaseModel):
|
|
postgis: bool
|
|
rasterio: bool
|
|
geopandas: bool
|
|
yolo: bool | str
|
|
yolo_status: str
|
|
sam: bool | str
|
|
grb: str
|
|
sentinel: str
|
|
version: str
|
|
build_sha: str | None = None
|
|
providers: list[ProviderCapability] = Field(default_factory=list)
|
|
|
|
|
|
class SystemCapabilitiesEnvelope(BaseModel):
|
|
data: SystemCapabilities
|