from __future__ import annotations from uuid import UUID from pydantic import BaseModel class ProviderCapabilityResponse(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 ProviderCapabilitiesResponse(BaseModel): providers: list[ProviderCapabilityResponse] class ProviderLayersResponse(BaseModel): provider_name: str layers: list[str] class ProviderStatusResponse(BaseModel): provider_name: str configured: bool status: str limitation_message: str class ExternalFetchRequest(BaseModel): project_id: UUID area_id: UUID | None = None layers: list[str] = [] class ExternalFetchResponse(BaseModel): provider: str status: str message: str requested_layers: list[str] project_id: UUID area_id: UUID | None = None class ProviderImportRequest(BaseModel): project_id: str area_id: str | None = None layers: list[str] = [] dataset_role: str | None = None class ProviderImportResponse(BaseModel): provider_name: str status: str message: str requested_layers: list[str] dataset_id: str | None = None dataset_role: str | None = None source_name: str | None = None