{"openapi":"3.1.0","info":{"title":"Deltawy Public API","version":"1.0.0","description":"Machine-readable discovery document for Deltawy public-facing API routes."},"servers":[{"url":"https://localhost:3009"}],"externalDocs":{"description":"Human-readable API overview","url":"https://localhost:3009/docs/api"},"tags":[{"name":"Discovery","description":"Agent and API discovery endpoints."},{"name":"Health","description":"Service health and status checks."},{"name":"Proxy","description":"Public backend proxy endpoints."}],"paths":{"/.well-known/api-catalog":{"get":{"tags":["Discovery"],"summary":"Get the API catalog","description":"Returns the API catalog in RFC 9727 Linkset JSON format.","responses":{"200":{"description":"API catalog document","content":{"application/linkset+json":{"schema":{"type":"object","properties":{"linkset":{"type":"array","items":{"type":"object"}}},"required":["linkset"]}}}}}},"head":{"tags":["Discovery"],"summary":"Inspect API catalog headers","description":"Returns discovery headers for the API catalog endpoint without a response body.","responses":{"200":{"description":"Discovery headers returned successfully"}}}},"/api/health":{"get":{"tags":["Health"],"summary":"Check service health","responses":{"200":{"description":"Health response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"service":{"type":"string","example":"deltawy"},"timestamp":{"type":"string","format":"date-time"}},"required":["status","service","timestamp"]}}}}}}},"/api/proxy":{"get":{"tags":["Proxy"],"summary":"Proxy read-only backend endpoints","description":"Proxies selected public GET endpoints from the backend service.","parameters":[{"name":"endpoint","in":"query","required":true,"schema":{"type":"string","enum":["videos","apps","sites","articles","services","team"]},"description":"The public GET endpoint to proxy."}],"responses":{"200":{"description":"Successful proxied response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Unknown or invalid endpoint"},"502":{"description":"Backend unreachable"}}},"post":{"tags":["Proxy"],"summary":"Proxy backend write and detail endpoints","description":"Proxies selected POST endpoints from the backend service. Some endpoints require authentication.","parameters":[{"name":"endpoint","in":"query","required":true,"schema":{"type":"string","enum":["articlesPojo","updateArticle","updateVideo","saveArticle","saveJob","articleDetails","serviceDetails","appDetails","websiteDetails","userss/create"]},"description":"The backend POST endpoint to proxy."}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Successful proxied response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Unknown or invalid endpoint"},"401":{"description":"Authentication required for protected write endpoints such as updateArticle, updateVideo, saveArticle, and userss/create."},"502":{"description":"Backend unreachable"}}}}}}