{ "openapi": "3.1.0", "info": { "title": "FastAPI", "version": "0.1.0" }, "paths": { "/ai-voicebot/api/admin/names": { "get": { "summary": "Admin List Names", "operationId": "admin_list_names_ai_voicebot_api_admin_names_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminNamesResponse" } } } } } } }, "/ai-voicebot/api/admin/set_password": { "post": { "summary": "Admin Set Password", "operationId": "admin_set_password_ai_voicebot_api_admin_set_password_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminSetPassword" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminActionResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ai-voicebot/api/admin/clear_password": { "post": { "summary": "Admin Clear Password", "operationId": "admin_clear_password_ai_voicebot_api_admin_clear_password_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminClearPassword" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminActionResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ai-voicebot/api/health": { "get": { "summary": "Health", "operationId": "health_ai_voicebot_api_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthResponse" } } } } } } }, "/ai-voicebot/api/session": { "get": { "summary": "Session", "operationId": "session_ai_voicebot_api_session_get", "parameters": [ { "name": "session_id", "in": "cookie", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ai-voicebot/api/lobby": { "get": { "summary": "Get Lobbies", "operationId": "get_lobbies_ai_voicebot_api_lobby_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LobbiesResponse" } } } } } } }, "/ai-voicebot/api/lobby/{session_id}": { "post": { "summary": "Lobby Create", "operationId": "lobby_create_ai_voicebot_api_lobby__session_id__post", "parameters": [ { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Session Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LobbyCreateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LobbyCreateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/ai-voicebot/{path}": { "put": { "summary": "Proxy Static", "operationId": "proxy_static_ai_voicebot__path__put", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "head": { "summary": "Proxy Static", "operationId": "proxy_static_ai_voicebot__path__put", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "options": { "summary": "Proxy Static", "operationId": "proxy_static_ai_voicebot__path__put", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "summary": "Proxy Static", "operationId": "proxy_static_ai_voicebot__path__put", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Proxy Static", "operationId": "proxy_static_ai_voicebot__path__put", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "summary": "Proxy Static", "operationId": "proxy_static_ai_voicebot__path__put", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "summary": "Proxy Static", "operationId": "proxy_static_ai_voicebot__path__put", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } } }, "components": { "schemas": { "AdminActionResponse": { "properties": { "status": { "type": "string", "enum": [ "ok", "not_found" ], "title": "Status" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "status", "name" ], "title": "AdminActionResponse", "description": "Response for admin actions" }, "AdminClearPassword": { "properties": { "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "name" ], "title": "AdminClearPassword", "description": "Request model for clearing admin password" }, "AdminNamesResponse": { "properties": { "name_passwords": { "additionalProperties": { "$ref": "#/components/schemas/NamePasswordRecord" }, "type": "object", "title": "Name Passwords" } }, "type": "object", "required": [ "name_passwords" ], "title": "AdminNamesResponse", "description": "Response for admin names endpoint" }, "AdminSetPassword": { "properties": { "name": { "type": "string", "title": "Name" }, "password": { "type": "string", "title": "Password" } }, "type": "object", "required": [ "name", "password" ], "title": "AdminSetPassword", "description": "Request model for setting admin password" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "HealthResponse": { "properties": { "status": { "type": "string", "title": "Status" } }, "type": "object", "required": [ "status" ], "title": "HealthResponse", "description": "Health check response" }, "LobbiesResponse": { "properties": { "lobbies": { "items": { "$ref": "#/components/schemas/LobbyListItem" }, "type": "array", "title": "Lobbies" } }, "type": "object", "required": [ "lobbies" ], "title": "LobbiesResponse", "description": "Response containing list of lobbies" }, "LobbyCreateData": { "properties": { "name": { "type": "string", "title": "Name" }, "private": { "type": "boolean", "title": "Private", "default": false } }, "type": "object", "required": [ "name" ], "title": "LobbyCreateData", "description": "Data for lobby creation" }, "LobbyCreateRequest": { "properties": { "type": { "type": "string", "const": "lobby_create", "title": "Type" }, "data": { "$ref": "#/components/schemas/LobbyCreateData" } }, "type": "object", "required": [ "type", "data" ], "title": "LobbyCreateRequest", "description": "Request for creating a lobby" }, "LobbyCreateResponse": { "properties": { "type": { "type": "string", "const": "lobby_created", "title": "Type" }, "data": { "$ref": "#/components/schemas/LobbyModel" } }, "type": "object", "required": [ "type", "data" ], "title": "LobbyCreateResponse", "description": "Response for lobby creation" }, "LobbyListItem": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "id", "name" ], "title": "LobbyListItem", "description": "Lobby item for list responses" }, "LobbyModel": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "private": { "type": "boolean", "title": "Private", "default": false } }, "type": "object", "required": [ "id", "name" ], "title": "LobbyModel", "description": "Core lobby model used across components" }, "NamePasswordRecord": { "properties": { "salt": { "type": "string", "title": "Salt" }, "hash": { "type": "string", "title": "Hash" } }, "type": "object", "required": [ "salt", "hash" ], "title": "NamePasswordRecord", "description": "Password hash record for reserved names" }, "SessionResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "lobbies": { "items": { "$ref": "#/components/schemas/LobbyModel" }, "type": "array", "title": "Lobbies" } }, "type": "object", "required": [ "id", "name", "lobbies" ], "title": "SessionResponse", "description": "Session response model" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" } } } }