Files
OmniRoute/src/app/docs/lib/openapi.generated.ts
Diego Rodrigues de Sa e Souza e697538beb docs: sync all documentation to v3.8.24 + count-guard & wiki/prose CI (#3804)
Integrated into release/v3.8.26 — reconciled: kept #3900's superset wiki-sync, dropped the superseded sync-wiki-home; counts taken from the newer canonical release docs; net-new value = vale/markdownlint docs-lint infra + 7 new docs (Notion/Obsidian/Plugin-Marketplace/Cost-Tracking/Free-Provider-Rankings/Feature-Flags/Egress-Policy) + check-docs-counts-sync guard.
2026-06-15 15:18:16 -03:00

228 lines
6.1 KiB
TypeScript

// AUTO-GENERATED by scripts/docs/gen-openapi-module.mjs — DO NOT EDIT MANUALLY
// Regenerate with: node scripts/docs/gen-openapi-module.mjs
//
// Source of truth: docs/reference/openapi.yaml
//
// The Api Explorer consumes `OPENAPI_ENDPOINTS`; the spec metadata
// (`OPENAPI_VERSION`, `OPENAPI_TITLE`) is surfaced in the page header.
export interface OpenApiEndpoint {
/** Path template — may contain `{param}` placeholders. */
path: string;
/** HTTP method in upper case (GET / POST / PUT / DELETE / PATCH / ...). */
method: string;
/** Short one-line summary from the spec. */
summary: string;
/** Long-form description (markdown is allowed). */
description: string;
/** Primary tag — used for sidebar grouping in the Api Explorer. */
tag: string;
/** All tags declared on the operation. */
tags: string[];
/** `true` when the operation declares a non-empty `security` array. */
requiresAuth: boolean;
/** `true` when the operation declares a `requestBody`. */
hasRequestBody: boolean;
}
export const OPENAPI_VERSION = "3.8.24";
export const OPENAPI_TITLE = "OmniRoute API";
export const OPENAPI_ENDPOINTS: OpenApiEndpoint[] = [
{
path: "/api/v1",
method: "GET",
summary: "API v1 root endpoint",
description: "Returns basic API info and status.",
tag: "System",
tags: ["System"],
requiresAuth: true,
hasRequestBody: false,
},
{
path: "/api/v1/api/chat",
method: "POST",
summary: "Ollama-compatible chat endpoint",
description: "Provides compatibility with Ollama's /api/chat format.",
tag: "Chat",
tags: ["Chat"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/audio/speech",
method: "POST",
summary: "Generate speech audio",
description: "Text-to-speech endpoint. Routes to configured TTS providers.",
tag: "Audio",
tags: ["Audio"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/audio/transcriptions",
method: "POST",
summary: "Transcribe audio",
description: "Audio-to-text transcription endpoint.",
tag: "Audio",
tags: ["Audio"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/chat/completions",
method: "POST",
summary: "Create chat completion",
description: "OpenAI-compatible chat completions endpoint. Routes to configured providers.",
tag: "Chat",
tags: ["Chat"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/embeddings",
method: "POST",
summary: "Create embeddings",
description: "",
tag: "Embeddings",
tags: ["Embeddings"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/images/generations",
method: "POST",
summary: "Generate images",
description: "",
tag: "Images",
tags: ["Images"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/messages",
method: "POST",
summary: "Create message (Anthropic-compatible)",
description: "Anthropic Messages API endpoint. Routes to Claude providers.",
tag: "Messages",
tags: ["Messages"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/messages/count_tokens",
method: "POST",
summary: "Count tokens for a message",
description: "",
tag: "Messages",
tags: ["Messages"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/models",
method: "GET",
summary: "List available models",
description: "Returns all models available across configured providers.",
tag: "Models",
tags: ["Models"],
requiresAuth: true,
hasRequestBody: false,
},
{
path: "/api/v1/moderations",
method: "POST",
summary: "Create moderation",
description: "Content moderation endpoint. Routes to configured moderation providers.",
tag: "Moderations",
tags: ["Moderations"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/providers/{provider}/chat/completions",
method: "POST",
summary: "Create chat completion (provider-specific)",
description: "Routes to a specific provider by name.",
tag: "Chat",
tags: ["Chat"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/providers/{provider}/embeddings",
method: "POST",
summary: "Create embeddings (provider-specific)",
description: "",
tag: "Embeddings",
tags: ["Embeddings"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/providers/{provider}/images/generations",
method: "POST",
summary: "Generate images (provider-specific)",
description: "",
tag: "Images",
tags: ["Images"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/providers/{provider}/models",
method: "GET",
summary: "List models for a specific provider",
description:
"Returns only models for the selected provider with provider prefix removed from each model id.",
tag: "Models",
tags: ["Models"],
requiresAuth: true,
hasRequestBody: false,
},
{
path: "/api/v1/rerank",
method: "POST",
summary: "Rerank documents",
description: "Document reranking endpoint.",
tag: "Rerank",
tags: ["Rerank"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1/responses",
method: "POST",
summary: "Create response (OpenAI Responses API)",
description: "OpenAI Responses API endpoint.",
tag: "Responses",
tags: ["Responses"],
requiresAuth: true,
hasRequestBody: true,
},
{
path: "/api/v1beta/models",
method: "GET",
summary: "List models (Gemini format)",
description: "Returns models in Gemini v1beta format for native SDK compatibility",
tag: "Models",
tags: ["Models"],
requiresAuth: true,
hasRequestBody: false,
},
{
path: "/api/v1beta/models/{path}",
method: "POST",
summary: "Gemini generateContent",
description: "Gemini-compatible generateContent endpoint",
tag: "Models",
tags: ["Models"],
requiresAuth: true,
hasRequestBody: true,
},
];
export const OPENAPI_TAGS: string[] = Array.from(
new Set(OPENAPI_ENDPOINTS.map((endpoint) => endpoint.tag))
).sort();