flip_api.main ============= .. py:module:: flip_api.main Attributes ---------- .. autoapisummary:: flip_api.main._cors_allowed_origins flip_api.main.API_PREFIX flip_api.main._docs_enabled flip_api.main.app flip_api.main.ROUTERS Functions --------- .. autoapisummary:: flip_api.main.lifespan flip_api.main.rate_limit_exceeded_handler flip_api.main.include_api_routers flip_api.main.root flip_api.main.health_check flip_api.main.main Module Contents --------------- .. py:data:: _cors_allowed_origins :type: list[str] :value: [] .. py:function:: lifespan(app: fastapi.FastAPI) -> collections.abc.AsyncGenerator[None, None] :async: Start scheduler and populate CORS allowlist from Cognito callback URLs. :param app: The FastAPI application instance being started. :type app: FastAPI .. py:data:: API_PREFIX :value: '/api' .. py:data:: _docs_enabled :value: True .. py:data:: app .. py:function:: rate_limit_exceeded_handler(request: fastapi.Request, exc: slowapi.errors.RateLimitExceeded) -> fastapi.responses.JSONResponse :async: .. py:data:: ROUTERS :type: tuple[fastapi.APIRouter, Ellipsis] .. py:function:: include_api_routers(fastapi_app: fastapi.FastAPI) -> None Mount all API routes under the shared /api namespace. :param fastapi_app: The FastAPI application to attach the routers to. :type fastapi_app: FastAPI .. py:function:: root() -> dict[str, str] Root endpoint to verify the API is running. :returns: A welcome message. :rtype: dict[str, str] .. py:function:: health_check() -> dict[str, str] Health check endpoint to verify the API is running. :returns: ``{"status": "ok", "message": "flip is running"}``. :rtype: dict[str, str] .. py:function:: main() -> None Entry point for the application script