Add Pydantic DTOs in decnet/web/db/models.py covering every phase-3 endpoint shape: TopologyGenerateRequest, TopologySummary/Detail, child create/update requests, MutationEnqueueRequest (Literal op guard), MutationRow with JSON-payload decoder, validation/version/not-editable error envelopes, and the three catalog responses. Create decnet/web/router/topology/ as an import-safe package exporting topology_router (prefix /topologies) — sub-routers land step-by-step in subsequent commits. Mount under the main api router alongside swarm_mgmt. tests/api/topology/test_models.py pins repo-dict ↔ DTO parity so future repo-row drift breaks the contract test before the endpoints.
19 lines
607 B
Python
19 lines
607 B
Python
"""MazeNET topology REST endpoints (phase 3).
|
|
|
|
Thin FastAPI layer over the phase-2 topology machinery:
|
|
generate/validate/deploy/teardown, pending-only child CRUD, and the
|
|
live-mutation queue for active|degraded topologies.
|
|
|
|
Mounted at ``/api/v1/topologies`` by the main api router. Sub-routers
|
|
live one-per-file and are aggregated here.
|
|
"""
|
|
from fastapi import APIRouter
|
|
|
|
topology_router = APIRouter(prefix="/topologies", tags=["topologies"])
|
|
|
|
# Sub-routers land in later steps; this skeleton keeps the package
|
|
# import-safe so the main api router can mount it immediately.
|
|
|
|
|
|
__all__ = ["topology_router"]
|