From 89676c128995128703412b67e4b1e264b17f1aeb Mon Sep 17 00:00:00 2001 From: jeadie Date: Mon, 20 Apr 2026 10:06:10 +1000 Subject: [PATCH 1/3] Update OpenAPI spec for spiceai/spiceai#10272 --- website/public/openapi.json | 11643 +++++++++++++++++++++++++++------- 1 file changed, 9201 insertions(+), 2442 deletions(-) diff --git a/website/public/openapi.json b/website/public/openapi.json index 09c3dbabc..db76fb33c 100644 --- a/website/public/openapi.json +++ b/website/public/openapi.json @@ -7,7 +7,7 @@ "name": "Apache-2.0", "identifier": "Apache-2.0" }, - "version": "1.11.0-unstable" + "version": "2.0.0-unstable" }, "servers": [ { @@ -19,9 +19,10 @@ "/v1/catalogs": { "get": { "tags": [ - "Datasets" + "Catalogs" ], "summary": "List Catalogs", + "description": "Returns a list of all registered catalogs (data sources). Catalogs provide metadata about schemas and tables available from external data sources.", "operationId": "get_catalogs", "parameters": [ { @@ -43,7 +44,10 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CatalogResponseItem" + "type": "array", + "items": { + "$ref": "#/components/schemas/CatalogInfo" + } }, "example": [ { @@ -169,7 +173,7 @@ "Datasets" ], "summary": "List Datasets", - "description": "This endpoint returns a list of configured datasets. The response can be formatted as **JSON** or **CSV**,\nand additional filters can be applied using query parameters.\n\nUse `status=true` query parameter to include the current status of each dataset in the response.\nPossible status values: `initializing`, `ready`, `disabled`, `error`, `refreshing`, `shuttingdown`.", + "description": "This endpoint returns a list of configured datasets. The response can be formatted as **JSON** or **CSV**,\nand additional filters can be applied using query parameters.\n\nUse `status=true` query parameter to include the current status of each dataset in the response.\nPossible status values: `initializing`, `ready`, `disabled`, `error`, `refreshing`, `shuttingdown`.\nWhen `status=true` and a dataset is in `Error`, the response also includes:\n- `error`: structured code object with `category`, `type`, and stable `code`\n- `error_message`: user-visible details", "operationId": "get_datasets", "parameters": [ { @@ -205,11 +209,11 @@ ], "responses": { "200": { - "description": "List of datasets. When `status=true` is specified, each dataset includes a `status` field.", + "description": "List of datasets. When `status=true` is specified, each dataset includes `status` and error metadata (`error`, `error_message`) when applicable.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DatasetResponseItem" + "$ref": "#/components/schemas/DatasetInfo" }, "example": [ { @@ -217,21 +221,31 @@ "name": "daily_journal_accelerated", "replication_enabled": false, "acceleration_enabled": true, - "status": "Ready" + "status": "Ready", + "error": null, + "error_message": null }, { "from": "databricks:hive_metastore.default.messages", "name": "messages_accelerated", "replication_enabled": false, "acceleration_enabled": true, - "status": "Refreshing" + "status": "Error", + "error": { + "category": "dataset", + "type": "auth", + "code": "dataset.auth" + }, + "error_message": "Unable to authenticate with datasource credentials" }, { "from": "postgres:aidemo_messages", "name": "general", "replication_enabled": false, "acceleration_enabled": false, - "status": "Initializing" + "status": "Initializing", + "error": null, + "error_message": null } ] }, @@ -239,7 +253,7 @@ "schema": { "type": "string" }, - "example": "\nfrom,name,replication_enabled,acceleration_enabled,status\npostgres:syncs,daily_journal_accelerated,false,true,Ready\ndatabricks:hive_metastore.default.messages,messages_accelerated,false,true,Refreshing\npostgres:aidemo_messages,general,false,false,Initializing\n" + "example": "\nfrom,name,replication_enabled,acceleration_enabled,status,error,error_message\npostgres:syncs,daily_journal_accelerated,false,true,Ready,,\ndatabricks:hive_metastore.default.messages,messages_accelerated,false,true,Error,dataset.auth,Unable to authenticate with datasource credentials\npostgres:aidemo_messages,general,false,false,Initializing,,\n" } } }, @@ -497,111 +511,6 @@ } } }, - "/v1/evals": { - "get": { - "tags": [ - "Evaluations" - ], - "summary": "List Evals", - "description": "Return all evals available to run in the runtime.", - "operationId": "list", - "responses": { - "200": { - "description": "All evals available in the Spice runtime", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ListEvalElement" - } - }, - "example": [ - { - "name": "knows_math", - "description": "Questions from first year, undergraduate math exams", - "dataset": "math_exams", - "scorers": [ - "match", - "professor_logical_consistency" - ] - } - ] - } - } - } - } - } - }, - "/v1/evals/{name}": { - "post": { - "tags": [ - "Evaluations" - ], - "summary": "Run Eval", - "description": "Evaluate a model against a eval spice specification", - "operationId": "post_eval", - "parameters": [ - { - "name": "name", - "in": "path", - "description": "Name of the evaluation to run", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "Parameters to run the evaluation", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RunEval" - }, - "example": { - "model": "example_model" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Evaluation run successfully", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EvalRunResponse" - }, - "example": { - "primary_key": "eval_12345", - "time_column": "2024-12-19T12:34:56Z", - "dataset": "my_dataset", - "model": "example_model", - "status": "completed", - "error_message": null, - "scorers": [ - "scorer1", - "scorer2" - ], - "metrics": { - "scorer1/accuracy": 0.95, - "scorer2/accuracy": 0.93 - } - } - }, - "text/csv": { - "example": "primary_key,time_column,dataset,model,status,error_message,scorers,metrics\neval_12345,2024-12-19T12:34:56Z,my_dataset,example_model,completed,,\"[\"\"scorer1\"\", \"\"scorer2\"\"]\",\"{\"\"scorer1/accuracy\"\":0.95, \"\"scorer2/accuracy\"\":0.93}\"" - }, - "text/plain": { - "example": "+-------------+---------------------+-----------+---------------+-----------+----------------+------------------+---------------------------------------+\n | primary_key | time_column | dataset | model | status | error_message | scorers | metrics |\n +-------------+---------------------+-----------+---------------+-----------+----------------+------------------+---------------------------------------+\n | eval_12345 | 2024-12-19T12:34:56Z| my_dataset| example_model | completed | | scorer1, scorer2 | {\"accuracy\": 0.95, \"precision\": 0.93} |\n +-------------+---------------------+-----------+---------------+-----------+----------------+------------------+---------------------------------------+" - } - } - } - } - } - }, "/v1/iceberg/config": { "get": { "tags": [ @@ -733,6 +642,25 @@ } }, "/v1/iceberg/namespaces/{namespace}": { + "get": { + "tags": [ + "Iceberg" + ], + "summary": "Check if a namespace exists.", + "description": "This endpoint returns a 200 OK response if the namespace exists, otherwise it returns a 404 Not Found response.", + "operationId": "get_namespace", + "responses": { + "200": { + "description": "Namespace exists" + }, + "400": { + "description": "Invalid namespace format" + }, + "404": { + "description": "Namespace does not exist" + } + } + }, "head": { "tags": [ "Iceberg" @@ -744,12 +672,158 @@ "200": { "description": "Namespace exists" }, + "400": { + "description": "Invalid namespace format" + }, + "404": { + "description": "Namespace does not exist" + } + } + } + }, + "/v1/iceberg/namespaces/{namespace}/tables": { + "get": { + "tags": [ + "Iceberg" + ], + "operationId": "list_tables", + "responses": { + "200": { + "description": "Tables retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTablesResponse" + }, + "example": { + "identifiers": [ + { + "namespace": { + "parts": [ + "catalog_a" + ] + }, + "name": "table_1" + }, + { + "namespace": { + "parts": [ + "catalog_b", + "schema_1" + ] + }, + "name": "table_2" + } + ] + } + } + } + }, + "400": { + "description": "Invalid namespace format" + }, "404": { "description": "Namespace does not exist" } } } }, + "/v1/iceberg/namespaces/{namespace}/tables/{table}": { + "get": { + "tags": [ + "Iceberg" + ], + "summary": "Get a table.", + "description": "This endpoint returns the table if it exists, otherwise it returns a 404 Not Found response.", + "operationId": "get_table", + "parameters": [ + { + "name": "namespace", + "in": "path", + "description": "The namespace of the table.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "table", + "in": "path", + "description": "The name of the table.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Table exists", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LoadTableResponse" + } + } + } + }, + "404": { + "description": "Table does not exist" + }, + "500": { + "description": "An internal server error occurred while getting the table", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IcebergResponseError" + }, + "example": { + "error": { + "message": "Request failed. An internal server error occurred while getting the table.", + "r#type": "InternalServerError", + "code": 500 + } + } + } + } + } + } + }, + "head": { + "tags": [ + "Iceberg" + ], + "summary": "Check if a table exists.", + "description": "This endpoint returns a 200 OK response if the table exists, otherwise it returns a 404 Not Found response.", + "operationId": "head_table", + "parameters": [ + { + "name": "namespace", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/NamespacePath" + } + }, + { + "name": "table", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Table exists" + }, + "404": { + "description": "Table does not exist" + } + } + } + }, "/v1/mcp/sse": { "get": { "tags": [ @@ -796,7 +870,7 @@ "AI" ], "summary": "List Models", - "description": "List all models, both machine learning and language models, available in the runtime.", + "description": "List all models, both machine learning and language models, available in the runtime.\nWhen `status=true` and a model is in `Error`, the response also includes:\n- `error`: structured code object with `category`, `type`, and stable `code`\n- `error_message`: user-visible details", "operationId": "get_models", "parameters": [ { @@ -833,7 +907,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAIModelResponse" + "$ref": "#/components/schemas/ModelListResponse" }, "example": { "object": "list", @@ -843,7 +917,9 @@ "object": "model", "owned_by": "openai", "datasets": null, - "status": "ready" + "status": "ready", + "error": null, + "error_message": null }, { "id": "text-embedding-ada-002", @@ -853,7 +929,13 @@ "text-dataset-1", "text-dataset-2" ], - "status": "ready" + "status": "error", + "error": { + "category": "model", + "type": "auth", + "code": "model.auth" + }, + "error_message": "Invalid API key" } ] } @@ -862,7 +944,7 @@ "schema": { "type": "string" }, - "example": "\nid,object,owned_by,datasets,status\ngpt-4,model,openai,,ready\ntext-embedding-ada-002,model,openai-internal,\"text-dataset-1,text-dataset-2\",ready\n" + "example": "\nid,object,owned_by,datasets,status,error,error_message\ngpt-4,model,openai,,ready,,\ntext-embedding-ada-002,model,openai-internal,\"text-dataset-1,text-dataset-2\",error,model.auth,Invalid API key\n" } } }, @@ -1271,10 +1353,112 @@ } } }, + "/v1/responses": { + "post": { + "tags": [ + "AI" + ], + "operationId": "post_responses", + "requestBody": { + "description": "Create a response using the OpenAI Responses API format. This endpoint provides a more flexible conversation interface compared to Chat Completions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateResponse" + }, + "example": { + "model": "gpt-4o", + "input": "You are a helpful assistant.", + "stream": false + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Response generated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + }, + "example": { + "created_at": 1755639134, + "id": "resp_68a4ed5e2258819485ece563a803bbf2075163a5e5b1c982", + "metadata": {}, + "model": "test", + "object": "response", + "output": [ + { + "type": "message", + "content": [ + { + "type": "output_text", + "annotations": [], + "text": "Thank you! How can I assist you today?" + } + ], + "id": "msg_68a4ed5eb7e88194bf0b2560d8b5c0c1075163a5e5b1c982", + "role": "assistant", + "status": "completed" + } + ], + "parallel_tool_calls": true, + "reasoning": {}, + "store": true, + "service_tier": "default", + "status": "completed", + "temperature": 1.0, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1.0, + "truncation": "disabled", + "usage": { + "input_tokens": 13, + "input_tokens_details": { + "audio_tokens": null, + "cached_tokens": 0 + }, + "output_tokens": 11, + "output_tokens_details": { + "accepted_prediction_tokens": null, + "audio_tokens": null, + "reasoning_tokens": 0, + "rejected_prediction_tokens": null + }, + "total_tokens": 24 + } + } + } + } + }, + "404": { + "description": "The specified model was not found" + }, + "500": { + "description": "An internal server error occurred while processing the response", + "content": { + "application/json": { + "schema": {}, + "example": { + "error": "An internal server error occurred while processing the response." + } + } + } + } + } + } + }, "/v1/search": { "post": { "tags": [ - "SQL" + "Search" ], "summary": "Search", "description": "Perform a vector similarity search (VSS) operation on a dataset.\n\nThe search operation will return the most relevant matches based on cosine similarity with the input `text`.\nThe datasets queries should have an embedding column, and the appropriate embedding model loaded.", @@ -1326,7 +1510,7 @@ "data": { "timestamp": 1724716542 }, - "score": 0.914321 + "_score": 0.914321 }, { "matches": { @@ -1339,7 +1523,7 @@ "data": { "timestamp": 1724715881 }, - "score": 0.83221 + "_score": 0.83221 }, { "matches": { @@ -1352,7 +1536,7 @@ "data": { "timestamp": 1724716123 }, - "score": 0.787654321 + "_score": 0.787654321 } ], "duration_ms": 42 @@ -1702,8 +1886,8 @@ "Tools" ], "summary": "List Tools", - "description": "List available tools in the Spice runtime.", - "operationId": "list", + "description": "Returns a list of all available tools in the Spice runtime. Tools provide reusable functionality that can be invoked programmatically or by AI agents.", + "operationId": "list_tools", "responses": { "200": { "description": "All tools available in the Spice runtime", @@ -1739,8 +1923,8 @@ "Tools" ], "summary": "Run Tool", - "description": "The request body and JSON response formats match the tool’s specification.", - "operationId": "post", + "description": "Execute a specific tool by name. The request body schema and response format are defined by each individual tool's specification. Use `GET /v1/tools` to discover available tools and their parameter schemas.", + "operationId": "run_tool", "parameters": [ { "name": "name", @@ -1809,7 +1993,7 @@ } }, "500": { - "description": "Error occured whilst calling the tool", + "description": "An error occurred while calling the tool", "content": { "application/json": { "schema": {}, @@ -1821,8 +2005,73 @@ } } } - } - }, + }, + "/v1/workers": { + "get": { + "tags": [ + "Workers" + ], + "summary": "List Workers", + "description": "Returns a list of all registered workers in the runtime. Workers are configurable processing units that can perform tasks like load balancing between models or implementing fallback strategies.", + "operationId": "get_workers", + "parameters": [ + { + "name": "format", + "in": "query", + "description": "The format of the response (e.g., `json` or `csv`).", + "required": false, + "schema": { + "$ref": "#/components/schemas/Format" + } + } + ], + "responses": { + "200": { + "description": "List of workers in JSON format", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WorkerListResponse" + }, + "example": { + "object": "list", + "data": [ + { + "name": "round-robin", + "description": "Distributes requests between foo and bar models in a round-robin fashion.\n", + "is_llm": true + }, + { + "name": "fallback", + "description": "Attempts bar first, then foo, then baz if previous models fail.\n", + "is_llm": true + } + ] + } + }, + "text/csv": { + "schema": { + "type": "string" + }, + "example": "\nname,description,type,is_llm\nround-robin,\"Distributes requests between foo and bar models in a round-robin fashion.\",load_balance,true\nfallback,\"Attempts bar first, then foo, then baz if previous models fail.\",load_balance,true\n" + } + } + }, + "500": { + "description": "Internal server error occurred while processing workers", + "content": { + "application/json": { + "schema": {}, + "example": { + "error": "App not initialized" + } + } + } + } + } + } + } + }, "components": { "schemas": { "AccelerationRequest": { @@ -1833,357 +2082,295 @@ "string", "null" ], - "description": "SQL statement used for the refresh. Defaults to the `refresh_sql` specified in the spicepod." - } - } - }, - "BatchPredictRequest": { - "type": "object", - "properties": { - "predictions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PredictRequest" - }, - "description": "The list of prediction requests, each specifying the model to use for the prediction" + "description": "SQL statement used for the refresh. Defaults to current `refresh_sql` configured (either from the spicepod or a previous `refresh_sql` update)." } } }, - "BatchPredictResponse": { - "type": "object", - "required": [ - "predictions", - "duration_ms" - ], - "properties": { - "duration_ms": { - "type": "integer", - "minimum": 0 - }, - "predictions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PredictResponse" - } - } - } - }, - "CatalogResponseItem": { - "type": "object", - "required": [ - "from", - "name" - ], - "properties": { - "from": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "ChatChoice": { - "type": "object", - "required": [ - "index", - "message" - ], - "properties": { - "finish_reason": { - "oneOf": [ + "Annotation": { + "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/FileCitationBody", + "description": "A citation to a file." }, { - "$ref": "#/components/schemas/FinishReason", - "description": "The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,\n`length` if the maximum number of tokens specified in the request was reached,\n`content_filter` if content was omitted due to a flag from our content filters,\n`tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function." + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_citation" + ] + } + } } - ] + ], + "description": "A citation to a file." }, - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the choice in the list of choices.", - "minimum": 0 + { + "allOf": [ + { + "$ref": "#/components/schemas/UrlCitationBody", + "description": "A citation for a web resource used to generate a model response." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "url_citation" + ] + } + } + } + ], + "description": "A citation for a web resource used to generate a model response." }, - "logprobs": { - "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ContainerFileCitationBody", + "description": "A citation for a container file used to generate a model response." }, { - "$ref": "#/components/schemas/ChatChoiceLogprobs", - "description": "Log probability information for the choice." + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "container_file_citation" + ] + } + } } - ] + ], + "description": "A citation for a container file used to generate a model response." }, - "message": { - "$ref": "#/components/schemas/ChatCompletionResponseMessage" + { + "allOf": [ + { + "$ref": "#/components/schemas/FilePath", + "description": "A path to a file." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_path" + ] + } + } + } + ], + "description": "A path to a file." } - } + ] }, - "ChatChoiceLogprobs": { + "ApplyPatchCallOutputStatus": { + "type": "string", + "description": "Outcome values reported for apply_patch tool call outputs.", + "enum": [ + "completed", + "failed" + ] + }, + "ApplyPatchCallOutputStatusParam": { + "type": "string", + "description": "Outcome values reported for apply_patch tool call outputs.", + "enum": [ + "completed", + "failed" + ] + }, + "ApplyPatchCallStatus": { + "type": "string", + "description": "Status values reported for apply_patch tool calls.", + "enum": [ + "in_progress", + "completed" + ] + }, + "ApplyPatchCallStatusParam": { + "type": "string", + "description": "Status values reported for apply_patch tool calls.", + "enum": [ + "in_progress", + "completed" + ] + }, + "ApplyPatchCreateFileOperation": { "type": "object", + "description": "Instruction describing how to create a file via the apply_patch tool.", + "required": [ + "path", + "diff" + ], "properties": { - "content": { - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/components/schemas/ChatCompletionTokenLogprob" - }, - "description": "A list of message content tokens with log probability information." + "diff": { + "type": "string", + "description": "Diff to apply." }, - "refusal": { - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/components/schemas/ChatCompletionTokenLogprob" - } + "path": { + "type": "string", + "description": "Path of the file to create." } } }, - "ChatCompletionAllowedTools": { + "ApplyPatchCreateFileOperationParam": { "type": "object", + "description": "Instruction for creating a new file via the apply_patch tool.", "required": [ - "mode", - "tools" + "path", + "diff" ], "properties": { - "mode": { - "$ref": "#/components/schemas/ToolChoiceAllowedMode", - "description": "Constrains the tools available to the model to a pre-defined set.\n\n`auto` allows the model to pick from among the allowed tools and generate a\nmessage.\n\n`required` requires the model to call one or more of the allowed tools." + "diff": { + "type": "string", + "description": "Unified diff content to apply when creating the file." }, - "tools": { - "type": "array", - "items": {}, - "description": "A list of tool definitions that the model should be allowed to call.\n\nFor the Chat Completions API, the list of tool definitions might look like:\n```json\n[\n { \"type\": \"function\", \"function\": { \"name\": \"get_weather\" } },\n { \"type\": \"function\", \"function\": { \"name\": \"get_time\" } }\n]\n```" + "path": { + "type": "string", + "description": "Path of the file to create relative to the workspace root." } } }, - "ChatCompletionAllowedToolsChoice": { + "ApplyPatchDeleteFileOperation": { "type": "object", + "description": "Instruction describing how to delete a file via the apply_patch tool.", "required": [ - "allowed_tools" + "path" ], "properties": { - "allowed_tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChatCompletionAllowedTools" - } + "path": { + "type": "string", + "description": "Path of the file to delete." } } }, - "ChatCompletionAudio": { + "ApplyPatchDeleteFileOperationParam": { "type": "object", + "description": "Instruction for deleting an existing file via the apply_patch tool.", "required": [ - "voice", - "format" + "path" ], "properties": { - "format": { - "$ref": "#/components/schemas/ChatCompletionAudioFormat", - "description": "Specifies the output audio format. Must be one of `wav`, `aac`, `mp3`, `flac`, `opus`, or `pcm16`." - }, - "voice": { - "$ref": "#/components/schemas/ChatCompletionAudioVoice", - "description": "The voice the model uses to respond. Supported voices are\n`alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`." + "path": { + "type": "string", + "description": "Path of the file to delete relative to the workspace root." } } }, - "ChatCompletionAudioFormat": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ] - }, - "ChatCompletionAudioVoice": { + "ApplyPatchOperation": { "oneOf": [ { - "type": "string", - "enum": [ - "alloy" - ] - }, - { - "type": "string", - "enum": [ - "ash" - ] - }, - { - "type": "string", - "enum": [ - "ballad" - ] - }, - { - "type": "string", - "enum": [ - "coral" - ] - }, - { - "type": "string", - "enum": [ - "echo" - ] - }, - { - "type": "string", - "enum": [ - "fable" - ] - }, - { - "type": "string", - "enum": [ - "nova" - ] - }, - { - "type": "string", - "enum": [ - "onyx" - ] - }, - { - "type": "string", - "enum": [ - "sage" + "allOf": [ + { + "$ref": "#/components/schemas/ApplyPatchCreateFileOperation" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "create_file" + ] + } + } + } ] }, { - "type": "string", - "enum": [ - "shimmer" + "allOf": [ + { + "$ref": "#/components/schemas/ApplyPatchDeleteFileOperation" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "delete_file" + ] + } + } + } ] }, { - "type": "object", - "required": [ - "other" - ], - "properties": { - "other": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/ApplyPatchUpdateFileOperation" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update_file" + ] + } + } } - } + ] } - ] + ], + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch." }, - "ChatCompletionFunctionCall": { + "ApplyPatchOperationParam": { "oneOf": [ { - "type": "string", - "description": "The model does not call a function, and responds to the end-user.", - "enum": [ - "none" - ] - }, - { - "type": "string", - "description": "The model can pick between an end-user or calling a function.", - "enum": [ - "auto" - ] - }, - { - "type": "object", - "description": "Forces the model to call the specified function.", - "required": [ - "Function" - ], - "properties": { - "Function": { + "allOf": [ + { + "$ref": "#/components/schemas/ApplyPatchCreateFileOperationParam" + }, + { "type": "object", - "description": "Forces the model to call the specified function.", "required": [ - "name" + "type" ], "properties": { - "name": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "create_file" + ] } } } - } - } - ] - }, - "ChatCompletionFunctions": { - "type": "object", - "required": [ - "name", - "parameters" - ], - "properties": { - "description": { - "type": [ - "string", - "null" - ], - "description": "A description of what the function does, used by the model to choose when and how to call the function." - }, - "name": { - "type": "string", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." - }, - "parameters": { - "description": "The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/text-generation/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." - } - } - }, - "ChatCompletionMessageCustomToolCall": { - "type": "object", - "required": [ - "id", - "custom_tool" - ], - "properties": { - "custom_tool": { - "$ref": "#/components/schemas/CustomTool", - "description": "The custom tool that the model called." - }, - "id": { - "type": "string", - "description": "The ID of the tool call." - } - } - }, - "ChatCompletionMessageToolCall": { - "type": "object", - "required": [ - "id", - "function" - ], - "properties": { - "function": { - "$ref": "#/components/schemas/FunctionCall", - "description": "The function that the model called." + ] }, - "id": { - "type": "string", - "description": "The ID of the tool call." - } - } - }, - "ChatCompletionMessageToolCalls": { - "oneOf": [ { "allOf": [ { - "$ref": "#/components/schemas/ChatCompletionMessageToolCall" + "$ref": "#/components/schemas/ApplyPatchDeleteFileOperationParam" }, { "type": "object", @@ -2194,7 +2381,7 @@ "type": { "type": "string", "enum": [ - "function" + "delete_file" ] } } @@ -2204,7 +2391,7 @@ { "allOf": [ { - "$ref": "#/components/schemas/ChatCompletionMessageCustomToolCall" + "$ref": "#/components/schemas/ApplyPatchUpdateFileOperationParam" }, { "type": "object", @@ -2215,591 +2402,554 @@ "type": { "type": "string", "enum": [ - "custom" + "update_file" ] } } } ] } - ] + ], + "description": "One of the create_file, delete_file, or update_file operations supplied to the apply_patch tool." }, - "ChatCompletionNamedToolChoice": { + "ApplyPatchToolCall": { "type": "object", - "description": "Specifies a tool the model should use. Use to force the model to call a specific function.", + "description": "A tool call that applies file diffs by creating, deleting, or updating files.", "required": [ - "function" + "id", + "call_id", + "status", + "operation" ], "properties": { - "function": { - "$ref": "#/components/schemas/FunctionName" + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "created_by": { + "type": [ + "string", + "null" + ], + "description": "The ID of the entity that created this tool call." + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call. Populated when this item is returned via API." + }, + "operation": { + "$ref": "#/components/schemas/ApplyPatchOperation", + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch." + }, + "status": { + "$ref": "#/components/schemas/ApplyPatchCallStatus", + "description": "The status of the apply patch tool call. One of `in_progress` or `completed`." } } }, - "ChatCompletionNamedToolChoiceCustom": { + "ApplyPatchToolCallItemParam": { "type": "object", + "description": "A tool call representing a request to create, delete, or update files using diff patches.", "required": [ - "custom" + "call_id", + "status", + "operation" ], "properties": { - "custom": { - "$ref": "#/components/schemas/CustomName" - } + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the apply patch tool call. Populated when this item is returned via API." + }, + "operation": { + "$ref": "#/components/schemas/ApplyPatchOperationParam", + "description": "The specific create, delete, or update instruction for the apply_patch tool call." + }, + "status": { + "$ref": "#/components/schemas/ApplyPatchCallStatusParam", + "description": "The status of the apply patch tool call. One of `in_progress` or `completed`." + } } }, - "ChatCompletionRequestAssistantMessage": { + "ApplyPatchToolCallOutput": { "type": "object", + "description": "The output emitted by an apply patch tool call.", + "required": [ + "id", + "call_id", + "status" + ], "properties": { - "audio": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/ChatCompletionRequestAssistantMessageAudio", - "description": "Data about a previous audio response from the model.\n[Learn more](https://platform.openai.com/docs/guides/audio)." - } - ] + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." }, - "content": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/ChatCompletionRequestAssistantMessageContent", - "description": "The contents of the assistant message. Required unless `tool_calls` or `function_call` is specified." - } - ] + "created_by": { + "type": [ + "string", + "null" + ], + "description": "The ID of the entity that created this tool call output." }, - "function_call": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/FunctionCall", - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model." - } - ] + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call output. Populated when this item is returned via API." }, - "name": { + "output": { "type": [ "string", "null" ], - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + "description": "Optional textual output returned by the apply patch tool." }, - "refusal": { + "status": { + "$ref": "#/components/schemas/ApplyPatchCallOutputStatus", + "description": "The status of the apply patch tool call output. One of `completed` or `failed`." + } + } + }, + "ApplyPatchToolCallOutputItemParam": { + "type": "object", + "description": "The streamed output emitted by an apply patch tool call.", + "required": [ + "call_id", + "status" + ], + "properties": { + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "id": { "type": [ "string", "null" ], - "description": "The refusal message by the assistant." + "description": "The unique ID of the apply patch tool call output. Populated when this item is returned via API." }, - "tool_calls": { + "output": { "type": [ - "array", + "string", "null" ], - "items": { - "$ref": "#/components/schemas/ChatCompletionMessageToolCalls" - } + "description": "Optional human-readable log text from the apply patch tool (e.g., patch results or errors)." + }, + "status": { + "$ref": "#/components/schemas/ApplyPatchCallOutputStatusParam", + "description": "The status of the apply patch tool call output. One of `completed` or `failed`." } } }, - "ChatCompletionRequestAssistantMessageAudio": { + "ApplyPatchUpdateFileOperation": { "type": "object", + "description": "Instruction describing how to update a file via the apply_patch tool.", "required": [ - "id" + "path", + "diff" ], "properties": { - "id": { + "diff": { "type": "string", - "description": "Unique identifier for a previous audio response from the model." + "description": "Diff to apply." + }, + "path": { + "type": "string", + "description": "Path of the file to update." } } }, - "ChatCompletionRequestAssistantMessageContent": { - "oneOf": [ - { + "ApplyPatchUpdateFileOperationParam": { + "type": "object", + "description": "Instruction for updating an existing file via the apply_patch tool.", + "required": [ + "path", + "diff" + ], + "properties": { + "diff": { "type": "string", - "description": "The text contents of the message." + "description": "Unified diff content to apply to the existing file." }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChatCompletionRequestAssistantMessageContentPart" - }, - "description": "An array of content parts with a defined type. Can be one or more of type `text`, or exactly one of type `refusal`." + "path": { + "type": "string", + "description": "Path of the file to update relative to the workspace root." } - ] + } }, - "ChatCompletionRequestAssistantMessageContentPart": { - "oneOf": [ - { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartRefusal" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "refusal" - ] - } - } - } - ] - } + "AssistantRole": { + "type": "string", + "description": "The role for an output message - always `assistant`.\nThis type ensures type safety by only allowing the assistant role.", + "enum": [ + "assistant" ] }, - "ChatCompletionRequestDeveloperMessage": { + "BatchPredictRequest": { "type": "object", - "required": [ - "content" - ], "properties": { - "content": { - "$ref": "#/components/schemas/ChatCompletionRequestDeveloperMessageContent", - "description": "The contents of the developer message." - }, - "name": { - "type": [ - "string", - "null" - ], - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + "predictions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PredictRequest" + }, + "description": "The list of prediction requests, each specifying the model to use for the prediction" } } }, - "ChatCompletionRequestDeveloperMessageContent": { - "oneOf": [ - { - "type": "string" + "BatchPredictResponse": { + "type": "object", + "required": [ + "predictions", + "duration_ms" + ], + "properties": { + "duration_ms": { + "type": "integer", + "minimum": 0 }, - { + "predictions": { "type": "array", "items": { - "$ref": "#/components/schemas/ChatCompletionRequestDeveloperMessageContentPart" + "$ref": "#/components/schemas/PredictResponse" } } - ] + } }, - "ChatCompletionRequestDeveloperMessageContentPart": { - "oneOf": [ - { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - } - } - ] + "Billing": { + "type": "object", + "required": [ + "payer" + ], + "properties": { + "payer": { + "type": "string" } - ] + } }, - "ChatCompletionRequestFunctionMessage": { + "CatalogInfo": { "type": "object", + "description": "Catalog information returned by the `/v1/catalogs` endpoint.", "required": [ + "from", "name" ], "properties": { - "content": { - "type": [ - "string", - "null" - ], - "description": "The return value from the function call, to return to the model." + "from": { + "type": "string", + "description": "The source/provider of the catalog (e.g., `spiceai`, `unity`)" }, "name": { "type": "string", - "description": "The name of the function to call." + "description": "The name of the catalog" } } }, - "ChatCompletionRequestMessage": { - "oneOf": [ - { - "allOf": [ + "ChatChoice": { + "type": "object", + "required": [ + "index", + "message" + ], + "properties": { + "finish_reason": { + "oneOf": [ { - "$ref": "#/components/schemas/ChatCompletionRequestDeveloperMessage" + "type": "null" }, { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "type": "string", - "enum": [ - "developer" - ] - } - } + "$ref": "#/components/schemas/FinishReason", + "description": "The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,\n`length` if the maximum number of tokens specified in the request was reached,\n`content_filter` if content was omitted due to a flag from our content filters,\n`tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function." } ] }, - { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestSystemMessage" - }, - { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "type": "string", - "enum": [ - "system" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestUserMessage" - }, - { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestAssistantMessage" - }, - { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "type": "string", - "enum": [ - "assistant" - ] - } - } - } - ] + "index": { + "type": "integer", + "format": "int32", + "description": "The index of the choice in the list of choices.", + "minimum": 0 }, - { - "allOf": [ + "logprobs": { + "oneOf": [ { - "$ref": "#/components/schemas/ChatCompletionRequestToolMessage" + "type": "null" }, { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ] - } - } + "$ref": "#/components/schemas/ChatChoiceLogprobs", + "description": "Log probability information for the choice." } ] }, - { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestFunctionMessage" - }, - { - "type": "object", - "required": [ - "role" - ], - "properties": { - "role": { - "type": "string", - "enum": [ - "function" - ] - } - } - } - ] - } - ] - }, - "ChatCompletionRequestMessageContentPartAudio": { - "type": "object", - "description": "Learn about [audio inputs](https://platform.openai.com/docs/guides/audio).", - "required": [ - "input_audio" - ], - "properties": { - "input_audio": { - "$ref": "#/components/schemas/InputAudio" - } - } - }, - "ChatCompletionRequestMessageContentPartFile": { - "type": "object", - "required": [ - "file" - ], - "properties": { - "file": { - "$ref": "#/components/schemas/FileObject" + "message": { + "$ref": "#/components/schemas/ChatCompletionResponseMessage" } } }, - "ChatCompletionRequestMessageContentPartImage": { + "ChatChoiceLogprobs": { "type": "object", - "required": [ - "image_url" - ], "properties": { - "image_url": { - "$ref": "#/components/schemas/ImageUrl" + "content": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/ChatCompletionTokenLogprob" + }, + "description": "A list of message content tokens with log probability information." + }, + "refusal": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/ChatCompletionTokenLogprob" + } } } }, - "ChatCompletionRequestMessageContentPartRefusal": { + "ChatCompletionAllowedTools": { "type": "object", "required": [ - "refusal" + "mode", + "tools" ], "properties": { - "refusal": { - "type": "string", - "description": "The refusal message generated by the model." + "mode": { + "$ref": "#/components/schemas/ToolChoiceAllowedMode", + "description": "Constrains the tools available to the model to a pre-defined set.\n\n`auto` allows the model to pick from among the allowed tools and generate a\nmessage.\n\n`required` requires the model to call one or more of the allowed tools." + }, + "tools": { + "type": "array", + "items": {}, + "description": "A list of tool definitions that the model should be allowed to call.\n\nFor the Chat Completions API, the list of tool definitions might look like:\n```json\n[\n { \"type\": \"function\", \"function\": { \"name\": \"get_weather\" } },\n { \"type\": \"function\", \"function\": { \"name\": \"get_time\" } }\n]\n```" } } }, - "ChatCompletionRequestMessageContentPartText": { + "ChatCompletionAllowedToolsChoice": { "type": "object", "required": [ - "text" + "allowed_tools" ], "properties": { - "text": { - "type": "string" + "allowed_tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatCompletionAllowedTools" + } } } }, - "ChatCompletionRequestSystemMessage": { + "ChatCompletionAudio": { "type": "object", "required": [ - "content" + "voice", + "format" ], "properties": { - "content": { - "$ref": "#/components/schemas/ChatCompletionRequestSystemMessageContent", - "description": "The contents of the system message." + "format": { + "$ref": "#/components/schemas/ChatCompletionAudioFormat", + "description": "Specifies the output audio format. Must be one of `wav`, `aac`, `mp3`, `flac`, `opus`, or `pcm16`." }, - "name": { - "type": [ - "string", - "null" - ], - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + "voice": { + "$ref": "#/components/schemas/ChatCompletionAudioVoice", + "description": "The voice the model uses to respond. Supported voices are\n`alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`." } } }, - "ChatCompletionRequestSystemMessageContent": { + "ChatCompletionAudioFormat": { + "type": "string", + "enum": [ + "wav", + "aac", + "mp3", + "flac", + "opus", + "pcm16" + ] + }, + "ChatCompletionAudioVoice": { "oneOf": [ { "type": "string", - "description": "The text contents of the system message." + "enum": [ + "alloy" + ] }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChatCompletionRequestSystemMessageContentPart" - }, - "description": "An array of content parts with a defined type. For system messages, only type `text` is supported." - } - ] - }, - "ChatCompletionRequestSystemMessageContentPart": { - "oneOf": [ - { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] - } - } - } + "type": "string", + "enum": [ + "ash" ] - } - ] - }, - "ChatCompletionRequestToolMessage": { - "type": "object", - "description": "Tool message", - "required": [ - "content", - "tool_call_id" - ], - "properties": { - "content": { - "$ref": "#/components/schemas/ChatCompletionRequestToolMessageContent", - "description": "The contents of the tool message." }, - "tool_call_id": { - "type": "string" - } - } - }, - "ChatCompletionRequestToolMessageContent": { - "oneOf": [ { "type": "string", - "description": "The text contents of the tool message." + "enum": [ + "ballad" + ] }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChatCompletionRequestToolMessageContentPart" - }, - "description": "An array of content parts with a defined type. For tool messages, only type `text` is supported." + "type": "string", + "enum": [ + "coral" + ] + }, + { + "type": "string", + "enum": [ + "echo" + ] + }, + { + "type": "string", + "enum": [ + "fable" + ] + }, + { + "type": "string", + "enum": [ + "nova" + ] + }, + { + "type": "string", + "enum": [ + "onyx" + ] + }, + { + "type": "string", + "enum": [ + "sage" + ] + }, + { + "type": "string", + "enum": [ + "shimmer" + ] + }, + { + "type": "object", + "required": [ + "other" + ], + "properties": { + "other": { + "type": "string" + } + } } ] }, - "ChatCompletionRequestToolMessageContentPart": { + "ChatCompletionFunctionCall": { "oneOf": [ { - "allOf": [ - { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" - }, - { + "type": "string", + "description": "The model does not call a function, and responds to the end-user.", + "enum": [ + "none" + ] + }, + { + "type": "string", + "description": "The model can pick between an end-user or calling a function.", + "enum": [ + "auto" + ] + }, + { + "type": "object", + "description": "Forces the model to call the specified function.", + "required": [ + "Function" + ], + "properties": { + "Function": { "type": "object", + "description": "Forces the model to call the specified function.", "required": [ - "type" + "name" ], "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] + "name": { + "type": "string" } } } - ] + } } ] }, - "ChatCompletionRequestUserMessage": { + "ChatCompletionFunctions": { "type": "object", "required": [ - "content" + "name", + "parameters" ], "properties": { - "content": { - "$ref": "#/components/schemas/ChatCompletionRequestUserMessageContent", - "description": "The contents of the user message." - }, - "name": { + "description": { "type": [ "string", "null" ], - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + "description": "A description of what the function does, used by the model to choose when and how to call the function." + }, + "name": { + "type": "string", + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + }, + "parameters": { + "description": "The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/text-generation/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." } } }, - "ChatCompletionRequestUserMessageContent": { - "oneOf": [ - { + "ChatCompletionMessageCustomToolCall": { + "type": "object", + "required": [ + "id", + "custom_tool" + ], + "properties": { + "custom_tool": { + "$ref": "#/components/schemas/CustomTool", + "description": "The custom tool that the model called." + }, + "id": { "type": "string", - "description": "The text contents of the message." + "description": "The ID of the tool call." + } + } + }, + "ChatCompletionMessageToolCall": { + "type": "object", + "required": [ + "id", + "function" + ], + "properties": { + "function": { + "$ref": "#/components/schemas/FunctionCall", + "description": "The function that the model called." }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChatCompletionRequestUserMessageContentPart" - }, - "description": "An array of content parts with a defined type. Supported options differ based on the [model](https://platform.openai.com/docs/models) being used to generate the response. Can contain text, image, or audio inputs." + "id": { + "type": "string", + "description": "The ID of the tool call." } - ] + } }, - "ChatCompletionRequestUserMessageContentPart": { + "ChatCompletionMessageToolCalls": { "oneOf": [ { "allOf": [ { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" + "$ref": "#/components/schemas/ChatCompletionMessageToolCall" }, { "type": "object", @@ -2810,7 +2960,7 @@ "type": { "type": "string", "enum": [ - "text" + "function" ] } } @@ -2820,7 +2970,7 @@ { "allOf": [ { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartImage" + "$ref": "#/components/schemas/ChatCompletionMessageCustomToolCall" }, { "type": "object", @@ -2831,112 +2981,87 @@ "type": { "type": "string", "enum": [ - "image_url" + "custom" ] } } } ] + } + ] + }, + "ChatCompletionNamedToolChoice": { + "type": "object", + "description": "Specifies a tool the model should use. Use to force the model to call a specific function.", + "required": [ + "function" + ], + "properties": { + "function": { + "$ref": "#/components/schemas/FunctionName" + } + } + }, + "ChatCompletionNamedToolChoiceCustom": { + "type": "object", + "required": [ + "custom" + ], + "properties": { + "custom": { + "$ref": "#/components/schemas/CustomName" + } + } + }, + "ChatCompletionRequestAssistantMessage": { + "type": "object", + "properties": { + "audio": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ChatCompletionRequestAssistantMessageAudio", + "description": "Data about a previous audio response from the model.\n[Learn more](https://platform.openai.com/docs/guides/audio)." + } + ] }, - { - "allOf": [ + "content": { + "oneOf": [ { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartAudio" + "type": "null" }, { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "input_audio" - ] - } - } + "$ref": "#/components/schemas/ChatCompletionRequestAssistantMessageContent", + "description": "The contents of the assistant message. Required unless `tool_calls` or `function_call` is specified." } ] }, - { - "allOf": [ + "function_call": { + "oneOf": [ { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartFile" + "type": "null" }, { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "file" - ] - } - } - } - ] - } - ] - }, - "ChatCompletionResponseMessage": { - "type": "object", - "description": "A chat completion message generated by the model.", - "required": [ - "role" - ], - "properties": { - "annotations": { - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/components/schemas/ChatCompletionResponseMessageAnnotation" - } - }, - "audio": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/ChatCompletionResponseMessageAudio", - "description": "If the audio output modality is requested, this object contains data about the audio response from the model. [Learn more](https://platform.openai.com/docs/guides/audio)." + "$ref": "#/components/schemas/FunctionCall", + "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model." } ] }, - "content": { + "name": { "type": [ "string", "null" ], - "description": "The contents of the message." - }, - "function_call": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/FunctionCall", - "description": "Deprecated and replaced by `tool_calls`.\nThe name and arguments of a function that should be called, as generated by the model." - } - ] + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." }, "refusal": { "type": [ "string", "null" ], - "description": "The refusal message generated by the model." - }, - "role": { - "$ref": "#/components/schemas/Role", - "description": "The role of the author of this message." + "description": "The refusal message by the assistant." }, "tool_calls": { "type": [ @@ -2945,137 +3070,43 @@ ], "items": { "$ref": "#/components/schemas/ChatCompletionMessageToolCalls" - }, - "description": "The tool calls generated by the model, such as function calls." - } - } - }, - "ChatCompletionResponseMessageAnnotation": { - "oneOf": [ - { - "type": "object", - "required": [ - "url_citation", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ] - }, - "url_citation": { - "$ref": "#/components/schemas/UrlCitation" - } } } - ] + } }, - "ChatCompletionResponseMessageAudio": { + "ChatCompletionRequestAssistantMessageAudio": { "type": "object", "required": [ - "id", - "expires_at", - "data", - "transcript" + "id" ], "properties": { - "data": { - "type": "string", - "description": "Base64 encoded audio bytes generated by the model, in the format specified in the request." - }, - "expires_at": { - "type": "integer", - "format": "int64", - "description": "The Unix timestamp (in seconds) for when this audio response will no longer be accessible on the server for use in multi-turn conversations.", - "minimum": 0 - }, "id": { "type": "string", - "description": "Unique identifier for this audio response." - }, - "transcript": { - "type": "string", - "description": "Transcript of the audio generated by the model." - } - } - }, - "ChatCompletionStreamOptions": { - "type": "object", - "description": "Options for streaming response. Only set this when you set `stream: true`.", - "properties": { - "include_obfuscation": { - "type": [ - "boolean", - "null" - ], - "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds\nrandom characters to an `obfuscation` field on streaming delta events to\nnormalize payload sizes as a mitigation to certain side-channel attacks.\nThese obfuscation fields are included by default, but add a small amount\nof overhead to the data stream. You can set `include_obfuscation` to\nfalse to optimize for bandwidth if you trust the network links between\nyour application and the OpenAI API." - }, - "include_usage": { - "type": [ - "boolean", - "null" - ], - "description": "If set, an additional chunk will be streamed before the `data: [DONE]`\nmessage. The `usage` field on this chunk shows the token usage statistics\nfor the entire request, and the `choices` field will always be an empty\narray.\n\nAll other chunks will also include a `usage` field, but with a null\nvalue. **NOTE:** If the stream is interrupted, you may not receive the\nfinal usage chunk which contains the total token usage for the request." + "description": "Unique identifier for a previous audio response from the model." } } }, - "ChatCompletionTokenLogprob": { - "type": "object", - "required": [ - "token", - "logprob", - "top_logprobs" - ], - "properties": { - "bytes": { - "type": [ - "array", - "null" - ], - "items": { - "type": "integer", - "format": "int32", - "minimum": 0 - }, - "description": "A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token." - }, - "logprob": { - "type": "number", - "format": "float", - "description": "The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely." - }, - "token": { + "ChatCompletionRequestAssistantMessageContent": { + "oneOf": [ + { "type": "string", - "description": "The token." + "description": "The text contents of the message." }, - "top_logprobs": { + { "type": "array", "items": { - "$ref": "#/components/schemas/TopLogprobs" + "$ref": "#/components/schemas/ChatCompletionRequestAssistantMessageContentPart" }, - "description": "List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned." - } - } - }, - "ChatCompletionTool": { - "type": "object", - "required": [ - "function" - ], - "properties": { - "function": { - "$ref": "#/components/schemas/FunctionObject" + "description": "An array of content parts with a defined type. Can be one or more of type `text`, or exactly one of type `refusal`." } - } + ] }, - "ChatCompletionToolChoiceOption": { + "ChatCompletionRequestAssistantMessageContentPart": { "oneOf": [ { "allOf": [ { - "$ref": "#/components/schemas/ChatCompletionAllowedToolsChoice" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" }, { "type": "object", @@ -3086,7 +3117,7 @@ "type": { "type": "string", "enum": [ - "allowed_tools" + "text" ] } } @@ -3096,7 +3127,7 @@ { "allOf": [ { - "$ref": "#/components/schemas/ChatCompletionNamedToolChoice" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartRefusal" }, { "type": "object", @@ -3107,17 +3138,53 @@ "type": { "type": "string", "enum": [ - "function" + "refusal" ] } } } ] + } + ] + }, + "ChatCompletionRequestDeveloperMessage": { + "type": "object", + "required": [ + "content" + ], + "properties": { + "content": { + "$ref": "#/components/schemas/ChatCompletionRequestDeveloperMessageContent", + "description": "The contents of the developer message." + }, + "name": { + "type": [ + "string", + "null" + ], + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + } + }, + "ChatCompletionRequestDeveloperMessageContent": { + "oneOf": [ + { + "type": "string" }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatCompletionRequestDeveloperMessageContentPart" + } + } + ] + }, + "ChatCompletionRequestDeveloperMessageContentPart": { + "oneOf": [ { "allOf": [ { - "$ref": "#/components/schemas/ChatCompletionNamedToolChoiceCustom" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" }, { "type": "object", @@ -3128,1707 +3195,8205 @@ "type": { "type": "string", "enum": [ - "custom" + "text" ] } } } ] + } + ] + }, + "ChatCompletionRequestFunctionMessage": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "content": { + "type": [ + "string", + "null" + ], + "description": "The return value from the function call, to return to the model." }, + "name": { + "type": "string", + "description": "The name of the function to call." + } + } + }, + "ChatCompletionRequestMessage": { + "oneOf": [ { "allOf": [ { - "$ref": "#/components/schemas/ToolChoiceOptions" + "$ref": "#/components/schemas/ChatCompletionRequestDeveloperMessage" }, { "type": "object", "required": [ - "type" + "role" ], "properties": { - "type": { + "role": { "type": "string", "enum": [ - "mode" + "developer" ] } } } ] - } - ], - "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.\n\n`none` is the default when no tools are present. `auto` is the default if tools are present." - }, - "ChatCompletionTools": { - "oneOf": [ + }, { "allOf": [ { - "$ref": "#/components/schemas/ChatCompletionTool", - "description": "A function tool that can be used to generate a response." + "$ref": "#/components/schemas/ChatCompletionRequestSystemMessage" }, { "type": "object", "required": [ - "type" + "role" ], "properties": { - "type": { + "role": { "type": "string", "enum": [ - "function" + "system" ] } } } - ], - "description": "A function tool that can be used to generate a response." + ] }, { "allOf": [ { - "$ref": "#/components/schemas/CustomToolChatCompletions", - "description": "A custom tool that processes input using a specified format." + "$ref": "#/components/schemas/ChatCompletionRequestUserMessage" }, { "type": "object", "required": [ - "type" + "role" ], "properties": { - "type": { + "role": { "type": "string", "enum": [ - "custom" + "user" ] } } } - ], - "description": "A custom tool that processes input using a specified format." - } - ] - }, - "CompletionTokensDetails": { - "type": "object", - "description": "Breakdown of tokens used in a completion.", - "properties": { - "accepted_prediction_tokens": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "minimum": 0 - }, - "audio_tokens": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "description": "Audio input tokens generated by the model.", - "minimum": 0 - }, - "reasoning_tokens": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "description": "Tokens generated by the model for reasoning.", - "minimum": 0 - }, - "rejected_prediction_tokens": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "description": " When using Predicted Outputs, the number of tokens in the\nprediction that did not appear in the completion. However, like\nreasoning tokens, these tokens are still counted in the total\ncompletion tokens for purposes of billing, output, and context\nwindow limits.", - "minimum": 0 - } - } - }, - "CompletionUsage": { - "type": "object", - "description": "Usage statistics for the completion request.", - "required": [ - "prompt_tokens", - "completion_tokens", - "total_tokens" - ], - "properties": { - "completion_tokens": { - "type": "integer", - "format": "int32", - "description": "Number of tokens in the generated completion.", - "minimum": 0 + ] }, - "completion_tokens_details": { - "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ChatCompletionRequestAssistantMessage" }, { - "$ref": "#/components/schemas/CompletionTokensDetails", - "description": "Breakdown of tokens used in a completion." + "type": "object", + "required": [ + "role" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "assistant" + ] + } + } } ] }, - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "Number of tokens in the prompt.", - "minimum": 0 - }, - "prompt_tokens_details": { - "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ChatCompletionRequestToolMessage" }, { - "$ref": "#/components/schemas/PromptTokensDetails", - "description": "Breakdown of tokens used in the prompt." + "type": "object", + "required": [ + "role" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "tool" + ] + } + } } ] }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "Total number of tokens used in the request (prompt + completion).", - "minimum": 0 + { + "allOf": [ + { + "$ref": "#/components/schemas/ChatCompletionRequestFunctionMessage" + }, + { + "type": "object", + "required": [ + "role" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "function" + ] + } + } + } + ] + } + ] + }, + "ChatCompletionRequestMessageContentPartAudio": { + "type": "object", + "description": "Learn about [audio inputs](https://platform.openai.com/docs/guides/audio).", + "required": [ + "input_audio" + ], + "properties": { + "input_audio": { + "$ref": "#/components/schemas/InputAudio" } } }, - "ComponentStatus": { - "type": "string", - "description": "Represents the status of a component (e.g. dataset, model, etc).", - "enum": [ - "Initializing", - "Ready", - "Disabled", - "Error", - "Refreshing", - "ShuttingDown" - ] + "ChatCompletionRequestMessageContentPartFile": { + "type": "object", + "required": [ + "file" + ], + "properties": { + "file": { + "$ref": "#/components/schemas/FileObject" + } + } }, - "ConnectionDetails": { + "ChatCompletionRequestMessageContentPartImage": { "type": "object", "required": [ - "name", - "endpoint", - "status" + "image_url" ], "properties": { - "endpoint": { - "type": "string", - "description": "The endpoint of the connection (e.g., URL or IP address)" - }, - "name": { + "image_url": { + "$ref": "#/components/schemas/ImageUrl" + } + } + }, + "ChatCompletionRequestMessageContentPartRefusal": { + "type": "object", + "required": [ + "refusal" + ], + "properties": { + "refusal": { "type": "string", - "description": "The name of the connection (e.g., \"http\", \"flight\", \"metrics\", \"opentelemetry\")" - }, - "status": { - "$ref": "#/components/schemas/ComponentStatus", - "description": "The status of the component (e.g., Ready, Initializing, Disabled, Error, etc.)" + "description": "The refusal message generated by the model." } } }, - "CreateChatCompletionRequest": { + "ChatCompletionRequestMessageContentPartText": { "type": "object", "required": [ - "messages", - "model" + "text" ], "properties": { - "audio": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/ChatCompletionAudio", - "description": "Parameters for audio output. Required when audio output is requested with\n`modalities: [\"audio\"]`. [Learn more](https://platform.openai.com/docs/guides/audio)." - } - ] + "text": { + "type": "string" + } + } + }, + "ChatCompletionRequestSystemMessage": { + "type": "object", + "required": [ + "content" + ], + "properties": { + "content": { + "$ref": "#/components/schemas/ChatCompletionRequestSystemMessageContent", + "description": "The contents of the system message." }, - "frequency_penalty": { + "name": { "type": [ - "number", + "string", "null" ], - "format": "float", - "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\ntheir existing frequency in the text so far, decreasing the model's\nlikelihood to repeat the same line verbatim." - }, - "function_call": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/ChatCompletionFunctionCall", - "description": "Deprecated in favor of `tool_choice`.\n\nControls which (if any) function is called by the model.\n`none` means the model will not call a function and instead generates a message.\n`auto` means the model can pick between generating a message or calling a function.\nSpecifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function.\n\n`none` is the default when no functions are present. `auto` is the default if functions are present." - } - ] - }, - "functions": { - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/components/schemas/ChatCompletionFunctions" - }, - "description": "Deprecated in favor of `tools`.\n\nA list of functions the model may generate JSON inputs for.", - "deprecated": true - }, - "logit_bias": { - "type": [ - "object", - "null" - ], - "description": "Modify the likelihood of specified tokens appearing in the completion.\n\nAccepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100.\nMathematically, the bias is added to the logits generated by the model prior to sampling.\nThe exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection;\nvalues like -100 or 100 should result in a ban or exclusive selection of the relevant token.", - "additionalProperties": { - "type": "integer", - "format": "int32" - }, - "propertyNames": { - "type": "string" - } - }, - "logprobs": { - "type": [ - "boolean", - "null" - ], - "description": "Whether to return log probabilities of the output tokens or not. If true,\nreturns the log probabilities of each output token returned in the `content` of `message`." - }, - "max_completion_tokens": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "description": "An upper bound for the number of tokens that can be generated for a completion, including\nvisible output tokens and [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).", - "minimum": 0 - }, - "max_tokens": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "description": "The maximum number of [tokens](https://platform.openai.com/tokenizer) that can be generated in\nthe chat completion. This value can be used to control [costs](https://openai.com/api/pricing/) for text generated via API.\nThis value is now deprecated in favor of `max_completion_tokens`, and is\nnot compatible with [o-series models](https://platform.openai.com/docs/guides/reasoning).", - "deprecated": true, - "minimum": 0 + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + } + }, + "ChatCompletionRequestSystemMessageContent": { + "oneOf": [ + { + "type": "string", + "description": "The text contents of the system message." }, - "messages": { + { "type": "array", "items": { - "$ref": "#/components/schemas/ChatCompletionRequestMessage" + "$ref": "#/components/schemas/ChatCompletionRequestSystemMessageContentPart" }, - "description": "A list of messages comprising the conversation so far. Depending on the\n[model](https://platform.openai.com/docs/models) you use, different message types (modalities)\nare supported, like [text](https://platform.openai.com/docs/guides/text-generation),\n[images](https://platform.openai.com/docs/guides/vision), and\n[audio](https://platform.openai.com/docs/guides/audio)." - }, - "metadata": { - "oneOf": [ + "description": "An array of content parts with a defined type. For system messages, only type `text` is supported." + } + ] + }, + "ChatCompletionRequestSystemMessageContentPart": { + "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" }, { - "$ref": "#/components/schemas/Metadata", - "description": "Developer-defined tags and values used for filtering completions in the [dashboard](https://platform.openai.com/chat-completions)." + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ] + } + } } ] + } + ] + }, + "ChatCompletionRequestToolMessage": { + "type": "object", + "description": "Tool message", + "required": [ + "content", + "tool_call_id" + ], + "properties": { + "content": { + "$ref": "#/components/schemas/ChatCompletionRequestToolMessageContent", + "description": "The contents of the tool message." }, - "modalities": { - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/components/schemas/ResponseModalities" - }, - "description": "Output types that you would like the model to generate. Most models are capable of generating\ntext, which is the default:\n\n`[\"text\"]`\nThe `gpt-4o-audio-preview` model can also be used to\n[generate audio](https://platform.openai.com/docs/guides/audio). To request that this model\ngenerate both text and audio responses, you can use:\n\n`[\"text\", \"audio\"]`" - }, - "model": { + "tool_call_id": { + "type": "string" + } + } + }, + "ChatCompletionRequestToolMessageContent": { + "oneOf": [ + { "type": "string", - "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\noffers a wide range of models with different capabilities, performance\ncharacteristics, and price points. Refer to the\n[model guide](https://platform.openai.com/docs/models)\nto browse and compare available models." - }, - "n": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "description": "How many chat completion choices to generate for each input message. Note that you will be\ncharged based on the number of generated tokens across all of the choices. Keep `n` as `1` to\nminimize costs.", - "minimum": 0 - }, - "parallel_tool_calls": { - "type": [ - "boolean", - "null" - ], - "description": "Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling)\nduring tool use." + "description": "The text contents of the tool message." }, - "prediction": { - "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatCompletionRequestToolMessageContentPart" + }, + "description": "An array of content parts with a defined type. For tool messages, only type `text` is supported." + } + ] + }, + "ChatCompletionRequestToolMessageContentPart": { + "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" }, { - "$ref": "#/components/schemas/PredictionContent", - "description": "Configuration for a [Predicted Output](https://platform.openai.com/docs/guides/predicted-outputs),\nwhich can greatly improve response times when large parts of the model\nresponse are known ahead of time. This is most common when you are\nregenerating a file with only minor changes to most of the content." + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ] + } + } } ] + } + ] + }, + "ChatCompletionRequestUserMessage": { + "type": "object", + "required": [ + "content" + ], + "properties": { + "content": { + "$ref": "#/components/schemas/ChatCompletionRequestUserMessageContent", + "description": "The contents of the user message." }, - "presence_penalty": { - "type": [ - "number", - "null" - ], - "format": "float", - "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\nwhether they appear in the text so far, increasing the model's likelihood\nto talk about new topics." - }, - "prompt_cache_key": { + "name": { "type": [ "string", "null" ], - "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces\nthe `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + } + }, + "ChatCompletionRequestUserMessageContent": { + "oneOf": [ + { + "type": "string", + "description": "The text contents of the message." }, - "reasoning_effort": { - "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatCompletionRequestUserMessageContentPart" + }, + "description": "An array of content parts with a defined type. Supported options differ based on the [model](https://platform.openai.com/docs/models) being used to generate the response. Can contain text, image, or audio inputs." + } + ] + }, + "ChatCompletionRequestUserMessageContentPart": { + "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" }, { - "$ref": "#/components/schemas/ReasoningEffort", - "description": "Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `minimal`, `low`, `medium`, and `high`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\nNote: The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort." + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ] + } + } } ] }, - "response_format": { - "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartImage" }, { - "$ref": "#/components/schemas/ResponseFormat", - "description": "An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables\nStructured Outputs which ensures the model will match your supplied JSON\nschema. Learn more in the [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it." - } - ] - }, - "safety_identifier": { - "type": [ - "string", - "null" - ], - "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's\nusage policies.\n\nThe IDs should be a string that uniquely identifies each user. We recommend hashing their username\nor email address, in order to avoid sending us any identifying information. [Learn\nmore](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." - }, - "seed": { - "type": [ - "integer", - "null" - ], - "format": "int64", - "description": "This feature is in Beta.\n\nIf specified, our system will make a best effort to sample deterministically, such that\nrepeated requests with the same `seed` and parameters should return the same result.\n\nDeterminism is not guaranteed, and you should refer to the `system_fingerprint` response\nparameter to monitor changes in the backend.", - "deprecated": true + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_url" + ] + } + } + } + ] }, - "service_tier": { - "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartAudio" }, { - "$ref": "#/components/schemas/ServiceTier", - "description": "Specifies the processing type used for serving the request.\n- If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'.\n- If set to 'default', then the request will be processed with the standard pricing and performance for the selected model.\n- If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or '[priority](https://openai.com/api-priority-processing/)', then the request will be processed with the corresponding service tier.\n- When not set, the default behavior is 'auto'.\n\nWhen the `service_tier` parameter is set, the response body will include the `service_tier` value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter." + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "input_audio" + ] + } + } } ] }, - "stop": { - "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartFile" }, { - "$ref": "#/components/schemas/StopConfiguration", - "description": "Not supported with latest reasoning models `o3` and `o4-mini`.\n\nUp to 4 sequences where the API will stop generating further tokens. The\nreturned text will not contain the stop sequence." + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file" + ] + } + } } ] - }, - "store": { - "type": [ - "boolean", - "null" - ], - "description": "Whether or not to store the output of this chat completion request for\nuse in our [model distillation](https://platform.openai.com/docs/guides/distillation) or\n[evals](https://platform.openai.com/docs/guides/evals) products.\n\nSupports text and image inputs. Note: image inputs over 8MB will be dropped." - }, - "stream": { + } + ] + }, + "ChatCompletionResponseMessage": { + "type": "object", + "description": "A chat completion message generated by the model.", + "required": [ + "role" + ], + "properties": { + "annotations": { "type": [ - "boolean", + "array", "null" ], - "description": "If set to true, the model response data will be streamed to the client\nas it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).\nSee the [Streaming section below](https://platform.openai.com/docs/api-reference/chat/streaming)\nfor more information, along with the [streaming responses](https://platform.openai.com/docs/guides/streaming-responses)\nguide for more information on how to handle the streaming events." + "items": { + "$ref": "#/components/schemas/ChatCompletionResponseMessageAnnotation" + } }, - "stream_options": { + "audio": { "oneOf": [ { "type": "null" }, { - "$ref": "#/components/schemas/ChatCompletionStreamOptions" + "$ref": "#/components/schemas/ChatCompletionResponseMessageAudio", + "description": "If the audio output modality is requested, this object contains data about the audio response from the model. [Learn more](https://platform.openai.com/docs/guides/audio)." } ] }, - "temperature": { + "content": { "type": [ - "number", + "string", "null" ], - "format": "float", - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.\n\nWe generally recommend altering this or `top_p` but not both." + "description": "The contents of the message." }, - "tool_choice": { + "function_call": { "oneOf": [ { "type": "null" }, { - "$ref": "#/components/schemas/ChatCompletionToolChoiceOption", - "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces\nthe model to call that tool.\n`none` is the default when no tools are present. `auto` is the default if tools are present." + "$ref": "#/components/schemas/FunctionCall", + "description": "Deprecated and replaced by `tool_calls`.\nThe name and arguments of a function that should be called, as generated by the model." } ] }, - "tools": { + "refusal": { "type": [ - "array", + "string", "null" ], - "items": { - "$ref": "#/components/schemas/ChatCompletionTools" - }, - "description": "A list of tools the model may call. You can provide either\n[custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or\n[function tools](https://platform.openai.com/docs/guides/function-calling)." + "description": "The refusal message generated by the model." }, - "top_logprobs": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "description": "An integer between 0 and 20 specifying the number of most likely tokens to\nreturn at each token position, each with an associated log probability.\n`logprobs` must be set to `true` if this parameter is used.", - "minimum": 0 + "role": { + "$ref": "#/components/schemas/Role", + "description": "The role of the author of this message." }, - "top_p": { + "tool_calls": { "type": [ - "number", + "array", "null" ], - "format": "float", - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or `temperature` but not both." - }, - "user": { - "type": [ - "string", - "null" + "items": { + "$ref": "#/components/schemas/ChatCompletionMessageToolCalls" + }, + "description": "The tool calls generated by the model, such as function calls." + } + } + }, + "ChatCompletionResponseMessageAnnotation": { + "oneOf": [ + { + "type": "object", + "required": [ + "url_citation", + "type" ], - "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key`\ninstead to maintain caching optimizations.\nA stable identifier for your end-users.\nUsed to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and\nprevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).", - "deprecated": true - }, - "verbosity": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/Verbosity", - "description": "Constrains the verbosity of the model's response. Lower values will result in\nmore concise responses, while higher values will result in more verbose responses.\nCurrently supported values are `low`, `medium`, and `high`." - } - ] - }, - "web_search_options": { - "oneOf": [ - { - "type": "null" + "properties": { + "type": { + "type": "string", + "enum": [ + "url_citation" + ] }, - { - "$ref": "#/components/schemas/WebSearchOptions", - "description": "This tool searches the web for relevant results to use in a response.\nLearn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat)." + "url_citation": { + "$ref": "#/components/schemas/UrlCitation" } - ] + } } - } + ] }, - "CreateChatCompletionResponse": { + "ChatCompletionResponseMessageAudio": { "type": "object", - "description": "Represents a chat completion response returned by model, based on the provided input.", "required": [ "id", - "choices", - "created", - "model", - "object" + "expires_at", + "data", + "transcript" ], "properties": { - "choices": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChatChoice" - }, - "description": "A list of chat completion choices. Can be more than one if `n` is greater than 1." + "data": { + "type": "string", + "description": "Base64 encoded audio bytes generated by the model, in the format specified in the request." }, - "created": { + "expires_at": { "type": "integer", - "format": "int32", - "description": "The Unix timestamp (in seconds) of when the chat completion was created.", + "format": "int64", + "description": "The Unix timestamp (in seconds) for when this audio response will no longer be accessible on the server for use in multi-turn conversations.", "minimum": 0 }, "id": { "type": "string", - "description": "A unique identifier for the chat completion." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." + "description": "Unique identifier for this audio response." }, - "object": { + "transcript": { "type": "string", - "description": "The object type, which is always `chat.completion`." - }, - "service_tier": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/ServiceTier", - "description": "The service tier used for processing the request. This field is only included if the `service_tier` parameter is specified in the request." - } - ] - }, - "system_fingerprint": { + "description": "Transcript of the audio generated by the model." + } + } + }, + "ChatCompletionStreamOptions": { + "type": "object", + "description": "Options for streaming response. Only set this when you set `stream: true`.", + "properties": { + "include_obfuscation": { "type": [ - "string", + "boolean", "null" ], - "description": "This fingerprint represents the backend configuration that the model runs with.\n\nCan be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism.", - "deprecated": true + "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds\nrandom characters to an `obfuscation` field on streaming delta events to\nnormalize payload sizes as a mitigation to certain side-channel attacks.\nThese obfuscation fields are included by default, but add a small amount\nof overhead to the data stream. You can set `include_obfuscation` to\nfalse to optimize for bandwidth if you trust the network links between\nyour application and the OpenAI API." }, - "usage": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/CompletionUsage" - } - ] + "include_usage": { + "type": [ + "boolean", + "null" + ], + "description": "If set, an additional chunk will be streamed before the `data: [DONE]`\nmessage. The `usage` field on this chunk shows the token usage statistics\nfor the entire request, and the `choices` field will always be an empty\narray.\n\nAll other chunks will also include a `usage` field, but with a null\nvalue. **NOTE:** If the stream is interrupted, you may not receive the\nfinal usage chunk which contains the total token usage for the request." } } }, - "CreateEmbeddingRequest": { + "ChatCompletionTokenLogprob": { "type": "object", "required": [ - "model", - "input" + "token", + "logprob", + "top_logprobs" ], "properties": { - "dimensions": { + "bytes": { "type": [ - "integer", + "array", "null" ], - "format": "int32", - "description": "The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models.", - "minimum": 0 - }, - "encoding_format": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/EncodingFormat", - "description": "The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/)." - } - ] + "items": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "description": "A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token." }, - "input": { - "$ref": "#/components/schemas/EmbeddingInput", - "description": "Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single\nrequest, pass an array of strings or array of token arrays. The input must not exceed the max\ninput tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and\nany array must be 2048 dimensions or less. [Example Python\ncode](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.\nIn addition to the per-input token limit, all embedding models enforce a maximum of 300,000\ntokens summed across all inputs in a single request." + "logprob": { + "type": "number", + "format": "float", + "description": "The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely." }, - "model": { + "token": { "type": "string", - "description": "ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list)\nAPI to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models)\nfor descriptions of them." + "description": "The token." }, - "user": { - "type": [ - "string", - "null" - ], - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.\n[Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." + "top_logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TopLogprobs" + }, + "description": "List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned." } } }, - "CreateEmbeddingResponse": { + "ChatCompletionTool": { "type": "object", "required": [ - "object", - "model", - "data", - "usage" + "function" ], "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Embedding" - }, - "description": "The list of embeddings generated by the model." + "function": { + "$ref": "#/components/schemas/FunctionObject" + } + } + }, + "ChatCompletionToolChoiceOption": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/ChatCompletionAllowedToolsChoice" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "allowed_tools" + ] + } + } + } + ] }, - "model": { - "type": "string", - "description": "The name of the model used to generate the embedding." + { + "allOf": [ + { + "$ref": "#/components/schemas/ChatCompletionNamedToolChoice" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ] + } + } + } + ] }, - "object": { - "type": "string" + { + "allOf": [ + { + "$ref": "#/components/schemas/ChatCompletionNamedToolChoiceCustom" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ] + } + } + } + ] }, - "usage": { - "$ref": "#/components/schemas/EmbeddingUsage", - "description": "The usage information for the request." + { + "allOf": [ + { + "$ref": "#/components/schemas/ToolChoiceOptions" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mode" + ] + } + } + } + ] } - } - }, - "CustomGrammarFormatParam": { - "type": "object", - "required": [ - "definition", - "syntax" ], - "properties": { - "definition": { - "type": "string", - "description": "The grammar definition." + "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.\n\n`none` is the default when no tools are present. `auto` is the default if tools are present." + }, + "ChatCompletionTools": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/ChatCompletionTool", + "description": "A function tool that can be used to generate a response." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ] + } + } + } + ], + "description": "A function tool that can be used to generate a response." }, - "syntax": { - "$ref": "#/components/schemas/GrammarSyntax", - "description": "The syntax of the grammar definition. One of `lark` or `regex`." + { + "allOf": [ + { + "$ref": "#/components/schemas/CustomToolChatCompletions", + "description": "A custom tool that processes input using a specified format." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ] + } + } + } + ], + "description": "A custom tool that processes input using a specified format." } - } + ] }, - "CustomName": { + "ClickButtonType": { + "type": "string", + "enum": [ + "left", + "right", + "wheel", + "back", + "forward" + ] + }, + "ClickParam": { "type": "object", + "description": "A click action.", "required": [ - "name" + "button", + "x", + "y" ], "properties": { - "name": { - "type": "string", - "description": "The name of the custom tool to call." + "button": { + "$ref": "#/components/schemas/ClickButtonType", + "description": "Indicates which mouse button was pressed during the click. One of `left`,\n`right`, `wheel`, `back`, or `forward`." + }, + "x": { + "type": "integer", + "format": "int32", + "description": "The x-coordinate where the click occurred." + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The y-coordinate where the click occurred." } } }, - "CustomTool": { + "CodeInterpreterContainerAuto": { "type": "object", - "required": [ - "name", - "input" + "description": "Auto configuration for code interpreter container.", + "properties": { + "file_ids": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "description": "An optional list of uploaded files to make available to your code." + }, + "memory_limit": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "minimum": 0 + } + } + }, + "CodeInterpreterOutputImage": { + "type": "object", + "required": [ + "url" ], "properties": { - "input": { + "url": { "type": "string", - "description": "The input for the custom tool call generated by the model." - }, - "name": { + "description": "The URL of the image output from the code interpreter." + } + } + }, + "CodeInterpreterOutputLogs": { + "type": "object", + "required": [ + "logs" + ], + "properties": { + "logs": { "type": "string", - "description": "The name of the custom tool to call." + "description": "The logs output from the code interpreter." } } }, - "CustomToolChatCompletions": { + "CodeInterpreterTool": { "type": "object", "required": [ - "custom" + "container" ], "properties": { - "custom": { - "$ref": "#/components/schemas/CustomToolProperties" + "container": { + "$ref": "#/components/schemas/CodeInterpreterToolContainer", + "description": "The code interpreter container. Can be a container ID or an object that\nspecifies uploaded file IDs to make available to your code, along with an\noptional `memory_limit` setting." } } }, - "CustomToolProperties": { + "CodeInterpreterToolCall": { "type": "object", + "description": "Output of a code interpreter request.", "required": [ - "name", - "format" + "container_id", + "id", + "status" ], "properties": { - "description": { + "code": { "type": [ "string", "null" ], - "description": "Optional description of the custom tool, used to provide more context." + "description": "The code to run, or null if not available." }, - "format": { - "$ref": "#/components/schemas/CustomToolPropertiesFormat", - "description": "The input format for the custom tool. Default is unconstrained text." + "container_id": { + "type": "string", + "description": "ID of the container used to run the code." }, - "name": { + "id": { "type": "string", - "description": "The name of the custom tool, used to identify it in tool calls." + "description": "The unique ID of the code interpreter tool call." + }, + "outputs": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/CodeInterpreterToolCallOutput" + }, + "description": "The outputs generated by the code interpreter, such as logs or images.\nCan be null if no outputs are available." + }, + "status": { + "$ref": "#/components/schemas/CodeInterpreterToolCallStatus", + "description": "The status of the code interpreter tool call.\nValid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`." } } }, - "CustomToolPropertiesFormat": { + "CodeInterpreterToolCallOutput": { "oneOf": [ { - "type": "object", - "description": "Unconstrained free-form text.", - "required": [ - "type" + "allOf": [ + { + "$ref": "#/components/schemas/CodeInterpreterOutputLogs", + "description": "Code interpreter output logs" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "logs" + ] + } + } + } ], - "properties": { - "type": { - "type": "string", - "enum": [ - "text" - ] + "description": "Code interpreter output logs" + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CodeInterpreterOutputImage", + "description": "Code interpreter output image" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image" + ] + } + } } - } + ], + "description": "Code interpreter output image" + } + ], + "description": "Individual result from a code interpreter: either logs or files." + }, + "CodeInterpreterToolCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete", + "interpreting", + "failed" + ] + }, + "CodeInterpreterToolContainer": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/CodeInterpreterContainerAuto", + "description": "Configuration for a code interpreter container. Optionally specify the IDs of the\nfiles to run the code on." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "auto" + ] + } + } + } + ], + "description": "Configuration for a code interpreter container. Optionally specify the IDs of the\nfiles to run the code on." }, { "type": "object", - "description": "A grammar defined by the user.", + "description": "The container ID.", "required": [ - "grammar", "type" ], "properties": { - "grammar": { - "$ref": "#/components/schemas/CustomGrammarFormatParam" - }, "type": { "type": "string", "enum": [ - "grammar" + "container_i_d" ] } } } - ] + ], + "description": "Container configuration for a code interpreter." }, - "DatasetFilter": { + "CompactionBody": { "type": "object", + "description": "A compaction item generated by the `/v1/responses/compact` API.", + "required": [ + "id", + "encrypted_content" + ], "properties": { - "source": { + "created_by": { "type": [ "string", "null" ], - "description": "Filters datasets by source (e.g., `postgres:aidemo_messages`)." + "description": "Created by model/user identifier." + }, + "encrypted_content": { + "type": "string", + "description": "The encrypted content." + }, + "id": { + "type": "string", + "description": "The unique ID of the compaction item." } } }, - "DatasetQueryParams": { + "CompactionSummaryItemParam": { "type": "object", + "description": "A compaction item generated by the `/v1/responses/compact` API.", + "required": [ + "encrypted_content" + ], "properties": { - "format": { - "$ref": "#/components/schemas/Format", - "description": "The format of the response. Possible values are 'json' (default) or 'csv'." + "encrypted_content": { + "type": "string", + "description": "The encrypted content." }, - "status": { - "type": "boolean", - "description": "Whether to include the status field in the response. When `true`, the response includes\nthe current status of each dataset (e.g., `ready`, `initializing`, `refreshing`, `error`).\nDefaults to `false`." + "id": { + "type": [ + "string", + "null" + ], + "description": "The ID of the compaction item." } } }, - "DatasetResponseItem": { + "ComparisonFilter": { "type": "object", + "description": "Single comparison filter.", "required": [ - "from", - "name", - "replication_enabled", - "acceleration_enabled" + "type", + "key", + "value" ], "properties": { - "acceleration_enabled": { - "type": "boolean", - "description": "Whether acceleration is enabled for the dataset" - }, - "from": { - "type": "string", - "description": "The source where the dataset is located" - }, - "name": { + "key": { "type": "string", - "description": "The name of the dataset" - }, - "properties": { - "type": "object", - "description": "Custom properties for the dataset", - "additionalProperties": {}, - "propertyNames": { - "type": "string" - } + "description": "The key to compare against the value." }, - "replication_enabled": { - "type": "boolean", - "description": "Whether replication is enabled for the dataset" + "type": { + "$ref": "#/components/schemas/ComparisonType", + "description": "Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.\n- `eq`: equals\n- `ne`: not equal\n- `gt`: greater than\n- `gte`: greater than or equal\n- `lt`: less than\n- `lte`: less than or equal\n- `in`: in\n- `nin`: not in" }, - "status": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/ComponentStatus", - "description": "The current status of the dataset. Only included when `status=true` query parameter is specified.\nPossible values: `initializing`, `ready`, `disabled`, `error`, `refreshing`, `shuttingdown`." - } - ] + "value": { + "description": "The value to compare against the attribute key; supports string, number, or boolean types." } } }, - "Embedding": { + "ComparisonType": { + "type": "string", + "enum": [ + "eq", + "ne", + "gt", + "gte", + "lt", + "lte", + "in", + "nin" + ] + }, + "CompletionTokensDetails": { "type": "object", - "description": "Represents an embedding vector returned by embedding endpoint.", - "required": [ - "index", - "object", - "embedding" - ], + "description": "Breakdown of tokens used in a completion.", "properties": { - "embedding": { - "$ref": "#/components/schemas/EmbeddingVector", - "description": "The embedding vector, which is a list of floats. The length of vector\ndepends on the model as listed in the [embedding guide](https://platform.openai.com/docs/guides/embeddings)." + "accepted_prediction_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "minimum": 0 }, - "index": { - "type": "integer", + "audio_tokens": { + "type": [ + "integer", + "null" + ], "format": "int32", - "description": "The index of the embedding in the list of embeddings.", + "description": "Audio input tokens generated by the model.", "minimum": 0 }, - "object": { - "type": "string", - "description": "The object type, which is always \"embedding\"." + "reasoning_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "Tokens generated by the model for reasoning.", + "minimum": 0 + }, + "rejected_prediction_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": " When using Predicted Outputs, the number of tokens in the\nprediction that did not appear in the completion. However, like\nreasoning tokens, these tokens are still counted in the total\ncompletion tokens for purposes of billing, output, and context\nwindow limits.", + "minimum": 0 } } }, - "EmbeddingInput": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "integer", - "format": "int32", - "minimum": 0 - } - }, - { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "integer", - "format": "int32", - "minimum": 0 - } - } - } - ] - }, - "EmbeddingUsage": { + "CompletionUsage": { "type": "object", + "description": "Usage statistics for the completion request.", "required": [ "prompt_tokens", + "completion_tokens", "total_tokens" ], "properties": { + "completion_tokens": { + "type": "integer", + "format": "int32", + "description": "Number of tokens in the generated completion.", + "minimum": 0 + }, + "completion_tokens_details": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/CompletionTokensDetails", + "description": "Breakdown of tokens used in a completion." + } + ] + }, "prompt_tokens": { "type": "integer", "format": "int32", - "description": "The number of tokens used by the prompt.", + "description": "Number of tokens in the prompt.", "minimum": 0 }, + "prompt_tokens_details": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/PromptTokensDetails", + "description": "Breakdown of tokens used in the prompt." + } + ] + }, "total_tokens": { "type": "integer", "format": "int32", - "description": "The total number of tokens used by the request.", + "description": "Total number of tokens used in the request (prompt + completion).", "minimum": 0 } } }, - "EmbeddingVector": { - "oneOf": [ - { - "type": "array", - "items": { - "type": "number", - "format": "float" - } - }, - { - "type": "string" - } - ] - }, - "EncodingFormat": { - "type": "string", - "enum": [ - "float", - "base64" - ] - }, - "EvalRunResponse": { + "ComponentError": { "type": "object", - "description": "Represents the response for an evaluation run", "required": [ - "primary_key", - "time_column", - "dataset", - "model", - "status", - "scorers", - "metrics" + "category", + "type", + "code" ], "properties": { - "dataset": { - "type": "string", - "description": "The name of the dataset used for the evaluation" - }, - "error_message": { - "type": [ - "string", - "null" - ], - "description": "The error message if the evaluation failed, otherwise `None`" - }, - "metrics": { - "type": "object", - "description": "A map of metric names to their corresponding values", - "additionalProperties": { - "type": "number", - "format": "double" - }, - "propertyNames": { - "type": "string" - } - }, - "model": { - "type": "string", - "description": "The model used for the evaluation" - }, - "primary_key": { - "type": "string", - "description": "Unique identifier for the evaluation run" - }, - "scorers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of scorers used in the evaluation" - }, - "status": { - "type": "string", - "description": "The status of the evaluation (e.g., \"completed\", \"failed\", etc.)" + "category": { + "$ref": "#/components/schemas/ComponentErrorCategory", + "description": "High-level component category where the error originated." }, - "time_column": { + "code": { "type": "string", - "description": "Timestamp indicating when the evaluation was created or run" - } - } - }, - "FileObject": { - "type": "object", - "properties": { - "file_data": { - "type": [ - "string", - "null" - ], - "description": "The base64 encoded file data, used when passing the file to the model\nas a string." - }, - "file_id": { - "type": [ - "string", - "null" - ], - "description": "The ID of an uploaded file to use as input." + "description": "Stable machine-readable code (`{category}.{type}`), e.g. `dataset.auth`." }, - "filename": { - "type": [ - "string", - "null" - ], - "description": "The name of the file, used when passing the file to the model as a\nstring." + "type": { + "$ref": "#/components/schemas/ComponentErrorType", + "description": "Canonical error type intended for programmatic handling." } } }, - "FinishReason": { + "ComponentErrorCategory": { "type": "string", "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" + "dataset", + "model", + "worker", + "runtime" ] }, - "Format": { + "ComponentErrorType": { "type": "string", "enum": [ - "json", - "csv" + "auth", + "connection", + "timeout", + "validation", + "not_found", + "permission", + "rate_limit", + "internal", + "unknown" ] }, - "FunctionCall": { + "CompoundFilter": { "type": "object", - "description": "The name and arguments of a function that should be called, as generated by the model.", + "description": "Combine multiple filters using `and` or `or`.", "required": [ - "name", - "arguments" + "type", + "filters" ], "properties": { - "arguments": { - "type": "string", - "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function." + "filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filter" + }, + "description": "Array of filters to combine. Items can be ComparisonFilter or CompoundFilter." }, - "name": { - "type": "string", - "description": "The name of the function to call." - } - } - }, - "FunctionName": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." + "type": { + "$ref": "#/components/schemas/CompoundType", + "description": "'Type of operation: `and` or `or`.'" } } }, - "FunctionObject": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "description": { - "type": [ - "string", - "null" + "ComputerAction": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/ClickParam", + "description": "A click action." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "click" + ] + } + } + } ], - "description": "A description of what the function does, used by the model to choose when and how to call the function." + "description": "A click action." }, - "name": { - "type": "string", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." - }, - "parameters": { - "description": "The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/text-generation/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." - }, - "strict": { - "type": [ - "boolean", - "null" + { + "allOf": [ + { + "$ref": "#/components/schemas/DoubleClickAction", + "description": "A double click action." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "double_click" + ] + } + } + } ], - "description": "Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling)." - } - } - }, - "GeneratePackageRequest": { - "type": "object", - "required": [ - "from", - "params" - ], - "properties": { - "from": { - "type": "string", - "description": "The GitHub source path in the format `github:{org}/{repo}/{sha}/{path_to_spicepod.yaml}`" + "description": "A double click action." }, - "params": { + { + "allOf": [ + { + "$ref": "#/components/schemas/Drag", + "description": "A drag action." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "drag" + ] + } + } + } + ], + "description": "A drag action." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/KeyPressAction", + "description": "A collection of keypresses the model would like to perform." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "keypress" + ] + } + } + } + ], + "description": "A collection of keypresses the model would like to perform." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/Move", + "description": "A mouse move action." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "move" + ] + } + } + } + ], + "description": "A mouse move action." + }, + { "type": "object", - "description": "A key-value map of optional parameters (e.g., `github_token`)", - "additionalProperties": { - "type": "string" - }, - "propertyNames": { - "type": "string" + "description": "A screenshot action.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "screenshot" + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/Scroll", + "description": "A scroll action." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "scroll" + ] + } + } + } + ], + "description": "A scroll action." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/Type", + "description": "An action to type in text." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "type" + ] + } + } + } + ], + "description": "An action to type in text." + }, + { + "type": "object", + "description": "A wait action.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "wait" + ] + } } } - } + ], + "description": "Represents all user‐triggered actions." }, - "GrammarSyntax": { - "type": "string", - "enum": [ - "lark", - "regex" - ] + "ComputerCallOutputItemParam": { + "type": "object", + "required": [ + "call_id", + "output" + ], + "properties": { + "acknowledged_safety_checks": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/ComputerCallSafetyCheckParam" + }, + "description": "The safety checks reported by the API that have been acknowledged by the developer." + }, + "call_id": { + "type": "string", + "description": "The ID of the computer tool call that produced the output." + }, + "id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the computer tool call output. Optional when creating." + }, + "output": { + "$ref": "#/components/schemas/ComputerScreenshotImage", + "description": "A computer screenshot image used with the computer use tool." + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the message input. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when input items are returned via API." + } + ] + } + } }, - "IcebergError": { + "ComputerCallSafetyCheckParam": { "type": "object", "required": [ - "message", - "type", - "code" + "id" ], "properties": { "code": { - "type": "integer", - "format": "int32", - "minimum": 0 + "type": [ + "string", + "null" + ], + "description": "The type of the pending safety check." }, - "message": { - "type": "string" + "id": { + "type": "string", + "description": "The ID of the pending safety check." }, - "type": { - "$ref": "#/components/schemas/IcebergErrorType" + "message": { + "type": [ + "string", + "null" + ], + "description": "Details about the pending safety check." } } }, - "IcebergErrorType": { + "ComputerEnvironment": { "type": "string", "enum": [ - "NoSuchNamespaceException", - "BadRequestException", - "InternalServerError" + "windows", + "mac", + "linux", + "ubuntu", + "browser" ] }, - "IcebergResponseError": { + "ComputerScreenshotImage": { "type": "object", + "description": "A computer screenshot image used with the computer use tool.", "required": [ - "error" + "type" ], "properties": { - "error": { - "$ref": "#/components/schemas/IcebergError" + "file_id": { + "type": [ + "string", + "null" + ], + "description": "The identifier of an uploaded file that contains the screenshot." + }, + "image_url": { + "type": [ + "string", + "null" + ], + "description": "The URL of the screenshot image." + }, + "type": { + "$ref": "#/components/schemas/ComputerScreenshotImageType", + "description": "Specifies the event type. For a computer screenshot, this property is always\nset to `computer_screenshot`." } } }, - "ImageDetail": { + "ComputerScreenshotImageType": { "type": "string", "enum": [ - "auto", - "low", - "high" + "computer_screenshot" ] }, - "ImageUrl": { + "ComputerToolCall": { "type": "object", + "description": "Output from a computer tool call.", "required": [ - "url" + "action", + "call_id", + "id", + "pending_safety_checks", + "status" ], "properties": { - "detail": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/ImageDetail", - "description": "Specifies the detail level of the image. Learn more in the [Vision guide](https://platform.openai.com/docs/guides/vision/low-or-high-fidelity-image-understanding)." - } - ] + "action": { + "$ref": "#/components/schemas/ComputerAction" }, - "url": { + "call_id": { "type": "string", - "description": "Either a URL of the image or the base64 encoded image data." + "description": "An identifier used when responding to the tool call with output." + }, + "id": { + "type": "string", + "description": "The unique ID of the computer call." + }, + "pending_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComputerCallSafetyCheckParam" + }, + "description": "The pending safety checks for the computer call." + }, + "status": { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API." } } }, - "InputAudio": { + "ComputerUsePreviewTool": { "type": "object", "required": [ - "data", - "format" + "environment", + "display_width", + "display_height" ], "properties": { - "data": { - "type": "string", - "description": "Base64 encoded audio data." + "display_height": { + "type": "integer", + "format": "int32", + "description": "The height of the computer display.", + "minimum": 0 }, - "format": { - "$ref": "#/components/schemas/InputAudioFormat", - "description": "The format of the encoded audio data. Currently supports \"wav\" and \"mp3\"." + "display_width": { + "type": "integer", + "format": "int32", + "description": "The width of the computer display.", + "minimum": 0 + }, + "environment": { + "$ref": "#/components/schemas/ComputerEnvironment", + "description": "The type of computer environment to control." } } }, - "InputAudioFormat": { - "type": "string", - "enum": [ - "wav", - "mp3" + "ConnectionDetails": { + "type": "object", + "required": [ + "name", + "endpoint", + "status" + ], + "properties": { + "endpoint": { + "type": "string", + "description": "The endpoint of the connection (e.g., URL or IP address)" + }, + "name": { + "type": "string", + "description": "The name of the connection (e.g., \"http\", \"flight\", \"metrics\", \"opentelemetry\")" + }, + "status": { + "$ref": "#/components/schemas/String", + "description": "The status of the component (e.g., Ready, Initializing, Disabled, Error, etc.)" + } + } + }, + "ContainerFileCitationBody": { + "type": "object", + "required": [ + "container_id", + "end_index", + "file_id", + "filename", + "start_index" + ], + "properties": { + "container_id": { + "type": "string", + "description": "The ID of the container file." + }, + "end_index": { + "type": "integer", + "format": "int32", + "description": "The index of the last character of the container file citation in the message.", + "minimum": 0 + }, + "file_id": { + "type": "string", + "description": "The ID of the file." + }, + "filename": { + "type": "string", + "description": "The filename of the container file cited." + }, + "start_index": { + "type": "integer", + "format": "int32", + "description": "The index of the first character of the container file citation in the message.", + "minimum": 0 + } + } + }, + "Conversation": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the conversation." + } + } + }, + "ConversationParam": { + "oneOf": [ + { + "type": "string", + "description": "The unique ID of the conversation." + }, + { + "$ref": "#/components/schemas/Conversation", + "description": "The conversation that this response belongs to." + } ] }, - "ListEvalElement": { + "CreateChatCompletionRequest": { "type": "object", "required": [ - "name", - "dataset", - "scorers" + "messages", + "model" ], "properties": { - "dataset": { - "type": "string" + "audio": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ChatCompletionAudio", + "description": "Parameters for audio output. Required when audio output is requested with\n`modalities: [\"audio\"]`. [Learn more](https://platform.openai.com/docs/guides/audio)." + } + ] }, - "description": { + "frequency_penalty": { "type": [ - "string", + "number", "null" + ], + "format": "float", + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\ntheir existing frequency in the text so far, decreasing the model's\nlikelihood to repeat the same line verbatim." + }, + "function_call": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ChatCompletionFunctionCall", + "description": "Deprecated in favor of `tool_choice`.\n\nControls which (if any) function is called by the model.\n`none` means the model will not call a function and instead generates a message.\n`auto` means the model can pick between generating a message or calling a function.\nSpecifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function.\n\n`none` is the default when no functions are present. `auto` is the default if functions are present." + } ] }, - "name": { - "type": "string" + "functions": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/ChatCompletionFunctions" + }, + "description": "Deprecated in favor of `tools`.\n\nA list of functions the model may generate JSON inputs for.", + "deprecated": true + }, + "logit_bias": { + "type": [ + "object", + "null" + ], + "description": "Modify the likelihood of specified tokens appearing in the completion.\n\nAccepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100.\nMathematically, the bias is added to the logits generated by the model prior to sampling.\nThe exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection;\nvalues like -100 or 100 should result in a ban or exclusive selection of the relevant token.", + "additionalProperties": { + "type": "integer", + "format": "int32" + }, + "propertyNames": { + "type": "string" + } + }, + "logprobs": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to return log probabilities of the output tokens or not. If true,\nreturns the log probabilities of each output token returned in the `content` of `message`." + }, + "max_completion_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "An upper bound for the number of tokens that can be generated for a completion, including\nvisible output tokens and [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).", + "minimum": 0 + }, + "max_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "The maximum number of [tokens](https://platform.openai.com/tokenizer) that can be generated in\nthe chat completion. This value can be used to control [costs](https://openai.com/api/pricing/) for text generated via API.\nThis value is now deprecated in favor of `max_completion_tokens`, and is\nnot compatible with [o-series models](https://platform.openai.com/docs/guides/reasoning).", + "deprecated": true, + "minimum": 0 }, - "scorers": { + "messages": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/ChatCompletionRequestMessage" + }, + "description": "A list of messages comprising the conversation so far. Depending on the\n[model](https://platform.openai.com/docs/models) you use, different message types (modalities)\nare supported, like [text](https://platform.openai.com/docs/guides/text-generation),\n[images](https://platform.openai.com/docs/guides/vision), and\n[audio](https://platform.openai.com/docs/guides/audio)." + }, + "metadata": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Metadata", + "description": "Developer-defined tags and values used for filtering completions in the [dashboard](https://platform.openai.com/chat-completions)." + } + ] + }, + "modalities": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/ResponseModalities" + }, + "description": "Output types that you would like the model to generate. Most models are capable of generating\ntext, which is the default:\n\n`[\"text\"]`\nThe `gpt-4o-audio-preview` model can also be used to\n[generate audio](https://platform.openai.com/docs/guides/audio). To request that this model\ngenerate both text and audio responses, you can use:\n\n`[\"text\", \"audio\"]`" + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\noffers a wide range of models with different capabilities, performance\ncharacteristics, and price points. Refer to the\n[model guide](https://platform.openai.com/docs/models)\nto browse and compare available models." + }, + "n": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "How many chat completion choices to generate for each input message. Note that you will be\ncharged based on the number of generated tokens across all of the choices. Keep `n` as `1` to\nminimize costs.", + "minimum": 0 + }, + "parallel_tool_calls": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling)\nduring tool use." + }, + "prediction": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/PredictionContent", + "description": "Configuration for a [Predicted Output](https://platform.openai.com/docs/guides/predicted-outputs),\nwhich can greatly improve response times when large parts of the model\nresponse are known ahead of time. This is most common when you are\nregenerating a file with only minor changes to most of the content." + } + ] + }, + "presence_penalty": { + "type": [ + "number", + "null" + ], + "format": "float", + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\nwhether they appear in the text so far, increasing the model's likelihood\nto talk about new topics." + }, + "prompt_cache_key": { + "type": [ + "string", + "null" + ], + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces\nthe `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "reasoning_effort": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ReasoningEffort", + "description": "Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `minimal`, `low`, `medium`, and `high`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\nNote: The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort." + } + ] + }, + "response_format": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ResponseFormat", + "description": "An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables\nStructured Outputs which ensures the model will match your supplied JSON\nschema. Learn more in the [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it." + } + ] + }, + "safety_identifier": { + "type": [ + "string", + "null" + ], + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's\nusage policies.\n\nThe IDs should be a string that uniquely identifies each user. We recommend hashing their username\nor email address, in order to avoid sending us any identifying information. [Learn\nmore](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "seed": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "description": "This feature is in Beta.\n\nIf specified, our system will make a best effort to sample deterministically, such that\nrepeated requests with the same `seed` and parameters should return the same result.\n\nDeterminism is not guaranteed, and you should refer to the `system_fingerprint` response\nparameter to monitor changes in the backend.", + "deprecated": true + }, + "service_tier": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ServiceTier", + "description": "Specifies the processing type used for serving the request.\n- If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'.\n- If set to 'default', then the request will be processed with the standard pricing and performance for the selected model.\n- If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or '[priority](https://openai.com/api-priority-processing/)', then the request will be processed with the corresponding service tier.\n- When not set, the default behavior is 'auto'.\n\nWhen the `service_tier` parameter is set, the response body will include the `service_tier` value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter." + } + ] + }, + "stop": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/StopConfiguration", + "description": "Not supported with latest reasoning models `o3` and `o4-mini`.\n\nUp to 4 sequences where the API will stop generating further tokens. The\nreturned text will not contain the stop sequence." + } + ] + }, + "store": { + "type": [ + "boolean", + "null" + ], + "description": "Whether or not to store the output of this chat completion request for\nuse in our [model distillation](https://platform.openai.com/docs/guides/distillation) or\n[evals](https://platform.openai.com/docs/guides/evals) products.\n\nSupports text and image inputs. Note: image inputs over 8MB will be dropped." + }, + "stream": { + "type": [ + "boolean", + "null" + ], + "description": "If set to true, the model response data will be streamed to the client\nas it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).\nSee the [Streaming section below](https://platform.openai.com/docs/api-reference/chat/streaming)\nfor more information, along with the [streaming responses](https://platform.openai.com/docs/guides/streaming-responses)\nguide for more information on how to handle the streaming events." + }, + "stream_options": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ChatCompletionStreamOptions" + } + ] + }, + "temperature": { + "type": [ + "number", + "null" + ], + "format": "float", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.\n\nWe generally recommend altering this or `top_p` but not both." + }, + "tool_choice": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ChatCompletionToolChoiceOption", + "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces\nthe model to call that tool.\n`none` is the default when no tools are present. `auto` is the default if tools are present." + } + ] + }, + "tools": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/ChatCompletionTools" + }, + "description": "A list of tools the model may call. You can provide either\n[custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or\n[function tools](https://platform.openai.com/docs/guides/function-calling)." + }, + "top_logprobs": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "An integer between 0 and 20 specifying the number of most likely tokens to\nreturn at each token position, each with an associated log probability.\n`logprobs` must be set to `true` if this parameter is used.", + "minimum": 0 + }, + "top_p": { + "type": [ + "number", + "null" + ], + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or `temperature` but not both." + }, + "user": { + "type": [ + "string", + "null" + ], + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key`\ninstead to maintain caching optimizations.\nA stable identifier for your end-users.\nUsed to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and\nprevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).", + "deprecated": true + }, + "verbosity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Verbosity", + "description": "Constrains the verbosity of the model's response. Lower values will result in\nmore concise responses, while higher values will result in more verbose responses.\nCurrently supported values are `low`, `medium`, and `high`." + } + ] + }, + "web_search_options": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/WebSearchOptions", + "description": "This tool searches the web for relevant results to use in a response.\nLearn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat)." + } + ] + } + } + }, + "CreateChatCompletionResponse": { + "type": "object", + "description": "Represents a chat completion response returned by model, based on the provided input.", + "required": [ + "id", + "choices", + "created", + "model", + "object" + ], + "properties": { + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatChoice" + }, + "description": "A list of chat completion choices. Can be more than one if `n` is greater than 1." + }, + "created": { + "type": "integer", + "format": "int32", + "description": "The Unix timestamp (in seconds) of when the chat completion was created.", + "minimum": 0 + }, + "id": { + "type": "string", + "description": "A unique identifier for the chat completion." + }, + "model": { + "type": "string", + "description": "The model used for the chat completion." + }, + "object": { + "type": "string", + "description": "The object type, which is always `chat.completion`." + }, + "service_tier": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ServiceTier", + "description": "The service tier used for processing the request. This field is only included if the `service_tier` parameter is specified in the request." + } + ] + }, + "system_fingerprint": { + "type": [ + "string", + "null" + ], + "description": "This fingerprint represents the backend configuration that the model runs with.\n\nCan be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism.", + "deprecated": true + }, + "usage": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/CompletionUsage" + } + ] + } + } + }, + "CreateEmbeddingRequest": { + "type": "object", + "required": [ + "model", + "input" + ], + "properties": { + "dimensions": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models.", + "minimum": 0 + }, + "encoding_format": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/EncodingFormat", + "description": "The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/)." + } + ] + }, + "input": { + "$ref": "#/components/schemas/EmbeddingInput", + "description": "Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single\nrequest, pass an array of strings or array of token arrays. The input must not exceed the max\ninput tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and\nany array must be 2048 dimensions or less. [Example Python\ncode](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.\nIn addition to the per-input token limit, all embedding models enforce a maximum of 300,000\ntokens summed across all inputs in a single request." + }, + "model": { + "type": "string", + "description": "ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list)\nAPI to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models)\nfor descriptions of them." + }, + "user": { + "type": [ + "string", + "null" + ], + "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.\n[Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." + } + } + }, + "CreateEmbeddingResponse": { + "type": "object", + "required": [ + "object", + "model", + "data", + "usage" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Embedding" + }, + "description": "The list of embeddings generated by the model." + }, + "model": { + "type": "string", + "description": "The name of the model used to generate the embedding." + }, + "object": { + "type": "string" + }, + "usage": { + "$ref": "#/components/schemas/EmbeddingUsage", + "description": "The usage information for the request." + } + } + }, + "CreateResponse": { + "type": "object", + "description": "Builder for a Responses API request.", + "required": [ + "input" + ], + "properties": { + "background": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to run the model response in the background.\n[Learn more](https://platform.openai.com/docs/guides/background)." + }, + "conversation": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ConversationParam", + "description": "The conversation that this response belongs to. Items from this conversation are prepended to\n `input_items` for this response request.\n\nInput items and output items from this response are automatically added to this conversation after\nthis response completes." + } + ] + }, + "include": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/IncludeEnum" + }, + "description": "Specify additional output data to include in the model response. Currently supported\nvalues are:\n\n- `web_search_call.action.sources`: Include the sources of the web search tool call.\n\n- `code_interpreter_call.outputs`: Includes the outputs of python code execution in code\n interpreter tool call items.\n\n- `computer_call_output.output.image_url`: Include image urls from the computer call\n output.\n\n- `file_search_call.results`: Include the search results of the file search tool call.\n\n- `message.input_image.image_url`: Include image urls from the input message.\n\n- `message.output_text.logprobs`: Include logprobs with assistant messages.\n\n- `reasoning.encrypted_content`: Includes an encrypted version of reasoning tokens in\n reasoning item outputs. This enables reasoning items to be used in multi-turn\n conversations when using the Responses API statelessly (like when the `store` parameter is\n set to `false`, or when an organization is enrolled in the zero data retention program)." + }, + "input": { + "$ref": "#/components/schemas/InputParam", + "description": "Text, image, or file inputs to the model, used to generate a response.\n\nLearn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Image inputs](https://platform.openai.com/docs/guides/images)\n- [File inputs](https://platform.openai.com/docs/guides/pdf-files)\n- [Conversation state](https://platform.openai.com/docs/guides/conversation-state)\n- [Function calling](https://platform.openai.com/docs/guides/function-calling)" + }, + "instructions": { + "type": [ + "string", + "null" + ], + "description": "A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous\nresponse will not be carried over to the next response. This makes it simple\nto swap out system (or developer) messages in new responses." + }, + "max_output_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "An upper bound for the number of tokens that can be generated for a response, including\nvisible output tokens and [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).", + "minimum": 0 + }, + "max_tool_calls": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "The maximum number of total calls to built-in tools that can be processed in a response. This\nmaximum number applies across all built-in tool calls, not per individual tool. Any further\nattempts to call a tool by the model will be ignored.", + "minimum": 0 + }, + "metadata": { + "type": [ + "object", + "null" + ], + "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are\nstrings with a maximum length of 512 characters.", + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + } + }, + "model": { + "type": [ + "string", + "null" + ], + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\noffers a wide range of models with different capabilities, performance\ncharacteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\nto browse and compare available models." + }, + "parallel_tool_calls": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to allow the model to run tool calls in parallel." + }, + "previous_response_id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the previous response to the model. Use this to create multi-turn conversations.\nLearn more about [conversation state](https://platform.openai.com/docs/guides/conversation-state).\nCannot be used in conjunction with `conversation`." + }, + "prompt": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Prompt", + "description": "Reference to a prompt template and its variables.\n[Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts)." + } + ] + }, + "prompt_cache_key": { + "type": [ + "string", + "null" + ], + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces\nthe `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/PromptCacheRetention", + "description": "The retention policy for the prompt cache. Set to `24h` to enable extended prompt caching,\nwhich keeps cached prefixes active for longer, up to a maximum of 24 hours. [Learn\nmore](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention)." + } + ] + }, + "reasoning": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Reasoning", + "description": "**gpt-5 and o-series models only**\nConfiguration options for [reasoning models](https://platform.openai.com/docs/guides/reasoning)." + } + ] + }, + "safety_identifier": { + "type": [ + "string", + "null" + ], + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's\nusage policies.\n\nThe IDs should be a string that uniquely identifies each user. We recommend hashing their username\nor email address, in order to avoid sending us any identifying information. [Learn\nmore](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "service_tier": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ServiceTier", + "description": "Specifies the processing type used for serving the request.\n- If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'.\n- If set to 'default', then the request will be processed with the standard pricing and performance for the selected model.\n- If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or '[priority](https://openai.com/api-priority-processing/)', then the request will be processed with the corresponding service tier.\n- When not set, the default behavior is 'auto'.\n\nWhen the `service_tier` parameter is set, the response body will include the `service_tier` value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter." + } + ] + }, + "store": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to store the generated model response for later retrieval via API." + }, + "stream": { + "type": [ + "boolean", + "null" + ], + "description": "If set to true, the model response data will be streamed to the client\nas it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).\nSee the [Streaming section below](https://platform.openai.com/docs/api-reference/responses-streaming)\nfor more information." + }, + "stream_options": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ResponseStreamOptions", + "description": "Options for streaming responses. Only set this when you set `stream: true`." + } + ] + }, + "temperature": { + "type": [ + "number", + "null" + ], + "format": "float", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8\nwill make the output more random, while lower values like 0.2 will make it\nmore focused and deterministic. We generally recommend altering this or\n`top_p` but not both." + }, + "text": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ResponseTextParam", + "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)" + } + ] + }, + "tool_choice": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ToolChoiceParam", + "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." + } + ] + }, + "tools": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/Tool" + }, + "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nWe support the following categories of tools:\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like [web search](https://platform.openai.com/docs/guides/tools-web-search)\n or [file search](https://platform.openai.com/docs/guides/tools-file-search). Learn more about\n [built-in tools](https://platform.openai.com/docs/guides/tools).\n- **MCP Tools**: Integrations with third-party systems via custom MCP servers\n or predefined connectors such as Google Drive and SharePoint. Learn more about\n [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code with strongly typed arguments\n and outputs. Learn more about\n [function calling](https://platform.openai.com/docs/guides/function-calling). You can also use\n custom tools to call your own code." + }, + "top_logprobs": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each\ntoken position, each with an associated log probability.", + "minimum": 0 + }, + "top_p": { + "type": [ + "number", + "null" + ], + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both." + }, + "truncation": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Truncation", + "description": "The truncation strategy to use for the model response.\n - `auto`: If the input to this Response exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping items from the beginning of the conversation.\n - `disabled` (default): If the input size will exceed the context window\n size for a model, the request will fail with a 400 error." + } + ] + } + } + }, + "CustomGrammarFormatParam": { + "type": "object", + "required": [ + "definition", + "syntax" + ], + "properties": { + "definition": { + "type": "string", + "description": "The grammar definition." + }, + "syntax": { + "$ref": "#/components/schemas/GrammarSyntax", + "description": "The syntax of the grammar definition. One of `lark` or `regex`." + } + } + }, + "CustomName": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the custom tool to call." + } + } + }, + "CustomTool": { + "type": "object", + "required": [ + "name", + "input" + ], + "properties": { + "input": { + "type": "string", + "description": "The input for the custom tool call generated by the model." + }, + "name": { + "type": "string", + "description": "The name of the custom tool to call." + } + } + }, + "CustomToolCall": { + "type": "object", + "required": [ + "call_id", + "input", + "name", + "id" + ], + "properties": { + "call_id": { + "type": "string", + "description": "An identifier used to map this custom tool call to a tool call output." + }, + "id": { + "type": "string", + "description": "The unique ID of the custom tool call in the OpenAI platform." + }, + "input": { + "type": "string", + "description": "The input for the custom tool call generated by the model." + }, + "name": { + "type": "string", + "description": "The name of the custom tool being called." + } + } + }, + "CustomToolCallOutput": { + "type": "object", + "required": [ + "call_id", + "output" + ], + "properties": { + "call_id": { + "type": "string", + "description": "The call ID, used to map this custom tool call output to a custom tool call." + }, + "id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the custom tool call output in the OpenAI platform." + }, + "output": { + "$ref": "#/components/schemas/CustomToolCallOutputOutput", + "description": "The output from the custom tool call generated by your code.\nCan be a string or an list of output content." + } + } + }, + "CustomToolCallOutputOutput": { + "oneOf": [ + { + "type": "string", + "description": "A string of the output of the custom tool call." + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputContent" + }, + "description": "Text, image, or file output of the custom tool call." + } + ] + }, + "CustomToolChatCompletions": { + "type": "object", + "required": [ + "custom" + ], + "properties": { + "custom": { + "$ref": "#/components/schemas/CustomToolProperties" + } + } + }, + "CustomToolParam": { + "type": "object", + "required": [ + "name", + "format" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ], + "description": "Optional description of the custom tool, used to provide more context." + }, + "format": { + "$ref": "#/components/schemas/CustomToolParamFormat", + "description": "The input format for the custom tool. Default is unconstrained text." + }, + "name": { + "type": "string", + "description": "The name of the custom tool, used to identify it in tool calls." + } + } + }, + "CustomToolParamFormat": { + "oneOf": [ + { + "type": "object", + "description": "Unconstrained free-form text.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CustomGrammarFormatParam", + "description": "A grammar defined by the user." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "grammar" + ] + } + } + } + ], + "description": "A grammar defined by the user." + } + ] + }, + "CustomToolProperties": { + "type": "object", + "required": [ + "name", + "format" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ], + "description": "Optional description of the custom tool, used to provide more context." + }, + "format": { + "$ref": "#/components/schemas/CustomToolPropertiesFormat", + "description": "The input format for the custom tool. Default is unconstrained text." + }, + "name": { + "type": "string", + "description": "The name of the custom tool, used to identify it in tool calls." + } + } + }, + "CustomToolPropertiesFormat": { + "oneOf": [ + { + "type": "object", + "description": "Unconstrained free-form text.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ] + } + } + }, + { + "type": "object", + "description": "A grammar defined by the user.", + "required": [ + "grammar", + "type" + ], + "properties": { + "grammar": { + "$ref": "#/components/schemas/CustomGrammarFormatParam" + }, + "type": { + "type": "string", + "enum": [ + "grammar" + ] + } + } + } + ] + }, + "DatasetFilter": { + "type": "object", + "properties": { + "source": { + "type": [ + "string", + "null" + ], + "description": "Filters datasets by source (e.g., `postgres:aidemo_messages`)." + } + } + }, + "DatasetInfo": { + "type": "object", + "description": "Dataset information returned by the `/v1/datasets` endpoint.", + "required": [ + "from", + "name", + "replication_enabled", + "acceleration_enabled" + ], + "properties": { + "acceleration_enabled": { + "type": "boolean", + "description": "Whether acceleration is enabled for the dataset" + }, + "error": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ComponentError", + "description": "An optional error type/code for the dataset status.\nOnly populated when `status=true` and the dataset status is `Error`.\nExample:\n`{ \"category\": \"dataset\", \"type\": \"auth\", \"code\": \"dataset.auth\" }`." + } + ] + }, + "error_message": { + "type": [ + "string", + "null" + ], + "description": "An optional error message describing why the dataset entered an error state.\nOnly populated when `status=true`, the dataset status is `Error`, and an error message was recorded.\nThis value is intended for user-visible display." + }, + "from": { + "type": "string", + "description": "The source where the dataset is located (e.g., `postgres:syncs`)" + }, + "name": { + "type": "string", + "description": "The name of the dataset" + }, + "properties": { + "type": "object", + "description": "Custom properties for the dataset", + "additionalProperties": {}, + "propertyNames": { + "type": "string" + } + }, + "replication_enabled": { + "type": "boolean", + "description": "Whether replication is enabled for the dataset" + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/String", + "description": "The current status of the dataset. Only included when `status=true` query parameter is specified.\nPossible values: `Initializing`, `Ready`, `Disabled`, `Error`, `Refreshing`, `ShuttingDown`." + } + ] + } + } + }, + "DatasetQueryParams": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/Format", + "description": "The format of the response. Possible values are 'json' (default) or 'csv'." + }, + "status": { + "type": "boolean", + "description": "Whether to include the status field in the response. When `true`, the response includes\nthe current status of each dataset (e.g., `ready`, `initializing`, `refreshing`, `error`).\nDefaults to `false`." + } + } + }, + "DoubleClickAction": { + "type": "object", + "description": "A double click action.", + "required": [ + "x", + "y" + ], + "properties": { + "x": { + "type": "integer", + "format": "int32", + "description": "The x-coordinate where the double click occurred." + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The y-coordinate where the double click occurred." + } + } + }, + "Drag": { + "type": "object", + "description": "A drag action.", + "required": [ + "path" + ], + "properties": { + "path": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DragPoint" + }, + "description": "The path of points the cursor drags through." + } + } + }, + "DragPoint": { + "type": "object", + "description": "A point in 2D space.", + "required": [ + "x", + "y" + ], + "properties": { + "x": { + "type": "integer", + "format": "int32", + "description": "The x-coordinate." + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The y-coordinate." + } + } + }, + "EasyInputContent": { + "oneOf": [ + { + "type": "string", + "description": "A text input to the model." + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputContent" + }, + "description": "A list of one or many input items to the model, containing different content types." + } + ], + "description": "Content for EasyInputMessage - can be a simple string or structured list." + }, + "EasyInputMessage": { + "type": "object", + "description": "A simplified message input to the model (EasyInputMessage in the OpenAPI spec).\n\nThis is the most user-friendly way to provide messages, supporting both simple\nstring content and structured content. Role can include `assistant` for providing\nprevious assistant responses.", + "required": [ + "type", + "role", + "content" + ], + "properties": { + "content": { + "$ref": "#/components/schemas/EasyInputContent", + "description": "Text, image, or audio input to the model, used to generate a response.\nCan also contain previous assistant responses." + }, + "role": { + "$ref": "#/components/schemas/Role", + "description": "The role of the message input. One of `user`, `assistant`, `system`, or `developer`." + }, + "type": { + "$ref": "#/components/schemas/MessageType", + "description": "The type of the message input. Always set to `message`." + } + } + }, + "Embedding": { + "type": "object", + "description": "Represents an embedding vector returned by embedding endpoint.", + "required": [ + "index", + "object", + "embedding" + ], + "properties": { + "embedding": { + "$ref": "#/components/schemas/EmbeddingVector", + "description": "The embedding vector, which is a list of floats. The length of vector\ndepends on the model as listed in the [embedding guide](https://platform.openai.com/docs/guides/embeddings)." + }, + "index": { + "type": "integer", + "format": "int32", + "description": "The index of the embedding in the list of embeddings.", + "minimum": 0 + }, + "object": { + "type": "string", + "description": "The object type, which is always \"embedding\"." + } + } + }, + "EmbeddingInput": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + }, + { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + } + ] + }, + "EmbeddingUsage": { + "type": "object", + "required": [ + "prompt_tokens", + "total_tokens" + ], + "properties": { + "prompt_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of tokens used by the prompt.", + "minimum": 0 + }, + "total_tokens": { + "type": "integer", + "format": "int32", + "description": "The total number of tokens used by the request.", + "minimum": 0 + } + } + }, + "EmbeddingVector": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + { + "type": "string" + } + ] + }, + "EncodingFormat": { + "type": "string", + "enum": [ + "float", + "base64" + ] + }, + "ErrorObject": { + "type": "object", + "description": "Error returned by the API when a request fails.", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "string", + "description": "The error code for the response." + }, + "message": { + "type": "string", + "description": "A human-readable description of the error." + } + } + }, + "FileCitationBody": { + "type": "object", + "required": [ + "file_id", + "filename", + "index" + ], + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the file." + }, + "filename": { + "type": "string", + "description": "The filename of the file cited." + }, + "index": { + "type": "integer", + "format": "int32", + "description": "The index of the file in the list of files.", + "minimum": 0 + } + } + }, + "FileObject": { + "type": "object", + "properties": { + "file_data": { + "type": [ + "string", + "null" + ], + "description": "The base64 encoded file data, used when passing the file to the model\nas a string." + }, + "file_id": { + "type": [ + "string", + "null" + ], + "description": "The ID of an uploaded file to use as input." + }, + "filename": { + "type": [ + "string", + "null" + ], + "description": "The name of the file, used when passing the file to the model as a\nstring." + } + } + }, + "FilePath": { + "type": "object", + "required": [ + "file_id", + "index" + ], + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the file." + }, + "index": { + "type": "integer", + "format": "int32", + "description": "The index of the file in the list of files.", + "minimum": 0 + } + } + }, + "FileSearchTool": { + "type": "object", + "required": [ + "vector_store_ids" + ], + "properties": { + "filters": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Filter", + "description": "A filter to apply." + } + ] + }, + "max_num_results": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive.", + "minimum": 0 + }, + "ranking_options": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/RankingOptions", + "description": "Ranking options for search." + } + ] + }, + "vector_store_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The IDs of the vector stores to search." + } + } + }, + "FileSearchToolCall": { + "type": "object", + "description": "File search tool call output.", + "required": [ + "id", + "queries", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the file search tool call." + }, + "queries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The queries used to search for files." + }, + "results": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/FileSearchToolCallResult" + }, + "description": "The results of the file search tool call." + }, + "status": { + "$ref": "#/components/schemas/FileSearchToolCallStatus", + "description": "The status of the file search tool call. One of `in_progress`, `searching`,\n`incomplete`,`failed`, or `completed`." + } + } + }, + "FileSearchToolCallResult": { + "type": "object", + "description": "A single result from a file search.", + "required": [ + "attributes", + "file_id", + "filename", + "score", + "text" + ], + "properties": { + "attributes": { + "type": "object", + "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing\nadditional information about the object in a structured format, and querying for objects\nAPI or the dashboard. Keys are strings with a maximum length of 64 characters\n. Values are strings with a maximum length of 512 characters, booleans, or numbers.", + "additionalProperties": {}, + "propertyNames": { + "type": "string" + } + }, + "file_id": { + "type": "string", + "description": "The unique ID of the file." + }, + "filename": { + "type": "string", + "description": "The name of the file." + }, + "score": { + "type": "number", + "format": "float", + "description": "The relevance score of the file - a value between 0 and 1." + }, + "text": { + "type": "string", + "description": "The text that was retrieved from the file." + } + } + }, + "FileSearchToolCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "incomplete", + "failed", + "completed" + ] + }, + "Filter": { + "oneOf": [ + { + "$ref": "#/components/schemas/ComparisonFilter", + "description": "A filter used to compare a specified attribute key to a given value using a defined\ncomparison operation." + }, + { + "$ref": "#/components/schemas/CompoundFilter", + "description": "Combine multiple filters using `and` or `or`." + } + ], + "description": "Filters for file search." + }, + "FinishReason": { + "type": "string", + "enum": [ + "stop", + "length", + "tool_calls", + "content_filter", + "function_call" + ] + }, + "Format": { + "type": "string", + "enum": [ + "json", + "csv" + ] + }, + "FunctionCall": { + "type": "object", + "description": "The name and arguments of a function that should be called, as generated by the model.", + "required": [ + "name", + "arguments" + ], + "properties": { + "arguments": { + "type": "string", + "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function." + }, + "name": { + "type": "string", + "description": "The name of the function to call." + } + } + }, + "FunctionCallOutput": { + "oneOf": [ + { + "type": "string", + "description": "A JSON string of the output of the function tool call." + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputContent" + } + } + ] + }, + "FunctionCallOutputItemParam": { + "type": "object", + "description": "Output from a function call that you're providing back to the model.", + "required": [ + "call_id", + "output" + ], + "properties": { + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." + }, + "id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the function tool call output.\nPopulated when this item is returned via API." + }, + "output": { + "$ref": "#/components/schemas/FunctionCallOutput", + "description": "Text, image, or file output of the function tool call." + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API." + } + ] + } + } + }, + "FunctionName": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the function to call." + } + } + }, + "FunctionObject": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ], + "description": "A description of what the function does, used by the model to choose when and how to call the function." + }, + "name": { + "type": "string", + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + }, + "parameters": { + "description": "The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/text-generation/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." + }, + "strict": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling)." + } + } + }, + "FunctionShellAction": { + "type": "object", + "description": "Shell exec action\nExecute a shell command.", + "required": [ + "commands" + ], + "properties": { + "commands": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of commands to run." + }, + "max_output_length": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "description": "Optional maximum number of characters to return from each command.", + "minimum": 0 + }, + "timeout_ms": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "description": "Optional timeout in milliseconds for the commands.", + "minimum": 0 + } + } + }, + "FunctionShellActionParam": { + "type": "object", + "description": "Commands and limits describing how to run the shell tool call.", + "required": [ + "commands" + ], + "properties": { + "commands": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Ordered shell commands for the execution environment to run." + }, + "max_output_length": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "description": "Maximum number of UTF-8 characters to capture from combined stdout and stderr output.", + "minimum": 0 + }, + "timeout_ms": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "description": "Maximum wall-clock time in milliseconds to allow the shell commands to run.", + "minimum": 0 + } + } + }, + "FunctionShellCall": { + "type": "object", + "description": "A tool call that executes one or more shell commands in a managed environment.", + "required": [ + "id", + "call_id", + "action", + "status" + ], + "properties": { + "action": { + "$ref": "#/components/schemas/FunctionShellAction", + "description": "The shell commands and limits that describe how to run the tool call." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the function shell tool call generated by the model." + }, + "created_by": { + "type": [ + "string", + "null" + ], + "description": "The ID of the entity that created this tool call." + }, + "id": { + "type": "string", + "description": "The unique ID of the function shell tool call. Populated when this item is returned via API." + }, + "status": { + "$ref": "#/components/schemas/LocalShellCallStatus", + "description": "The status of the shell call. One of `in_progress`, `completed`, or `incomplete`." + } + } + }, + "FunctionShellCallItemParam": { + "type": "object", + "description": "A tool representing a request to execute one or more shell commands.", + "required": [ + "call_id", + "action" + ], + "properties": { + "action": { + "$ref": "#/components/schemas/FunctionShellActionParam", + "description": "The shell commands and limits that describe how to run the tool call." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the shell tool call. Populated when this item is returned via API." + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/FunctionShellCallItemStatus", + "description": "The status of the shell call. One of `in_progress`, `completed`, or `incomplete`." + } + ] + } + } + }, + "FunctionShellCallItemStatus": { + "type": "string", + "description": "Status values reported for shell tool calls.", + "enum": [ + "in_progress", + "completed", + "incomplete" + ] + }, + "FunctionShellCallOutput": { + "type": "object", + "description": "The output of a shell tool call.", + "required": [ + "id", + "call_id", + "output" + ], + "properties": { + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "created_by": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string", + "description": "The unique ID of the shell call output. Populated when this item is returned via API." + }, + "max_output_length": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "description": "The maximum length of the shell command output. This is generated by the model and should be\npassed back with the raw output.", + "minimum": 0 + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FunctionShellCallOutputContent" + }, + "description": "An array of shell call output contents" + } + } + }, + "FunctionShellCallOutputContent": { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionShellCallOutputOutcome", + "description": "Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk." + }, + { + "type": "object", + "required": [ + "stdout", + "stderr" + ], + "properties": { + "created_by": { + "type": [ + "string", + "null" + ] + }, + "stderr": { + "type": "string" + }, + "stdout": { + "type": "string" + } + } + } + ], + "description": "The content of a shell call output." + }, + "FunctionShellCallOutputContentParam": { + "type": "object", + "description": "Captured stdout and stderr for a portion of a shell tool call output.", + "required": [ + "stdout", + "stderr", + "outcome" + ], + "properties": { + "outcome": { + "$ref": "#/components/schemas/FunctionShellCallOutputOutcomeParam", + "description": "The exit or timeout outcome associated with this chunk." + }, + "stderr": { + "type": "string", + "description": "Captured stderr output for this chunk of the shell call." + }, + "stdout": { + "type": "string", + "description": "Captured stdout output for this chunk of the shell call." + } + } + }, + "FunctionShellCallOutputExitOutcome": { + "type": "object", + "description": "Indicates that the shell commands finished and returned an exit code.", + "required": [ + "exit_code" + ], + "properties": { + "exit_code": { + "type": "integer", + "format": "int32", + "description": "Exit code from the shell process." + } + } + }, + "FunctionShellCallOutputExitOutcomeParam": { + "type": "object", + "description": "Indicates that the shell commands finished and returned an exit code.", + "required": [ + "exit_code" + ], + "properties": { + "exit_code": { + "type": "integer", + "format": "int32", + "description": "The exit code returned by the shell process." + } + } + }, + "FunctionShellCallOutputItemParam": { + "type": "object", + "description": "The streamed output items emitted by a shell tool call.", + "required": [ + "call_id", + "output" + ], + "properties": { + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the shell tool call output. Populated when this item is returned via API." + }, + "max_output_length": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "description": "The maximum number of UTF-8 characters captured for this shell call's combined output.", + "minimum": 0 + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FunctionShellCallOutputContentParam" + }, + "description": "Captured chunks of stdout and stderr output, along with their associated outcomes." + } + } + }, + "FunctionShellCallOutputOutcome": { + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "timeout" + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionShellCallOutputExitOutcome" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "exit" + ] + } + } + } + ] + } + ], + "description": "Function shell call outcome" + }, + "FunctionShellCallOutputOutcomeParam": { + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "timeout" + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionShellCallOutputExitOutcomeParam" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "exit" + ] + } + } + } + ] + } + ], + "description": "The exit or timeout outcome associated with this chunk." + }, + "FunctionTool": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ], + "description": "A description of the function. Used by the model to determine whether or not to call the\nfunction." + }, + "name": { + "type": "string", + "description": "The name of the function to call." + }, + "parameters": { + "description": "A JSON schema object describing the parameters of the function." + }, + "strict": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to enforce strict parameter validation. Default `true`." + } + } + }, + "FunctionToolCall": { + "type": "object", + "required": [ + "arguments", + "call_id", + "name" + ], + "properties": { + "arguments": { + "type": "string", + "description": "A JSON string of the arguments to pass to the function." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." + }, + "id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the function tool call." + }, + "name": { + "type": "string", + "description": "The name of the function to run." + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API." + } + ] + } + } + }, + "GeneratePackageRequest": { + "type": "object", + "required": [ + "from", + "params" + ], + "properties": { + "from": { + "type": "string", + "description": "The GitHub source path in the format `github:{org}/{repo}/{sha}/{path_to_spicepod.yaml}`" + }, + "params": { + "type": "object", + "description": "A key-value map of optional parameters (e.g., `github_token`)", + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + } + } + } + }, + "GrammarSyntax": { + "type": "string", + "enum": [ + "lark", + "regex" + ] + }, + "HybridSearch": { + "type": "object", + "required": [ + "embedding_weight", + "text_weight" + ], + "properties": { + "embedding_weight": { + "type": "number", + "format": "float", + "description": "The weight of the embedding in the reciprocal ranking fusion." + }, + "text_weight": { + "type": "number", + "format": "float", + "description": "The weight of the text in the reciprocal ranking fusion." + } + } + }, + "IcebergError": { + "type": "object", + "required": [ + "message", + "type", + "code" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "message": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/IcebergErrorType" + } + } + }, + "IcebergErrorType": { + "type": "string", + "enum": [ + "NoSuchNamespaceException", + "BadRequestException", + "InternalServerError" + ] + }, + "IcebergResponseError": { + "type": "object", + "required": [ + "error" + ], + "properties": { + "error": { + "$ref": "#/components/schemas/IcebergError" + } + } + }, + "ImageDetail": { + "type": "string", + "enum": [ + "auto", + "low", + "high" + ] + }, + "ImageGenTool": { + "type": "object", + "description": "Image generation tool definition.", + "properties": { + "background": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ImageGenToolBackground", + "description": "Background type for the generated image. One of `transparent`,\n`opaque`, or `auto`. Default: `auto`." + } + ] + }, + "input_fidelity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/InputFidelity", + "description": "Control how much effort the model will exert to match the style and features, especially facial features,\nof input images. This parameter is only supported for `gpt-image-1`. Unsupported\nfor `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`." + } + ] + }, + "input_image_mask": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ImageGenToolInputImageMask", + "description": "Optional mask for inpainting. Contains `image_url`\n(string, optional) and `file_id` (string, optional)." + } + ] + }, + "model": { + "type": [ + "string", + "null" + ], + "description": "The image generation model to use. Default: `gpt-image-1`." + }, + "moderation": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ImageGenToolModeration", + "description": "Moderation level for the generated image. Default: `auto`." + } + ] + }, + "output_compression": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "Compression level for the output image. Default: 100.", + "minimum": 0 + }, + "output_format": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ImageGenToolOutputFormat", + "description": "The output format of the generated image. One of `png`, `webp`, or\n`jpeg`. Default: `png`." + } + ] + }, + "partial_images": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "Number of partial images to generate in streaming mode, from 0 (default value) to 3.", + "minimum": 0 + }, + "quality": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ImageGenToolQuality", + "description": "The quality of the generated image. One of `low`, `medium`, `high`,\nor `auto`. Default: `auto`." + } + ] + }, + "size": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ImageGenToolSize", + "description": "The size of the generated image. One of `1024x1024`, `1024x1536`,\n`1536x1024`, or `auto`. Default: `auto`." + } + ] + } + } + }, + "ImageGenToolBackground": { + "type": "string", + "enum": [ + "transparent", + "opaque", + "auto" + ] + }, + "ImageGenToolCall": { + "type": "object", + "required": [ + "id", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the image generation call." + }, + "result": { + "type": [ + "string", + "null" + ], + "description": "The generated image encoded in base64." + }, + "status": { + "$ref": "#/components/schemas/ImageGenToolCallStatus", + "description": "The status of the image generation call." + } + } + }, + "ImageGenToolCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "generating", + "failed" + ] + }, + "ImageGenToolInputImageMask": { + "type": "object", + "properties": { + "file_id": { + "type": [ + "string", + "null" + ], + "description": "File ID for the mask image." + }, + "image_url": { + "type": [ + "string", + "null" + ], + "description": "Base64-encoded mask image." + } + } + }, + "ImageGenToolModeration": { + "type": "string", + "enum": [ + "auto", + "low" + ] + }, + "ImageGenToolOutputFormat": { + "type": "string", + "enum": [ + "png", + "webp", + "jpeg" + ] + }, + "ImageGenToolQuality": { + "type": "string", + "enum": [ + "low", + "medium", + "high", + "auto" + ] + }, + "ImageGenToolSize": { + "type": "string", + "enum": [ + "auto", + "1024x1024", + "1024x1536", + "1536x1024" + ] + }, + "ImageUrl": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "detail": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ImageDetail", + "description": "Specifies the detail level of the image. Learn more in the [Vision guide](https://platform.openai.com/docs/guides/vision/low-or-high-fidelity-image-understanding)." + } + ] + }, + "url": { + "type": "string", + "description": "Either a URL of the image or the base64 encoded image data." + } + } + }, + "IncludeEnum": { + "type": "string", + "enum": [ + "file_search_call.results", + "web_search_call.results", + "web_search_call.action.sources", + "message.input_image.image_url", + "computer_call_output.output.image_url", + "code_interpreter_call.outputs", + "reasoning.encrypted_content", + "message.output_text.logprobs" + ] + }, + "IncompleteDetails": { + "type": "object", + "description": "Details about an incomplete response.", + "required": [ + "reason" + ], + "properties": { + "reason": { + "type": "string", + "description": "The reason why the response is incomplete." + } + } + }, + "InputAudio": { + "type": "object", + "required": [ + "data", + "format" + ], + "properties": { + "data": { + "type": "string", + "description": "Base64 encoded audio data." + }, + "format": { + "$ref": "#/components/schemas/InputAudioFormat", + "description": "The format of the encoded audio data. Currently supports \"wav\" and \"mp3\"." + } + } + }, + "InputAudioFormat": { + "type": "string", + "enum": [ + "wav", + "mp3" + ] + }, + "InputContent": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/InputTextContent", + "description": "A text input to the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "input_text" + ] + } + } + } + ], + "description": "A text input to the model." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/InputImageContent", + "description": "An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "input_image" + ] + } + } + } + ], + "description": "An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/InputFileContent", + "description": "A file input to the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "input_file" + ] + } + } + } + ], + "description": "A file input to the model." + } + ], + "description": "Parts of a message: text, image, file, or audio." + }, + "InputFidelity": { + "type": "string", + "enum": [ + "high", + "low" + ] + }, + "InputFileContent": { + "type": "object", + "properties": { + "file_data": { + "type": [ + "string", + "null" + ], + "description": "The content of the file to be sent to the model." + }, + "file_id": { + "type": [ + "string", + "null" + ], + "description": "The ID of the file to be sent to the model." + }, + "file_url": { + "type": [ + "string", + "null" + ], + "description": "The URL of the file to be sent to the model." + }, + "filename": { + "type": [ + "string", + "null" + ], + "description": "The name of the file to be sent to the model." + } + } + }, + "InputImageContent": { + "type": "object", + "required": [ + "detail" + ], + "properties": { + "detail": { + "$ref": "#/components/schemas/ImageDetail", + "description": "The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`." + }, + "file_id": { + "type": [ + "string", + "null" + ], + "description": "The ID of the file to be sent to the model." + }, + "image_url": { + "type": [ + "string", + "null" + ], + "description": "The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL." + } + } + }, + "InputItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/ItemReference", + "description": "A reference to an existing item by ID.\nHas a required `id` field and optional `type` (can be \"item_reference\" or null).\nMust be tried first as it's the most minimal structure." + }, + { + "$ref": "#/components/schemas/Item", + "description": "All structured items with proper type discrimination.\nIncludes InputMessage, OutputMessage, and all tool calls/outputs.\nUses the discriminated `Item` enum for efficient, type-safe deserialization." + }, + { + "$ref": "#/components/schemas/EasyInputMessage", + "description": "A simple, user-friendly message input (EasyInputMessage).\nSupports string content and can include assistant role for previous responses.\nMust be tried last as it's the most flexible structure.\n\nA message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions." + } + ], + "description": "Input item that can be used in the context for generating a response.\n\nThis represents the OpenAPI `InputItem` schema which is an `anyOf`:\n1. `EasyInputMessage` - Simple, user-friendly message input (can use string content)\n2. `Item` - Structured items with proper type discrimination (including InputMessage, OutputMessage, tool calls)\n3. `ItemReferenceParam` - Reference to an existing item by ID (type can be null)\n\nUses untagged deserialization because these types overlap in structure.\nOrder matters: more specific structures are tried first.\n\n# OpenAPI Specification\nCorresponds to the `InputItem` schema: `anyOf[EasyInputMessage, Item, ItemReferenceParam]`" + }, + "InputMessage": { + "type": "object", + "description": "A structured message input to the model (InputMessage in the OpenAPI spec).\n\nThis variant requires structured content (not a simple string) and does not support\nthe `assistant` role (use OutputMessage for that). status is populated when items are returned via API.", + "required": [ + "content", + "role" + ], + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputContent" + }, + "description": "A list of one or many input items to the model, containing different content types." + }, + "role": { + "$ref": "#/components/schemas/InputRole", + "description": "The role of the message input. One of `user`, `system`, or `developer`.\nNote: `assistant` is NOT allowed here; use OutputMessage instead." + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API." + } + ] + } + } + }, + "InputParam": { + "oneOf": [ + { + "type": "string", + "description": " A text input to the model, equivalent to a text input with the\n`user` role." + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputItem" + }, + "description": "A list of one or many input items to the model, containing\ndifferent content types." + } + ] + }, + "InputRole": { + "type": "string", + "description": "The role for an input message - can only be `user`, `system`, or `developer`.\nThis type ensures type safety by excluding the `assistant` role (use OutputMessage for that).", + "enum": [ + "user", + "system", + "developer" + ] + }, + "InputTextContent": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string", + "description": "The text input to the model." + } + } + }, + "InputTokenDetails": { + "type": "object", + "required": [ + "cached_tokens" + ], + "properties": { + "cached_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of tokens that were retrieved from the cache.\n[More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching).", + "minimum": 0 + } + } + }, + "Instructions": { + "oneOf": [ + { + "type": "string", + "description": "A text input to the model, equivalent to a text input with the `developer` role." + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/InputItem" + }, + "description": "A list of one or many input items to the model, containing different content types." + } + ] + }, + "Item": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/MessageItem", + "description": "A message (type: \"message\").\nCan represent InputMessage (user/system/developer) or OutputMessage (assistant).\n\nInputMessage:\n A message input to the model with a role indicating instruction following hierarchy.\n Instructions given with the developer or system role take precedence over instructions given with the user role.\nOutputMessage:\n A message output from the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "message" + ] + } + } + } + ], + "description": "A message (type: \"message\").\nCan represent InputMessage (user/system/developer) or OutputMessage (assistant).\n\nInputMessage:\n A message input to the model with a role indicating instruction following hierarchy.\n Instructions given with the developer or system role take precedence over instructions given with the user role.\nOutputMessage:\n A message output from the model." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FileSearchToolCall", + "description": "The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search_call" + ] + } + } + } + ], + "description": "The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ComputerToolCall", + "description": "A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call" + ] + } + } + } + ], + "description": "A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ComputerCallOutputItemParam", + "description": "The output of a computer tool call." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call_output" + ] + } + } + } + ], + "description": "The output of a computer tool call." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchToolCall", + "description": "The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search_call" + ] + } + } + } + ], + "description": "The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionToolCall", + "description": "A tool call to run a function. See the\n\n[function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function_call" + ] + } + } + } + ], + "description": "A tool call to run a function. See the\n\n[function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionCallOutputItemParam", + "description": "The output of a function tool call." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function_call_output" + ] + } + } + } + ], + "description": "The output of a function tool call." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ReasoningItem", + "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "reasoning" + ] + } + } + } + ], + "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CompactionSummaryItemParam", + "description": "A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "compaction" + ] + } + } + } + ], + "description": "A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ImageGenToolCall", + "description": "An image generation request made by the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_generation_call" + ] + } + } + } + ], + "description": "An image generation request made by the model." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CodeInterpreterToolCall", + "description": "A tool call to run code." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter_call" + ] + } + } + } + ], + "description": "A tool call to run code." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/LocalShellToolCall", + "description": "A tool call to run a command on the local shell." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell_call" + ] + } + } + } + ], + "description": "A tool call to run a command on the local shell." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/LocalShellToolCallOutput", + "description": "The output of a local shell tool call." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell_call_output" + ] + } + } + } + ], + "description": "The output of a local shell tool call." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionShellCallItemParam", + "description": "A tool representing a request to execute one or more shell commands." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell_call" + ] + } + } + } + ], + "description": "A tool representing a request to execute one or more shell commands." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionShellCallOutputItemParam", + "description": "The streamed output items emitted by a shell tool call." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell_call_output" + ] + } + } + } + ], + "description": "The streamed output items emitted by a shell tool call." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ApplyPatchToolCallItemParam", + "description": "A tool call representing a request to create, delete, or update files using diff patches." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call" + ] + } + } + } + ], + "description": "A tool call representing a request to create, delete, or update files using diff patches." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ApplyPatchToolCallOutputItemParam", + "description": "The streamed output emitted by an apply patch tool call." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call_output" + ] + } + } + } + ], + "description": "The streamed output emitted by an apply patch tool call." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/MCPListTools", + "description": "A list of tools available on an MCP server." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_list_tools" + ] + } + } + } + ], + "description": "A list of tools available on an MCP server." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/MCPApprovalRequest", + "description": "A request for human approval of a tool invocation." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_approval_request" + ] + } + } + } + ], + "description": "A request for human approval of a tool invocation." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/MCPApprovalResponse", + "description": "A response to an MCP approval request." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_approval_response" + ] + } + } + } + ], + "description": "A response to an MCP approval request." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/MCPToolCall", + "description": "An invocation of a tool on an MCP server." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_call" + ] + } + } + } + ], + "description": "An invocation of a tool on an MCP server." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CustomToolCallOutput", + "description": "The output of a custom tool call from your code, being sent back to the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_tool_call_output" + ] + } + } + } + ], + "description": "The output of a custom tool call from your code, being sent back to the model." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CustomToolCall", + "description": "A call to a custom tool created by the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_tool_call" + ] + } + } + } + ], + "description": "A call to a custom tool created by the model." + } + ], + "description": "Content item used to generate a response.\n\nThis is a properly discriminated union based on the `type` field, using Rust's\ntype-safe enum with serde's tag attribute for efficient deserialization.\n\n# OpenAPI Specification\nCorresponds to the `Item` schema in the OpenAPI spec with a `type` discriminator." + }, + "ItemReference": { + "type": "object", + "description": "A reference to an existing item by ID.", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the item to reference." + }, + "type": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ItemReferenceType", + "description": "The type of item to reference. Can be \"item_reference\" or null." + } + ] + } + } + }, + "ItemReferenceType": { + "type": "string", + "enum": [ + "item_reference" + ] + }, + "KeyPressAction": { + "type": "object", + "description": "A keypress action.", + "required": [ + "keys" + ], + "properties": { + "keys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The combination of keys the model is requesting to be pressed.\nThis is an array of strings, each representing a key." + } + } + }, + "ListTablesResponse": { + "type": "object", + "required": [ + "identifiers" + ], + "properties": { + "identifiers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TableIdentifier" + } + } + } + }, + "ListToolElement": { + "type": "object", + "description": "Summary of a tool available to run, and the schema of its input parameters.", + "required": [ + "name" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "parameters": {} + } + }, + "LoadTableResponse": { + "type": "object", + "required": [ + "metadata" + ], + "properties": { + "metadata": { + "$ref": "#/components/schemas/TableMetadata" + } + } + }, + "LocalShellCallStatus": { + "type": "string", + "description": "Status values reported for function shell tool calls.", + "enum": [ + "in_progress", + "completed", + "incomplete" + ] + }, + "LocalShellExecAction": { + "type": "object", + "description": "Define the shape of a local shell action (exec).", + "required": [ + "command", + "env" + ], + "properties": { + "command": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The command to run." + }, + "env": { + "type": "object", + "description": "Environment variables to set for the command.", + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + } + }, + "timeout_ms": { + "type": [ + "integer", + "null" + ], + "format": "int64", + "description": "Optional timeout in milliseconds for the command.", + "minimum": 0 + }, + "user": { + "type": [ + "string", + "null" + ], + "description": "Optional user to run the command as." + }, + "working_directory": { + "type": [ + "string", + "null" + ], + "description": "Optional working directory to run the command in." + } + } + }, + "LocalShellToolCall": { + "type": "object", + "required": [ + "action", + "call_id", + "id", + "status" + ], + "properties": { + "action": { + "$ref": "#/components/schemas/LocalShellExecAction", + "description": "Execute a shell command on the server." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "id": { + "type": "string", + "description": "The unique ID of the local shell call." + }, + "status": { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the local shell call." + } + } + }, + "LocalShellToolCallOutput": { + "type": "object", + "description": "Output from a local shell tool call that you're providing back to the model.", + "required": [ + "id", + "output" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "output": { + "type": "string", + "description": "A JSON string of the output of the local shell tool call." + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the item. One of `in_progress`, `completed`, or `incomplete`." + } + ] + } + } + }, + "LogProb": { + "type": "object", + "required": [ + "bytes", + "logprob", + "token", + "top_logprobs" + ], + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + }, + "logprob": { + "type": "number", + "format": "double" + }, + "token": { + "type": "string" + }, + "top_logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TopLogProb" + } + } + } + }, + "MCPApprovalRequest": { + "type": "object", + "required": [ + "arguments", + "id", + "name", + "server_label" + ], + "properties": { + "arguments": { + "type": "string", + "description": "JSON string of arguments for the tool." + }, + "id": { + "type": "string", + "description": "The unique ID of the approval request." + }, + "name": { + "type": "string", + "description": "The name of the tool to run." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server making the request." + } + } + }, + "MCPApprovalResponse": { + "type": "object", + "description": "An MCP approval response that you're providing back to the model.", + "required": [ + "approval_request_id", + "approve" + ], + "properties": { + "approval_request_id": { + "type": "string", + "description": "The ID of the approval request being answered." + }, + "approve": { + "type": "boolean", + "description": "Whether the request was approved." + }, + "id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the approval response" + }, + "reason": { + "type": [ + "string", + "null" + ], + "description": "Optional reason for the decision." + } + } + }, + "MCPListTools": { + "type": "object", + "required": [ + "id", + "server_label", + "tools" + ], + "properties": { + "error": { + "type": [ + "string", + "null" + ], + "description": "Error message if listing failed." + }, + "id": { + "type": "string", + "description": "The unique ID of the list." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MCPListToolsTool" + }, + "description": "The tools available on the server." + } + } + }, + "MCPListToolsTool": { + "type": "object", + "required": [ + "input_schema", + "name" + ], + "properties": { + "annotations": { + "description": "Additional annotations about the tool." + }, + "description": { + "type": [ + "string", + "null" + ], + "description": "The description of the tool." + }, + "input_schema": { + "description": "The JSON schema describing the tool's input." + }, + "name": { + "type": "string", + "description": "The name of the tool." + } + } + }, + "MCPTool": { + "type": "object", + "required": [ + "server_label" + ], + "properties": { + "allowed_tools": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/MCPToolAllowedTools", + "description": "List of allowed tool names or a filter object." + } + ] + }, + "authorization": { + "type": [ + "string", + "null" + ], + "description": "An OAuth access token that can be used with a remote MCP server, either with a custom MCP\nserver URL or a service connector. Your application must handle the OAuth authorization\nflow and provide the token here." + }, + "connector_id": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/McpToolConnectorId", + "description": "Identifier for service connectors, like those available in ChatGPT. One of `server_url` or\n`connector_id` must be provided. Learn more about service connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).\n\nCurrently supported `connector_id` values are:\n- Dropbox: `connector_dropbox`\n- Gmail: `connector_gmail`\n- Google Calendar: `connector_googlecalendar`\n- Google Drive: `connector_googledrive`\n- Microsoft Teams: `connector_microsoftteams`\n- Outlook Calendar: `connector_outlookcalendar`\n- Outlook Email: `connector_outlookemail`\n- SharePoint: `connector_sharepoint`" + } + ] + }, + "headers": { + "description": "Optional HTTP headers to send to the MCP server. Use for authentication or other purposes." + }, + "require_approval": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/MCPToolRequireApproval", + "description": "Specify which of the MCP server's tools require approval." + } + ] + }, + "server_description": { + "type": [ + "string", + "null" + ], + "description": "Optional description of the MCP server, used to provide more context." + }, + "server_label": { + "type": "string", + "description": "A label for this MCP server, used to identify it in tool calls." + }, + "server_url": { + "type": [ + "string", + "null" + ], + "description": "The URL for the MCP server. One of `server_url` or `connector_id` must be provided." + } + } + }, + "MCPToolAllowedTools": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + }, + "description": "A string array of allowed tool names" + }, + { + "$ref": "#/components/schemas/MCPToolFilter", + "description": "A filter object to specify which tools are allowed." + } + ] + }, + "MCPToolApprovalFilter": { + "type": "object", + "properties": { + "always": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/MCPToolFilter", + "description": "A list of tools that always require approval." + } + ] + }, + "never": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/MCPToolFilter", + "description": "A list of tools that never require approval." + } + ] + } + } + }, + "MCPToolApprovalSetting": { + "type": "string", + "enum": [ + "always", + "never" + ] + }, + "MCPToolCall": { + "type": "object", + "description": "Output of an MCP server tool invocation.", + "required": [ + "arguments", + "id", + "name", + "server_label" + ], + "properties": { + "approval_request_id": { + "type": [ + "string", + "null" + ], + "description": "Unique identifier for the MCP tool call approval request. Include this value\nin a subsequent `mcp_approval_response` input to approve or reject the corresponding\ntool call." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments passed to the tool." + }, + "error": { + "type": [ + "string", + "null" + ], + "description": "Error message from the call, if any." + }, + "id": { + "type": "string", + "description": "The unique ID of the tool call." + }, + "name": { + "type": "string", + "description": "The name of the tool that was run." + }, + "output": { + "type": [ + "string", + "null" + ], + "description": "The output from the tool call." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server running the tool." + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/MCPToolCallStatus", + "description": "The status of the tool call. One of `in_progress`, `completed`, `incomplete`,\n`calling`, or `failed`." + } + ] + } + } + }, + "MCPToolCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete", + "calling", + "failed" + ] + }, + "MCPToolFilter": { + "type": "object", + "properties": { + "read_only": { + "type": [ + "boolean", + "null" + ], + "description": "Indicates whether or not a tool modifies data or is read-only.\nIf an MCP server is annotated with [readOnlyHint](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\nit will match this filter." + }, + "tool_names": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "description": "List of allowed tool names." + } + } + }, + "MCPToolRequireApproval": { + "oneOf": [ + { + "$ref": "#/components/schemas/MCPToolApprovalFilter", + "description": "Specify which of the MCP server's tools require approval. Can be\n`always`, `never`, or a filter object associated with tools\nthat require approval." + }, + { + "$ref": "#/components/schemas/MCPToolApprovalSetting", + "description": "Specify a single approval policy for all tools. One of `always` or\n`never`. When set to `always`, all tools will require approval. When\nset to `never`, all tools will not require approval." + } + ], + "description": "Approval policy or filter for MCP tools." + }, + "Match": { + "type": "object", + "required": [ + "matches", + "_score", + "dataset" + ], + "properties": { + "_score": { + "type": "number", + "format": "double", + "description": "The similarity of the match to the query" + }, + "data": { + "type": "object", + "description": "Addditional data from the `dataset` requested by the user.", + "additionalProperties": {}, + "propertyNames": { + "type": "string" + } + }, + "dataset": { + "type": "string", + "description": "The name of the dataset where the match was found" + }, + "matches": { + "type": "object", + "description": "The matches for this result", + "additionalProperties": { + "type": "array", + "items": {} + }, + "propertyNames": { + "type": "string" + } + }, + "metadata": { + "type": "object", + "additionalProperties": {}, + "propertyNames": { + "type": "string" + } + }, + "primary_key": { + "type": "object", + "description": "Primary key(s) identifying the matched item in the dataset", + "additionalProperties": {}, + "propertyNames": { + "type": "string" + } + } + } + }, + "McpToolConnectorId": { + "type": "string", + "enum": [ + "connector_dropbox", + "connector_gmail", + "connector_googlecalendar", + "connector_googledrive", + "connector_microsoftteams", + "connector_outlookcalendar", + "connector_outlookemail", + "connector_sharepoint" + ] + }, + "MessageItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/OutputMessage", + "description": "An output message from the model (role: assistant, has required id & status).\nThis must come first as it has the most specific structure (required id and status fields)." + }, + { + "$ref": "#/components/schemas/InputMessage", + "description": "A structured input message (role: user/system/developer, content is `Vec`).\nHas structured content list and optional id/status fields.\n\nA message input to the model with a role indicating instruction following hierarchy.\nInstructions given with the `developer` or `system` role take precedence over instructions\ngiven with the `user` role." + } + ], + "description": "A message item used within the `Item` enum.\n\nBoth InputMessage and OutputMessage have `type: \"message\"`, so we use an untagged\nenum to distinguish them based on their structure:\n- OutputMessage: role=assistant, required id & status fields\n- InputMessage: role=user/system/developer, content is `Vec`, optional id/status\n\nNote: EasyInputMessage is NOT included here - it's a separate variant in `InputItem`,\nnot part of the structured `Item` enum." + }, + "MessageResponse": { + "type": "object", + "required": [ + "message" + ], + "properties": { + "message": { + "type": "string", + "description": "The message describing the result of the request" + } + } + }, + "MessageType": { + "type": "string", + "enum": [ + "message" + ] + }, + "Metadata": { + "description": "Set of 16 key-value pairs that can be attached to an object.\nThis can be useful for storing additional information about the\nobject in a structured format, and querying for objects via API\nor the dashboard. Keys are strings with a maximum length of 64\ncharacters. Values are strings with a maximum length of 512\ncharacters." + }, + "ModelInfo": { + "type": "object", + "description": "Model information returned in the `/v1/models` response (OpenAI-compatible format).", + "required": [ + "id", + "object", + "owned_by" + ], + "properties": { + "datasets": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "description": "The datasets associated with this model, if any" + }, + "error": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ComponentError", + "description": "An optional error type/code for the model status.\nOnly populated when `status=true` and the model status is `Error`.\nExample:\n`{ \"category\": \"model\", \"type\": \"auth\", \"code\": \"model.auth\" }`." + } + ] + }, + "error_message": { + "type": [ + "string", + "null" + ], + "description": "An optional error message describing why the model entered an error state.\nOnly populated when `status=true`, the model status is `Error`, and an error message was recorded.\nThis value is intended for user-visible display." + }, + "id": { + "type": "string", + "description": "The name/identifier of the model" + }, + "metadata": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ModelMetadata", + "description": "Optional metadata fields, included when requested via query parameters" + } + ] + }, + "object": { + "type": "string", + "description": "The type of the object (always `model`)" + }, + "owned_by": { + "type": "string", + "description": "The source from which the model was loaded (e.g., `openai`, `spiceai`)" + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/String", + "description": "The status of the model (e.g., `Ready`, `Initializing`, `Error`)" + } + ] + } + } + }, + "ModelListResponse": { + "type": "object", + "description": "Response wrapper for the `/v1/models` endpoint (OpenAI-compatible format).", + "required": [ + "object", + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ModelInfo" + }, + "description": "The list of models" + }, + "object": { + "type": "string", + "description": "The type of the response (always `list`)" + } + } + }, + "ModelMetadata": { + "type": "object", + "description": "Model metadata fields that can be optionally requested.", + "required": [ + "supports_responses_api" + ], + "properties": { + "supports_responses_api": { + "type": "boolean", + "description": "Whether this model supports the Responses API" + } + } + }, + "Move": { + "type": "object", + "description": "A mouse move action.", + "required": [ + "x", + "y" + ], + "properties": { + "x": { + "type": "integer", + "format": "int32", + "description": "The x-coordinate to move to." + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The y-coordinate to move to." + } + } + }, + "Namespace": { + "type": "object", + "required": [ + "parts" + ], + "properties": { + "parts": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NamespacesResponse": { + "type": "object", + "required": [ + "namespaces" + ], + "properties": { + "namespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Namespace" + } + } + } + }, + "OutputItem": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/OutputMessage", + "description": "An output message from the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "message" + ] + } + } + } + ], + "description": "An output message from the model." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FileSearchToolCall", + "description": "The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search)\nfor more information." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search_call" + ] + } + } + } + ], + "description": "The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search)\nfor more information." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionToolCall", + "description": "A tool call to run a function. See the\n[function calling guide](https://platform.openai.com/docs/guides/function-calling)\nfor more information." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function_call" + ] + } + } + } + ], + "description": "A tool call to run a function. See the\n[function calling guide](https://platform.openai.com/docs/guides/function-calling)\nfor more information." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchToolCall", + "description": "The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search)\nfor more information." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search_call" + ] + } + } + } + ], + "description": "The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search)\nfor more information." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ComputerToolCall", + "description": "A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use)\nfor more information." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call" + ] + } + } + } + ], + "description": "A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use)\nfor more information." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ReasoningItem", + "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API for\nsubsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "reasoning" + ] + } + } + } + ], + "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API for\nsubsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CompactionBody", + "description": "A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "compaction" + ] + } + } + } + ], + "description": "A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ImageGenToolCall", + "description": "An image generation request made by the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_generation_call" + ] + } + } + } + ], + "description": "An image generation request made by the model." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CodeInterpreterToolCall", + "description": "A tool call to run code." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter_call" + ] + } + } + } + ], + "description": "A tool call to run code." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/LocalShellToolCall", + "description": "A tool call to run a command on the local shell." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell_call" + ] + } + } + } + ], + "description": "A tool call to run a command on the local shell." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionShellCall", + "description": "A tool call that executes one or more shell commands in a managed environment." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell_call" + ] + } + } + } + ], + "description": "A tool call that executes one or more shell commands in a managed environment." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionShellCallOutput", + "description": "The output of a shell tool call." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell_call_output" + ] + } + } + } + ], + "description": "The output of a shell tool call." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ApplyPatchToolCall", + "description": "A tool call that applies file diffs by creating, deleting, or updating files." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call" + ] + } + } + } + ], + "description": "A tool call that applies file diffs by creating, deleting, or updating files." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ApplyPatchToolCallOutput", + "description": "The output emitted by an apply patch tool call." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call_output" + ] + } + } + } + ], + "description": "The output emitted by an apply patch tool call." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/MCPToolCall", + "description": "An invocation of a tool on an MCP server." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_call" + ] + } + } + } + ], + "description": "An invocation of a tool on an MCP server." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/MCPListTools", + "description": "A list of tools available on an MCP server." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_list_tools" + ] + } + } + } + ], + "description": "A list of tools available on an MCP server." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/MCPApprovalRequest", + "description": "A request for human approval of a tool invocation." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_approval_request" + ] + } + } + } + ], + "description": "A request for human approval of a tool invocation." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CustomToolCall", + "description": "A call to a custom tool created by the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_tool_call" + ] + } + } + } + ], + "description": "A call to a custom tool created by the model." + } + ], + "description": "Output item" + }, + "OutputMessage": { + "type": "object", + "description": "A message generated by the model.", + "required": [ + "content", + "id", + "role", + "status" + ], + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OutputMessageContent" + }, + "description": "The content of the output message." + }, + "id": { + "type": "string", + "description": "The unique ID of the output message." + }, + "role": { + "$ref": "#/components/schemas/AssistantRole", + "description": "The role of the output message. Always `assistant`." + }, + "status": { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the message input. One of `in_progress`, `completed`, or\n`incomplete`. Populated when input items are returned via API." + } + } + }, + "OutputMessageContent": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/OutputTextContent", + "description": "A text output from the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "output_text" + ] + } + } + } + ], + "description": "A text output from the model." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/RefusalContent", + "description": "A refusal from the model." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "refusal" + ] + } + } + } + ], + "description": "A refusal from the model." + } + ] + }, + "OutputStatus": { + "type": "string", + "description": "Status of input/output items.", + "enum": [ + "in_progress", + "completed", + "incomplete" + ] + }, + "OutputTextContent": { + "type": "object", + "description": "A simple text output from the model.", + "required": [ + "annotations", + "text" + ], + "properties": { + "annotations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Annotation" + }, + "description": "The annotations of the text output." + }, + "logprobs": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/LogProb" + } + }, + "text": { + "type": "string", + "description": "The text output from the model." + } + } + }, + "OutputTokenDetails": { + "type": "object", + "required": [ + "reasoning_tokens" + ], + "properties": { + "reasoning_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of reasoning tokens.", + "minimum": 0 + } + } + }, + "PredictRequest": { + "type": "object", + "required": [ + "model_name" + ], + "properties": { + "model_name": { + "type": "string" + } + } + }, + "PredictResponse": { + "type": "object", + "required": [ + "status", + "model_name", + "duration_ms" + ], + "properties": { + "duration_ms": { + "type": "integer", + "description": "The time taken to complete the prediction (in milliseconds)", + "minimum": 0 + }, + "error_message": { + "type": [ + "string", + "null" + ], + "description": "The error message if the request failed" + }, + "model_name": { + "type": "string", + "description": "The name of the model used for the prediction" + }, + "model_version": { + "type": [ + "string", + "null" + ], + "description": "The version of the model used" + }, + "prediction": { + "type": [ + "array", + "null" + ], + "items": { + "type": "number", + "format": "float" + }, + "description": "The prediction result, typically an array of floats" + }, + "status": { + "$ref": "#/components/schemas/PredictStatus", + "description": "The status of the prediction" + } + } + }, + "PredictStatus": { + "type": "string", + "enum": [ + "Success", + "BadRequest", + "InternalError" + ] + }, + "PredictionContent": { + "oneOf": [ + { + "type": "object", + "description": "The type of the predicted content you want to provide. This type is\ncurrently always `content`.", + "required": [ + "content", + "type" + ], + "properties": { + "content": { + "$ref": "#/components/schemas/PredictionContentContent", + "description": "The type of the predicted content you want to provide. This type is\ncurrently always `content`." + }, + "type": { + "type": "string", + "enum": [ + "content" + ] + } + } + } + ], + "description": "Static predicted output content, such as the content of a text file that is being regenerated." + }, + "PredictionContentContent": { + "oneOf": [ + { + "type": "string", + "description": "The content used for a Predicted Output. This is often the text of a file you are regenerating with minor changes." + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" + }, + "description": "An array of content parts with a defined type. Supported options differ based on the [model](https://platform.openai.com/docs/models) being used to generate the response. Can contain text inputs." + } + ], + "description": "The content that should be matched when generating a model response. If generated tokens would match this content, the entire model response can be returned much more quickly." + }, + "Prompt": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the prompt template to use." + }, + "variables": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ResponsePromptVariables", + "description": "Optional map of values to substitute in for variables in your\nprompt. The substitution values can either be strings, or other\nResponse input types like images or files." + } + ] + }, + "version": { + "type": [ + "string", + "null" + ], + "description": "Optional version of the prompt template." + } + } + }, + "PromptCacheRetention": { + "type": "string", + "description": "The retention policy for the prompt cache.", + "enum": [ + "in-memory", + "24h" + ] + }, + "PromptTokensDetails": { + "type": "object", + "description": "Breakdown of tokens used in a completion.", + "properties": { + "audio_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "Audio input tokens present in the prompt.", + "minimum": 0 + }, + "cached_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "Cached tokens present in the prompt.", + "minimum": 0 + } + } + }, + "RankVersionType": { + "type": "string", + "enum": [ + "auto", + "default-2024-11-15" + ] + }, + "RankingOptions": { + "type": "object", + "description": "Options for search result ranking.", + "required": [ + "ranker" + ], + "properties": { + "hybrid_search": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/HybridSearch", + "description": "Weights that control how reciprocal rank fusion balances semantic embedding matches versus\nsparse keyword matches when hybrid search is enabled." + } + ] + }, + "ranker": { + "$ref": "#/components/schemas/RankVersionType", + "description": "The ranker to use for the file search." + }, + "score_threshold": { + "type": [ + "number", + "null" + ], + "format": "float", + "description": "The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will\nattempt to return only the most relevant results, but may return fewer results." + } + } + }, + "Reasoning": { + "type": "object", + "description": "o-series reasoning settings.", + "properties": { + "effort": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ReasoningEffort", + "description": "Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `minimal`, `low`, `medium`, and `high`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\n\nNote: The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort." + } + ] + }, + "summary": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ReasoningSummary", + "description": "A summary of the reasoning performed by the model. This can be\nuseful for debugging and understanding the model's reasoning process.\nOne of `auto`, `concise`, or `detailed`.\n\n`concise` is supported for `computer-use-preview` models and all reasoning models after\n`gpt-5`." + } + ] + } + } + }, + "ReasoningEffort": { + "type": "string", + "enum": [ + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" + ] + }, + "ReasoningItem": { + "type": "object", + "description": "A reasoning item representing the model's chain of thought, including summary paragraphs.", + "required": [ + "id", + "summary" + ], + "properties": { + "content": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/ReasoningTextContent" + }, + "description": "Reasoning text content." + }, + "encrypted_content": { + "type": [ + "string", + "null" + ], + "description": "The encrypted content of the reasoning item - populated when a response is generated with\n`reasoning.encrypted_content` in the `include` parameter." + }, + "id": { + "type": "string", + "description": "Unique identifier of the reasoning content." + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/OutputStatus", + "description": "The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API." + } + ] + }, + "summary": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SummaryPart" + }, + "description": "Reasoning summary content." + } + } + }, + "ReasoningSummary": { + "type": "string", + "enum": [ + "auto", + "concise", + "detailed" + ] + }, + "ReasoningTextContent": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string", + "description": "The reasoning text from the model." + } + } + }, + "RefreshMode": { + "type": "string", + "enum": [ + "disabled", + "full", + "append", + "changes", + "caching" + ] + }, + "RefreshOverrides": { + "type": "object", + "description": "[`RefreshOverrides`] specifies the configurable options for a individual run of a refresh task.", + "properties": { + "refresh_jitter_max": { + "type": [ + "string", + "null" + ], + "description": "The maximum amount of jitter to add to the refresh. Defaults to the `refresh_jitter_max` specified in the spicepod, or 10% of the `refresh_check_interval`.", + "example": "10s" + }, + "refresh_mode": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/RefreshMode", + "description": "The refresh mode to use for this refresh. Defaults to the `refresh_mode` specified in the spicepod, or `full`." + } + ] + }, + "refresh_sql": { + "type": [ + "string", + "null" + ], + "description": "The SQL statement used for this refresh. Defaults to the `refresh_sql` specified in the spicepod, if any." + } + } + }, + "RefusalContent": { + "type": "object", + "description": "A refusal explanation from the model.", + "required": [ + "refusal" + ], + "properties": { + "refusal": { + "type": "string", + "description": "The refusal explanation from the model." + } + } + }, + "Request": { + "type": "object", + "required": [ + "query" + ], + "properties": { + "datasets": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "description": "Names of datasets to sample from when constructing model context; this is a sampling hint and does not restrict which tables queries can target. If omitted, all datasets are used." + }, + "model": { + "type": "string", + "description": "The name of the model to use for SQL generation. Default: \"nql\"" + }, + "query": { + "type": "string", + "description": "The natural language query to be converted into SQL" + }, + "sample_data_enabled": { + "type": "boolean", + "description": "Whether sample data is included in the context for SQL generation. Default: true" + }, + "stream": { + "type": "boolean", + "description": "If true, streams the response instead of waiting for completion" + } + } + }, + "Response": { + "type": "object", + "description": "The complete response returned by the Responses API.", + "required": [ + "created_at", + "id", + "model", + "object", + "output", + "status" + ], + "properties": { + "background": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to run the model response in the background.\n[Learn more](https://platform.openai.com/docs/guides/background)." + }, + "billing": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Billing", + "description": "Billing information for the response." + } + ] + }, + "conversation": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Conversation", + "description": "The conversation that this response belongs to. Input items and output\nitems from this response are automatically added to this conversation." + } + ] + }, + "created_at": { + "type": "integer", + "format": "int64", + "description": "Unix timestamp (in seconds) when this Response was created.", + "minimum": 0 + }, + "error": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ErrorObject", + "description": "An error object returned when the model fails to generate a Response." + } + ] + }, + "id": { + "type": "string", + "description": "Unique identifier for this response." + }, + "incomplete_details": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/IncompleteDetails", + "description": "Details about why the response is incomplete, if any." + } + ] + }, + "instructions": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Instructions", + "description": "A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous response\nwill not be carried over to the next response. This makes it simple to swap out\nsystem (or developer) messages in new responses." + } + ] + }, + "max_output_tokens": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "An upper bound for the number of tokens that can be generated for a response,\nincluding visible output tokens and\n[reasoning tokens](https://platform.openai.com/docs/guides/reasoning).", + "minimum": 0 + }, + "metadata": { + "type": [ + "object", + "null" + ], + "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + } + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like gpt-4o or o3. OpenAI offers a\nwide range of models with different capabilities, performance characteristics,\nand price points. Refer to the [model guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "object": { + "type": "string", + "description": "The object type of this resource - always set to `response`." + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OutputItem" + }, + "description": "An array of content items generated by the model.\n\n- The length and order of items in the output array is dependent on the model's response.\n- Rather than accessing the first item in the output array and assuming it's an assistant\n message with the content generated by the model, you might consider using\n the `output_text` property where supported in SDKs." + }, + "parallel_tool_calls": { + "type": [ + "boolean", + "null" + ], + "description": "SDK-only convenience property that contains the aggregated text output from all\n`output_text` items in the `output` array, if any are present.\nSupported in the Python and JavaScript SDKs.\nWhether to allow the model to run tool calls in parallel." + }, + "previous_response_id": { + "type": [ + "string", + "null" + ], + "description": "The unique ID of the previous response to the model. Use this to create multi-turn conversations.\nLearn more about [conversation state](https://platform.openai.com/docs/guides/conversation-state).\nCannot be used in conjunction with `conversation`." + }, + "prompt": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Prompt", + "description": "Reference to a prompt template and its variables.\n[Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts)." + } + ] + }, + "prompt_cache_key": { + "type": [ + "string", + "null" + ], + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces\nthe `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/PromptCacheRetention", + "description": "The retention policy for the prompt cache. Set to `24h` to enable extended prompt caching,\nwhich keeps cached prefixes active for longer, up to a maximum of 24 hours. [Learn\nmore](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention)." + } + ] + }, + "reasoning": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Reasoning", + "description": "**gpt-5 and o-series models only**\nConfiguration options for [reasoning models](https://platform.openai.com/docs/guides/reasoning)." + } + ] + }, + "safety_identifier": { + "type": [ + "string", + "null" + ], + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's\nusage policies.\n\nThe IDs should be a string that uniquely identifies each user. We recommend hashing their username\nor email address, in order to avoid sending us any identifying information. [Learn\nmore](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "service_tier": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ServiceTier", + "description": "Specifies the processing type used for serving the request.\n- If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'.\n- If set to 'default', then the request will be processed with the standard pricing and performance for the selected model.\n- If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or '[priority](https://openai.com/api-priority-processing/)', then the request will be processed with the corresponding service tier.\n- When not set, the default behavior is 'auto'.\n\nWhen the `service_tier` parameter is set, the response body will include the `service_tier` value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter." + } + ] + }, + "status": { + "$ref": "#/components/schemas/Status", + "description": "The status of the response generation.\nOne of `completed`, `failed`, `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "temperature": { + "type": [ + "number", + "null" + ], + "format": "float", + "description": "What sampling temperature was used, between 0 and 2. Higher values like 0.8 make\noutputs more random, lower values like 0.2 make output more focused and deterministic.\n\nWe generally recommend altering this or `top_p` but not both." + }, + "text": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ResponseTextParam", + "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)" + } + ] + }, + "tool_choice": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ToolChoiceParam", + "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." + } + ] + }, + "tools": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/components/schemas/Tool" + }, + "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nWe support the following categories of tools:\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like [web search](https://platform.openai.com/docs/guides/tools-web-search)\n or [file search](https://platform.openai.com/docs/guides/tools-file-search). Learn more about\n [built-in tools](https://platform.openai.com/docs/guides/tools).\n- **MCP Tools**: Integrations with third-party systems via custom MCP servers\n or predefined connectors such as Google Drive and SharePoint. Learn more about\n [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code with strongly typed arguments\n and outputs. Learn more about\n [function calling](https://platform.openai.com/docs/guides/function-calling). You can also use\n custom tools to call your own code." + }, + "top_logprobs": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each\ntoken position, each with an associated log probability.", + "minimum": 0 + }, + "top_p": { + "type": [ + "number", + "null" + ], + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both." + }, + "truncation": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Truncation", + "description": "The truncation strategy to use for the model response.\n - `auto`: If the input to this Response exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping items from the beginning of the conversation.\n - `disabled` (default): If the input size will exceed the context window\n size for a model, the request will fail with a 400 error." + } + ] + }, + "usage": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/ResponseUsage", + "description": "Represents token usage details including input tokens, output tokens,\na breakdown of output tokens, and the total tokens used." + } + ] + } + } + }, + "ResponseFormat": { + "oneOf": [ + { + "type": "object", + "description": "The type of response format being defined: `text`", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ] + } + } + }, + { + "type": "object", + "description": "The type of response format being defined: `json_object`", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "json_object" + ] + } + } + }, + { + "type": "object", + "description": "The type of response format being defined: `json_schema`", + "required": [ + "json_schema", + "type" + ], + "properties": { + "json_schema": { + "$ref": "#/components/schemas/ResponseFormatJsonSchema" + }, + "type": { + "type": "string", + "enum": [ + "json_schema" + ] + } + } + } + ] + }, + "ResponseFormatJsonSchema": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ], + "description": "A description of what the response format is for, used by the model to determine how to respond in the format." + }, + "name": { + "type": "string", + "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + }, + "schema": { + "description": "The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/)." + }, + "strict": { + "type": [ + "boolean", + "null" + ], + "description": "Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](https://platform.openai.com/docs/guides/structured-outputs)." + } + } + }, + "ResponseModalities": { + "type": "string", + "description": "Output types that you would like the model to generate for this request.\n\nMost models are capable of generating text, which is the default: `[\"text\"]`\n\nThe `gpt-4o-audio-preview` model can also be used to [generate\naudio](https://platform.openai.com/docs/guides/audio). To request that this model generate both text and audio responses, you can use: `[\"text\", \"audio\"]`", + "enum": [ + "text", + "audio" + ] + }, + "ResponsePromptVariables": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/InputContent" + }, + {} + ] + }, + "ResponseStreamOptions": { + "type": "object", + "properties": { + "include_obfuscation": { + "type": [ + "boolean", + "null" + ], + "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds\nrandom characters to an `obfuscation` field on streaming delta events to\nnormalize payload sizes as a mitigation to certain side-channel attacks.\nThese obfuscation fields are included by default, but add a small amount\nof overhead to the data stream. You can set `include_obfuscation` to\nfalse to optimize for bandwidth if you trust the network links between\nyour application and the OpenAI API." + } + } + }, + "ResponseTextParam": { + "type": "object", + "description": "Configuration for text response format.", + "required": [ + "format" + ], + "properties": { + "format": { + "$ref": "#/components/schemas/TextResponseFormatConfiguration", + "description": "An object specifying the format that the model must output.\n\nConfiguring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\nwhich ensures the model will match your supplied JSON schema. Learn more in the\n[Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nThe default format is `{ \"type\": \"text\" }` with no additional options.\n\n**Not recommended for gpt-4o and newer models:**\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it." + }, + "verbosity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Verbosity", + "description": "Constrains the verbosity of the model's response. Lower values will result in\nmore concise responses, while higher values will result in more verbose responses.\n\nCurrently supported values are `low`, `medium`, and `high`." + } + ] + } + } + }, + "ResponseUsage": { + "type": "object", + "description": "Usage statistics for a response.", + "required": [ + "input_tokens", + "input_tokens_details", + "output_tokens", + "output_tokens_details", + "total_tokens" + ], + "properties": { + "input_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of input tokens.", + "minimum": 0 + }, + "input_tokens_details": { + "$ref": "#/components/schemas/InputTokenDetails", + "description": "A detailed breakdown of the input tokens." + }, + "output_tokens": { + "type": "integer", + "format": "int32", + "description": "The number of output tokens.", + "minimum": 0 + }, + "output_tokens_details": { + "$ref": "#/components/schemas/OutputTokenDetails", + "description": "A detailed breakdown of the output tokens." + }, + "total_tokens": { + "type": "integer", + "format": "int32", + "description": "The total number of tokens used.", + "minimum": 0 + } + } + }, + "Role": { + "type": "string", + "description": "Role of messages in the API.", + "enum": [ + "user", + "assistant", + "system", + "developer" + ] + }, + "Scroll": { + "type": "object", + "description": "A scroll action.", + "required": [ + "scroll_x", + "scroll_y", + "x", + "y" + ], + "properties": { + "scroll_x": { + "type": "integer", + "format": "int32", + "description": "The horizontal scroll distance." + }, + "scroll_y": { + "type": "integer", + "format": "int32", + "description": "The vertical scroll distance." + }, + "x": { + "type": "integer", + "format": "int32", + "description": "The x-coordinate where the scroll occurred." + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The y-coordinate where the scroll occurred." + } + } + }, + "SearchRequestBaseJson": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "additional_columns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional columns to return from the dataset. If the column is a primary key, it will be\n returned within the response under `.primary_key`, not `.data`." + }, + "datasets": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "description": "The datasets to search for similarity. If None, search across all datasets. For available datasets, use the `list_datasets` tool and ensure `can_search_documents==true`." + }, + "limit": { + "type": [ + "integer", + "null" + ], + "description": "Number of documents to return for each dataset", + "minimum": 0 + }, + "text": { + "type": "string", + "description": "The text to search documents for similarity" + }, + "where": { + "type": [ + "string", + "null" + ], + "description": "An SQL filter predicate to apply. Format: 'WHERE `where_cond`'." + } + } + }, + "SearchRequestHTTPJson": { + "allOf": [ + { + "$ref": "#/components/schemas/SearchRequestBaseJson" + }, + { + "type": "object", + "properties": { + "keywords": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + } + ], + "description": "HTTP request schema is separate from AI requests, so that keywords can be supplied as an optional field for HTTP calls.\n`schemars` doesn't allow setting `#[serde(default)]` as well as `#[schemars(required)]` - the field does not become required.\nWhen the field is not required, the model ignores it." + }, + "SearchResponse": { + "type": "object", + "required": [ + "results", + "duration_ms" + ], + "properties": { + "duration_ms": { + "type": "integer", + "description": "Total time taken to execute the search, in milliseconds", + "minimum": 0 + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Match" + }, + "description": "List of matches that were found in the datasets" + } + } + }, + "ServiceTier": { + "type": "string", + "enum": [ + "auto", + "default", + "flex", + "scale", + "priority" + ] + }, + "SpicepodSummary": { + "type": "object", + "required": [ + "name", + "version" + ], + "properties": { + "datasets_count": { + "type": "integer", + "description": "The number of datasets in this spicepod", + "minimum": 0 + }, + "dependencies_count": { + "type": "integer", + "description": "The number of dependencies in this spicepod", + "minimum": 0 + }, + "models_count": { + "type": "integer", + "description": "The number of models in this spicepod", + "minimum": 0 + }, + "name": { + "type": "string", + "description": "The name of the spicepod" + }, + "version": { + "type": "string", + "description": "The version of the spicepod" + } + } + }, + "Status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ] + }, + "StopConfiguration": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "String": { + "oneOf": [ + { + "type": "string", + "description": "The component is initializing and not yet ready", + "enum": [ + "Initializing" + ] + }, + { + "type": "string", + "description": "The component is ready to accept connections", + "enum": [ + "Ready" + ] + }, + { + "type": "string", + "description": "The component is disabled and not running", + "enum": [ + "Disabled" + ] + }, + { + "type": "object", + "description": "An error occurred in the component, with an optional error message", + "required": [ + "Error" + ], + "properties": { + "Error": { + "type": [ + "string", + "null" + ], + "description": "An error occurred in the component, with an optional error message" + } + } + }, + { + "type": "string", + "description": "The component is in the process of refreshing its state", + "enum": [ + "Refreshing" + ] + }, + { + "type": "string", + "description": "The component is in the process of shutting down", + "enum": [ + "ShuttingDown" + ] + } + ], + "description": "Represents the status of a component (e.g. dataset, model, etc).\n\nThe `Error` variant optionally carries a human-readable error message describing\nwhat caused the component to enter the error state. Use [`ComponentStatus::error`]\nfor an error without a message, or [`ComponentStatus::error_with_message`] to\ninclude one.", + "example": "Ready" + }, + "Summary": { + "type": "object", + "description": "A single summary text fragment from reasoning.", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string", + "description": "A summary of the reasoning output from the model so far." + } + } + }, + "SummaryPart": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/Summary" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "summary_text" + ] + } + } + } + ] + } + ] + }, + "TableFormatVersion": { + "type": "string", + "enum": [ + "V2" + ] + }, + "TableIdentifier": { + "type": "object", + "required": [ + "namespace", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "$ref": "#/components/schemas/Namespace" + } + } + }, + "TableMetadata": { + "type": "object", + "required": [ + "format-version", + "table-uuid", + "location", + "schemas", + "last-updated-ms", + "last-column-id", + "last-sequence-number", + "current-schema-id", + "partition-specs", + "default-spec-id", + "last-partition-id", + "sort-orders", + "default-sort-order-id" + ], + "properties": { + "current-schema-id": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "default-sort-order-id": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "default-spec-id": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "format-version": { + "$ref": "#/components/schemas/TableFormatVersion" + }, + "last-column-id": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "last-partition-id": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "last-sequence-number": { + "type": "integer", + "format": "int64", + "minimum": 0 + }, + "last-updated-ms": { + "type": "integer", + "format": "int64" + }, + "location": { + "type": "string" + }, + "partition-specs": { + "type": "object" + }, + "schemas": { + "type": "object", + "description": "Iceberg schemas, see ``." + }, + "sort-orders": { + "type": "object" + }, + "table-uuid": { + "type": "string", + "example": "2b9da507-2c07-4bb3-9f0b-8df66a5e9e53" + } + } + }, + "TextResponseFormatConfiguration": { + "oneOf": [ + { + "type": "object", + "description": "Default response format. Used to generate text responses.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ] + } + } + }, + { + "type": "object", + "description": "JSON object response format. An older method of generating JSON responses.\nUsing `json_schema` is recommended for models that support it.\nNote that the model will not generate JSON without a system or user message\ninstructing it to do so.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "json_object" + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ResponseFormatJsonSchema", + "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "json_schema" + ] + } + } + } + ], + "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)." + } + ] + }, + "Tool": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/FunctionTool", + "description": "Defines a function in your own code the model can choose to call. Learn more about [function\ncalling](https://platform.openai.com/docs/guides/tools)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ] + } + } + } + ], + "description": "Defines a function in your own code the model can choose to call. Learn more about [function\ncalling](https://platform.openai.com/docs/guides/tools)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/FileSearchTool", + "description": "A tool that searches for relevant content from uploaded files. Learn more about the [file search\ntool](https://platform.openai.com/docs/guides/tools-file-search)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search" + ] + } + } + } + ], + "description": "A tool that searches for relevant content from uploaded files. Learn more about the [file search\ntool](https://platform.openai.com/docs/guides/tools-file-search)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ComputerUsePreviewTool", + "description": "A tool that controls a virtual computer. Learn more about the [computer\nuse tool](https://platform.openai.com/docs/guides/tools-computer-use)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_use_preview" + ] + } + } + } + ], + "description": "A tool that controls a virtual computer. Learn more about the [computer\nuse tool](https://platform.openai.com/docs/guides/tools-computer-use)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchTool", + "description": "Search the Internet for sources related to the prompt. Learn more about the\n[web search tool](https://platform.openai.com/docs/guides/tools-web-search)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search" + ] + } + } + } + ], + "description": "Search the Internet for sources related to the prompt. Learn more about the\n[web search tool](https://platform.openai.com/docs/guides/tools-web-search)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchTool", + "description": "type: web_search_2025_08_26" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search_2025_08_26" + ] + } + } + } + ], + "description": "type: web_search_2025_08_26" + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/MCPTool", + "description": "Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp" + ] + } + } + } + ], + "description": "Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CodeInterpreterTool", + "description": "A tool that runs Python code to help generate a response to a prompt." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter" + ] + } + } + } + ], + "description": "A tool that runs Python code to help generate a response to a prompt." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/ImageGenTool", + "description": "A tool that generates images using a model like `gpt-image-1`." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_generation" + ] + } + } + } + ], + "description": "A tool that generates images using a model like `gpt-image-1`." + }, + { + "type": "object", + "description": "A tool that allows the model to execute shell commands in a local environment.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell" + ] + } + } + }, + { + "type": "object", + "description": "A tool that allows the model to execute shell commands.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell" + ] + } + } + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/CustomToolParam", + "description": "A custom tool that processes input using a specified format. Learn more about [custom\ntools](https://platform.openai.com/docs/guides/function-calling#custom-tools)" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ] + } + } + } + ], + "description": "A custom tool that processes input using a specified format. Learn more about [custom\ntools](https://platform.openai.com/docs/guides/function-calling#custom-tools)" + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchTool", + "description": " This tool searches the web for relevant results to use in a response. Learn more about the [web search\ntool](https://platform.openai.com/docs/guides/tools-web-search)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search_preview" + ] + } + } + } + ], + "description": " This tool searches the web for relevant results to use in a response. Learn more about the [web search\ntool](https://platform.openai.com/docs/guides/tools-web-search)." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchTool", + "description": "type: web_search_preview_2025_03_11" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search_preview_2025_03_11" + ] + } + } + } + ], + "description": "type: web_search_preview_2025_03_11" + }, + { + "type": "object", + "description": "Allows the assistant to create, delete, or update files using unified diffs.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch" + ] + } } } - } - }, - "ListToolElement": { - "type": "object", - "description": "Summary of a tool available to run, and the schema of its input parameters.", - "required": [ - "name" ], - "properties": { - "description": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - }, - "parameters": {} - } + "description": "Definitions for model-callable tools." }, - "Match": { + "ToolChoiceAllowed": { "type": "object", "required": [ - "matches", - "score", - "dataset" + "mode", + "tools" ], "properties": { - "data": { - "type": "object", - "description": "Addditional data from the `dataset` requested by the user.", - "additionalProperties": {}, - "propertyNames": { - "type": "string" - } - }, - "dataset": { - "type": "string", - "description": "The name of the dataset where the match was found" - }, - "matches": { - "type": "object", - "description": "The matches for this result", - "additionalProperties": { - "$ref": "#/components/schemas/MatchType" - }, - "propertyNames": { - "type": "string" - } - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "propertyNames": { - "type": "string" - } - }, - "primary_key": { - "type": "object", - "description": "Primary key(s) identifying the matched item in the dataset", - "additionalProperties": {}, - "propertyNames": { - "type": "string" - } + "mode": { + "$ref": "#/components/schemas/ToolChoiceAllowedMode", + "description": "Constrains the tools available to the model to a pre-defined set.\n\n`auto` allows the model to pick from among the allowed tools and generate a\nmessage.\n\n`required` requires the model to call one or more of the allowed tools." }, - "score": { - "type": "number", - "format": "double", - "description": "The similarity of the match to the query" + "tools": { + "type": "array", + "items": {}, + "description": "A list of tool definitions that the model should be allowed to call.\n\nFor the Responses API, the list of tool definitions might look like:\n```json\n[\n { \"type\": \"function\", \"name\": \"get_weather\" },\n { \"type\": \"mcp\", \"server_label\": \"deepwiki\" },\n { \"type\": \"image_generation\" }\n]\n```" } } }, - "MatchType": { - "oneOf": [ - {}, - { - "type": "array", - "items": {} - } + "ToolChoiceAllowedMode": { + "type": "string", + "enum": [ + "auto", + "required" ] }, - "MessageResponse": { + "ToolChoiceCustom": { "type": "object", "required": [ - "message" + "name" ], "properties": { - "message": { + "name": { "type": "string", - "description": "The message describing the result of the request" + "description": "The name of the custom tool to call." } } }, - "Metadata": { + "ToolChoiceFunction": { "type": "object", "required": [ - "supports_responses_api" + "name" ], "properties": { - "supports_responses_api": { - "type": "boolean" + "name": { + "type": "string", + "description": "The name of the function to call." } } }, - "Namespace": { + "ToolChoiceMCP": { "type": "object", "required": [ - "parts" + "name", + "server_label" ], "properties": { - "parts": { - "type": "array", - "items": { - "type": "string" - } + "name": { + "type": "string", + "description": "The name of the tool to call on the server." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server to use." } } }, - "NamespacesResponse": { - "type": "object", - "required": [ - "namespaces" - ], - "properties": { - "namespaces": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Namespace" - } - } - } + "ToolChoiceOptions": { + "type": "string", + "enum": [ + "none", + "auto", + "required" + ] }, - "OpenAIModel": { - "type": "object", - "required": [ - "id", - "object", - "owned_by" - ], - "properties": { - "datasets": { - "type": [ - "array", - "null" - ], - "items": { - "type": "string" - }, - "description": "The datasets associated with this model, if any" - }, - "id": { - "type": "string", - "description": "The name of the model" - }, - "metadata": { - "oneOf": [ + "ToolChoiceParam": { + "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ToolChoiceAllowed", + "description": "Constrains the tools available to the model to a pre-defined set." }, { - "$ref": "#/components/schemas/Metadata" + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "allowed_tools" + ] + } + } } - ] - }, - "object": { - "type": "string", - "description": "The type of the model (always `model`)" - }, - "owned_by": { - "type": "string", - "description": "The source from which the model was loaded (e.g., `openai`, `spiceai`)" + ], + "description": "Constrains the tools available to the model to a pre-defined set." }, - "status": { - "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ToolChoiceFunction", + "description": "Use this option to force the model to call a specific function." }, { - "$ref": "#/components/schemas/ComponentStatus", - "description": "The status of the model (e.g., `ready`, `initializing`, `error`)" + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ] + } + } } - ] - } - } - }, - "OpenAIModelResponse": { - "type": "object", - "required": [ - "object", - "data" - ], - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAIModel" - } - }, - "object": { - "type": "string" - } - } - }, - "PredictRequest": { - "type": "object", - "required": [ - "model_name" - ], - "properties": { - "model_name": { - "type": "string" - } - } - }, - "PredictResponse": { - "type": "object", - "required": [ - "status", - "model_name", - "duration_ms" - ], - "properties": { - "duration_ms": { - "type": "integer", - "description": "The time taken to complete the prediction (in milliseconds)", - "minimum": 0 - }, - "error_message": { - "type": [ - "string", - "null" - ], - "description": "The error message if the request failed" - }, - "model_name": { - "type": "string", - "description": "The name of the model used for the prediction" + ], + "description": "Use this option to force the model to call a specific function." }, - "model_version": { - "type": [ - "string", - "null" + { + "allOf": [ + { + "$ref": "#/components/schemas/ToolChoiceMCP", + "description": "Use this option to force the model to call a specific tool on a remote MCP server." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp" + ] + } + } + } ], - "description": "The version of the model used" + "description": "Use this option to force the model to call a specific tool on a remote MCP server." }, - "prediction": { - "type": [ - "array", - "null" + { + "allOf": [ + { + "$ref": "#/components/schemas/ToolChoiceCustom", + "description": "Use this option to force the model to call a custom tool." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ] + } + } + } ], - "items": { - "type": "number", - "format": "float" - }, - "description": "The prediction result, typically an array of floats" + "description": "Use this option to force the model to call a custom tool." }, - "status": { - "$ref": "#/components/schemas/PredictStatus", - "description": "The status of the prediction" - } - } - }, - "PredictStatus": { - "type": "string", - "enum": [ - "Success", - "BadRequest", - "InternalError" - ] - }, - "PredictionContent": { - "oneOf": [ { "type": "object", - "description": "The type of the predicted content you want to provide. This type is\ncurrently always `content`.", + "description": "Forces the model to call the apply_patch tool when executing a tool call.", "required": [ - "content", "type" ], "properties": { - "content": { - "$ref": "#/components/schemas/PredictionContentContent", - "description": "The type of the predicted content you want to provide. This type is\ncurrently always `content`." - }, "type": { "type": "string", "enum": [ - "content" + "apply_patch" ] } } - } - ], - "description": "Static predicted output content, such as the content of a text file that is being regenerated." - }, - "PredictionContentContent": { - "oneOf": [ - { - "type": "string", - "description": "The content used for a Predicted Output. This is often the text of a file you are regenerating with minor changes." }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChatCompletionRequestMessageContentPartText" - }, - "description": "An array of content parts with a defined type. Supported options differ based on the [model](https://platform.openai.com/docs/models) being used to generate the response. Can contain text inputs." - } - ], - "description": "The content that should be matched when generating a model response. If generated tokens would match this content, the entire model response can be returned much more quickly." - }, - "PromptTokensDetails": { - "type": "object", - "description": "Breakdown of tokens used in a completion.", - "properties": { - "audio_tokens": { - "type": [ - "integer", - "null" + "type": "object", + "description": "Forces the model to call the function shell tool when a tool call is required.", + "required": [ + "type" ], - "format": "int32", - "description": "Audio input tokens present in the prompt.", - "minimum": 0 + "properties": { + "type": { + "type": "string", + "enum": [ + "shell" + ] + } + } }, - "cached_tokens": { - "type": [ - "integer", - "null" - ], - "format": "int32", - "description": "Cached tokens present in the prompt.", - "minimum": 0 - } - } - }, - "ReasoningEffort": { - "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] - }, - "RefreshMode": { - "type": "string", - "enum": [ - "disabled", - "full", - "append", - "changes", - "caching" - ] - }, - "RefreshOverrides": { - "type": "object", - "description": "[`RefreshOverrides`] specifies the configurable options for a individual run of a refresh task.", - "properties": { - "refresh_jitter_max": { - "type": [ - "string", - "null" + { + "allOf": [ + { + "$ref": "#/components/schemas/ToolChoiceTypes", + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https://platform.openai.com/docs/guides/tools)." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "hosted" + ] + } + } + } ], - "description": "The maximum amount of jitter to add to the refresh. Defaults to the `refresh_jitter_max` specified in the spicepod, or 10% of the `refresh_check_interval`.", - "example": "10s" + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https://platform.openai.com/docs/guides/tools)." }, - "refresh_mode": { - "oneOf": [ + { + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/ToolChoiceOptions", + "description": "Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools." }, { - "$ref": "#/components/schemas/RefreshMode", - "description": "The refresh mode to use for this refresh. Defaults to the `refresh_mode` specified in the spicepod, or `full`." + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mode" + ] + } + } } - ] - }, - "refresh_sql": { - "type": [ - "string", - "null" ], - "description": "The SQL statement used for this refresh. Defaults to the `refresh_sql` specified in the spicepod, if any." + "description": "Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools." } - } + ] }, - "Request": { - "type": "object", - "required": [ - "query" - ], - "properties": { - "datasets": { - "type": [ - "array", - "null" + "ToolChoiceTypes": { + "oneOf": [ + { + "type": "object", + "required": [ + "type" ], - "items": { - "type": "string" - }, - "description": "Names of datasets to sample from when constructing model context; this is a sampling hint and does not restrict which tables queries can target. If omitted, all datasets are used." - }, - "model": { - "type": "string", - "description": "The name of the model to use for SQL generation. Default: \"nql\"" - }, - "query": { - "type": "string", - "description": "The natural language query to be converted into SQL" + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search" + ] + } + } }, - "sample_data_enabled": { - "type": "boolean", - "description": "Whether sample data is included in the context for SQL generation. Default: true" + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search_preview" + ] + } + } }, - "stream": { - "type": "boolean", - "description": "If true, streams the response instead of waiting for completion" - } - } - }, - "ResponseFormat": { - "oneOf": [ { "type": "object", - "description": "The type of response format being defined: `text`", "required": [ "type" ], @@ -4836,14 +11401,13 @@ "type": { "type": "string", "enum": [ - "text" + "computer_use_preview" ] } } }, { "type": "object", - "description": "The type of response format being defined: `json_object`", "required": [ "type" ], @@ -4851,316 +11415,288 @@ "type": { "type": "string", "enum": [ - "json_object" + "code_interpreter" ] } } }, { "type": "object", - "description": "The type of response format being defined: `json_schema`", "required": [ - "json_schema", "type" ], "properties": { - "json_schema": { - "$ref": "#/components/schemas/ResponseFormatJsonSchema" - }, "type": { "type": "string", "enum": [ - "json_schema" + "image_generation" ] } } } - ] + ], + "description": "The type of hosted tool the model should to use. Learn more about\n[built-in tools](https://platform.openai.com/docs/guides/tools)." }, - "ResponseFormatJsonSchema": { + "TopLogProb": { "type": "object", "required": [ - "name" + "bytes", + "logprob", + "token" ], "properties": { - "description": { - "type": [ - "string", - "null" - ], - "description": "A description of what the response format is for, used by the model to determine how to respond in the format." - }, - "name": { - "type": "string", - "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + "bytes": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "minimum": 0 + } }, - "schema": { - "description": "The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/)." + "logprob": { + "type": "number", + "format": "double" }, - "strict": { + "token": { + "type": "string" + } + } + }, + "TopLogprobs": { + "type": "object", + "required": [ + "token", + "logprob" + ], + "properties": { + "bytes": { "type": [ - "boolean", + "array", "null" ], - "description": "Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](https://platform.openai.com/docs/guides/structured-outputs)." + "items": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "description": "A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token." + }, + "logprob": { + "type": "number", + "format": "float", + "description": "The log probability of this token." + }, + "token": { + "type": "string", + "description": "The token." } } }, - "ResponseModalities": { - "type": "string", - "description": "Output types that you would like the model to generate for this request.\n\nMost models are capable of generating text, which is the default: `[\"text\"]`\n\nThe `gpt-4o-audio-preview` model can also be used to [generate\naudio](https://platform.openai.com/docs/guides/audio). To request that this model generate both text and audio responses, you can use: `[\"text\", \"audio\"]`", - "enum": [ - "text", - "audio" - ] - }, - "Role": { + "Truncation": { "type": "string", + "description": "Truncation strategies.", "enum": [ - "system", - "user", - "assistant", - "tool", - "function" + "auto", + "disabled" ] }, - "RunEval": { + "Type": { "type": "object", - "description": "Input parameters to start an evaluation run for a given model.", + "description": "A typing (text entry) action.", "required": [ - "model" + "text" ], "properties": { - "model": { - "type": "string" + "text": { + "type": "string", + "description": "The text to type." } } }, - "SearchRequestBaseJson": { + "UrlCitation": { "type": "object", "required": [ - "text" + "end_index", + "start_index", + "title", + "url" ], "properties": { - "additional_columns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Additional columns to return from the dataset. If the column is a primary key, it will be\n returned within the response under `.primary_key`, not `.data`." - }, - "datasets": { - "type": [ - "array", - "null" - ], - "items": { - "type": "string" - }, - "description": "The datasets to search for similarity. If None, search across all datasets. For available datasets, use the `list_datasets` tool and ensure `can_search_documents==true`." + "end_index": { + "type": "integer", + "format": "int32", + "description": "The index of the last character of the URL citation in the message.", + "minimum": 0 }, - "limit": { - "type": [ - "integer", - "null" - ], - "description": "Number of documents to return for each dataset", + "start_index": { + "type": "integer", + "format": "int32", + "description": "The index of the first character of the URL citation in the message.", "minimum": 0 }, - "text": { + "title": { "type": "string", - "description": "The text to search documents for similarity" + "description": "The title of the web resource." }, - "where": { - "type": [ - "string", - "null" - ], - "description": "An SQL filter predicate to apply. Format: 'WHERE `where_cond`'." + "url": { + "type": "string", + "description": "The URL of the web resource." } } }, - "SearchRequestHTTPJson": { - "allOf": [ - { - "$ref": "#/components/schemas/SearchRequestBaseJson" - }, - { - "type": "object", - "properties": { - "keywords": { - "type": [ - "array", - "null" - ], - "items": { - "type": "string" - } - } - } - } - ], - "description": "HTTP request schema is separate from AI requests, so that keywords can be supplied as an optional field for HTTP calls.\n`schemars` doesn't allow setting `#[serde(default)]` as well as `#[schemars(required)]` - the field does not become required.\nWhen the field is not required, the model ignores it." - }, - "SearchResponse": { + "UrlCitationBody": { "type": "object", "required": [ - "results", - "duration_ms" + "end_index", + "start_index", + "title", + "url" ], "properties": { - "duration_ms": { + "end_index": { "type": "integer", - "description": "Total time taken to execute the search, in milliseconds", + "format": "int32", + "description": "The index of the last character of the URL citation in the message.", "minimum": 0 }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Match" - }, - "description": "List of matches that were found in the datasets" + "start_index": { + "type": "integer", + "format": "int32", + "description": "The index of the first character of the URL citation in the message.", + "minimum": 0 + }, + "title": { + "type": "string", + "description": "The title of the web resource." + }, + "url": { + "type": "string", + "description": "The URL of the web resource." } } }, - "ServiceTier": { + "Verbosity": { "type": "string", + "description": "o-series reasoning settings.", "enum": [ - "auto", - "default", - "flex", - "scale", - "priority" + "low", + "medium", + "high" ] }, - "SpicepodSummary": { + "WebSearchActionFind": { "type": "object", "required": [ - "name", - "version" + "url", + "pattern" ], "properties": { - "datasets_count": { - "type": "integer", - "description": "The number of datasets in this spicepod", - "minimum": 0 - }, - "dependencies_count": { - "type": "integer", - "description": "The number of dependencies in this spicepod", - "minimum": 0 - }, - "models_count": { - "type": "integer", - "description": "The number of models in this spicepod", - "minimum": 0 - }, - "name": { + "pattern": { "type": "string", - "description": "The name of the spicepod" + "description": "The pattern or text to search for within the page." }, - "version": { + "url": { "type": "string", - "description": "The version of the spicepod" + "description": "The URL of the page searched for the pattern." } } }, - "StopConfiguration": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "ToolChoiceAllowedMode": { - "type": "string", - "enum": [ - "auto", - "required" - ] - }, - "ToolChoiceOptions": { - "type": "string", - "enum": [ - "none", - "auto", - "required" - ] + "WebSearchActionOpenPage": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "description": "The URL opened by the model." + } + } }, - "TopLogprobs": { + "WebSearchActionSearch": { "type": "object", "required": [ - "token", - "logprob" + "query" ], "properties": { - "bytes": { + "query": { + "type": "string", + "description": "The search query." + }, + "sources": { "type": [ "array", "null" ], "items": { - "type": "integer", - "format": "int32", - "minimum": 0 + "$ref": "#/components/schemas/WebSearchActionSearchSource" }, - "description": "A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token." - }, - "logprob": { - "type": "number", - "format": "float", - "description": "The log probability of this token." - }, - "token": { - "type": "string", - "description": "The token." + "description": "The sources used in the search." } } }, - "UrlCitation": { + "WebSearchActionSearchSource": { "type": "object", "required": [ - "end_index", - "start_index", - "title", + "type", "url" ], "properties": { - "end_index": { - "type": "integer", - "format": "int32", - "description": "The index of the last character of the URL citation in the message.", - "minimum": 0 - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The index of the first character of the URL citation in the message.", - "minimum": 0 - }, - "title": { + "type": { "type": "string", - "description": "The title of the web resource." + "description": "The type of source. Always `url`." }, "url": { "type": "string", - "description": "The URL of the web resource." + "description": "The URL of the source." } } }, - "Verbosity": { + "WebSearchApproximateLocation": { + "type": "object", + "description": "Approximate user location for web search.", + "required": [ + "type" + ], + "properties": { + "city": { + "type": [ + "string", + "null" + ], + "description": "Free text input for the city of the user, e.g. `San Francisco`." + }, + "country": { + "type": [ + "string", + "null" + ], + "description": "The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`." + }, + "region": { + "type": [ + "string", + "null" + ], + "description": "Free text input for the region of the user, e.g. `California`." + }, + "timezone": { + "type": [ + "string", + "null" + ], + "description": "The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`." + }, + "type": { + "$ref": "#/components/schemas/WebSearchApproximateLocationType", + "description": "The type of location approximation. Always `approximate`." + } + } + }, + "WebSearchApproximateLocationType": { "type": "string", - "description": "Constrains the verbosity of the model's response. Lower values will result in more concise responses, while higher values will result in more verbose responses. Currently supported values are `low`, `medium`, and `high`.", "enum": [ - "low", - "medium", - "high" + "approximate" ] }, "WebSearchContextSize": { @@ -5234,6 +11770,172 @@ } } }, + "WebSearchTool": { + "type": "object", + "properties": { + "filters": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/WebSearchToolFilters", + "description": "Filters for the search." + } + ] + }, + "search_context_size": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/WebSearchToolSearchContextSize", + "description": "High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default." + } + ] + }, + "user_location": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/WebSearchApproximateLocation", + "description": "The approximate location of the user." + } + ] + } + } + }, + "WebSearchToolCall": { + "type": "object", + "description": "Web search tool call output.", + "required": [ + "action", + "id", + "status" + ], + "properties": { + "action": { + "$ref": "#/components/schemas/WebSearchToolCallAction", + "description": "An object describing the specific action taken in this web search call. Includes\ndetails on how the model used the web (search, open_page, find)." + }, + "id": { + "type": "string", + "description": "The unique ID of the web search tool call." + }, + "status": { + "$ref": "#/components/schemas/WebSearchToolCallStatus", + "description": "The status of the web search tool call." + } + } + }, + "WebSearchToolCallAction": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchActionSearch", + "description": "Action type \"search\" - Performs a web search query." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "search" + ] + } + } + } + ], + "description": "Action type \"search\" - Performs a web search query." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchActionOpenPage", + "description": "Action type \"open_page\" - Opens a specific URL from search results." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "open_page" + ] + } + } + } + ], + "description": "Action type \"open_page\" - Opens a specific URL from search results." + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/WebSearchActionFind", + "description": "Action type \"find\": Searches for a pattern within a loaded page." + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "find" + ] + } + } + } + ], + "description": "Action type \"find\": Searches for a pattern within a loaded page." + } + ] + }, + "WebSearchToolCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "failed" + ] + }, + "WebSearchToolFilters": { + "type": "object", + "properties": { + "allowed_domains": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "description": "Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`" + } + } + }, + "WebSearchToolSearchContextSize": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] + }, "WebSearchUserLocation": { "type": "object", "required": [ @@ -5254,6 +11956,63 @@ "enum": [ "approximate" ] + }, + "WorkerInfo": { + "type": "object", + "description": "Worker information returned in the `/v1/workers` response.", + "required": [ + "name", + "is_llm" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ], + "description": "A description of what the worker does" + }, + "is_llm": { + "type": "boolean", + "description": "Whether this worker can be used as an LLM model" + }, + "name": { + "type": "string", + "description": "The name of the worker" + }, + "status": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/String", + "description": "The status of the worker (e.g., `Ready`, `Initializing`, `Error`)" + } + ] + } + } + }, + "WorkerListResponse": { + "type": "object", + "description": "Response wrapper for the `/v1/workers` endpoint.", + "required": [ + "object", + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkerInfo" + }, + "description": "The list of workers" + }, + "object": { + "type": "string", + "description": "The type of the response (always `list`)" + } + } } } }, From 70c89d022d7d820c485bef2635a5ea76f19106e2 Mon Sep 17 00:00:00 2001 From: jeadie Date: Wed, 27 May 2026 10:55:30 +1000 Subject: [PATCH 2/3] Fix npm ci and invalid refs in OpenAPI spec --- website/package-lock.json | 17 +++++++++++++++++ website/public/openapi.json | 8 ++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 22682fd45..f53426fe4 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -25614,6 +25614,23 @@ } } }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/tapable": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", diff --git a/website/public/openapi.json b/website/public/openapi.json index a46817895..4e610ad00 100644 --- a/website/public/openapi.json +++ b/website/public/openapi.json @@ -802,7 +802,7 @@ "in": "path", "required": true, "schema": { - "$ref": "#/components/schemas/NamespacePath" + "type": "string" } }, { @@ -4493,7 +4493,11 @@ "description": "Array of filters to combine. Items can be ComparisonFilter or CompoundFilter." }, "type": { - "$ref": "#/components/schemas/CompoundType", + "type": "string", + "enum": [ + "and", + "or" + ], "description": "'Type of operation: `and` or `or`.'" } } From 75381e45fb958fffd3ebdf5db07c7666b07c5acd Mon Sep 17 00:00:00 2001 From: Spice Schema Bot Date: Wed, 27 May 2026 00:57:15 +0000 Subject: [PATCH 3/3] chore: update API docs --- .../HTTP/generate-package.RequestSchema.json | 1 + .../HTTP/generate-package.StatusCodes.json | 1 + .../docs/api/HTTP/generate-package.api.mdx | 12 +- .../api/HTTP/get-catalogs.ParamsDetails.json | 1 + .../api/HTTP/get-catalogs.RequestSchema.json | 1 + .../api/HTTP/get-catalogs.StatusCodes.json | 1 + website/docs/api/HTTP/get-catalogs.api.mdx | 18 +- .../api/HTTP/get-config.RequestSchema.json | 1 + .../docs/api/HTTP/get-config.StatusCodes.json | 1 + website/docs/api/HTTP/get-config.api.mdx | 10 +- .../api/HTTP/get-datasets.ParamsDetails.json | 1 + .../api/HTTP/get-datasets.RequestSchema.json | 1 + .../api/HTTP/get-datasets.StatusCodes.json | 1 + website/docs/api/HTTP/get-datasets.api.mdx | 17 +- .../get-iceberg-namespaces.ParamsDetails.json | 1 + .../get-iceberg-namespaces.RequestSchema.json | 1 + .../get-iceberg-namespaces.StatusCodes.json | 1 + .../api/HTTP/get-iceberg-namespaces.api.mdx | 14 +- .../HTTP/get-model-predict.ParamsDetails.json | 1 + .../HTTP/get-model-predict.RequestSchema.json | 1 + .../HTTP/get-model-predict.StatusCodes.json | 1 + .../docs/api/HTTP/get-model-predict.api.mdx | 14 +- .../api/HTTP/get-models.ParamsDetails.json | 1 + .../api/HTTP/get-models.RequestSchema.json | 1 + .../docs/api/HTTP/get-models.StatusCodes.json | 1 + website/docs/api/HTTP/get-models.api.mdx | 17 +- .../api/HTTP/get-namespace.RequestSchema.json | 1 + .../api/HTTP/get-namespace.StatusCodes.json | 1 + website/docs/api/HTTP/get-namespace.api.mdx | 62 +++++ .../api/HTTP/get-spicepods.ParamsDetails.json | 1 + .../api/HTTP/get-spicepods.RequestSchema.json | 1 + .../api/HTTP/get-spicepods.StatusCodes.json | 1 + website/docs/api/HTTP/get-spicepods.api.mdx | 14 +- .../api/HTTP/get-status.ParamsDetails.json | 1 + .../api/HTTP/get-status.RequestSchema.json | 1 + .../docs/api/HTTP/get-status.StatusCodes.json | 1 + website/docs/api/HTTP/get-status.api.mdx | 14 +- .../api/HTTP/get-table.ParamsDetails.json | 1 + .../api/HTTP/get-table.RequestSchema.json | 1 + .../docs/api/HTTP/get-table.StatusCodes.json | 1 + website/docs/api/HTTP/get-table.api.mdx | 70 ++++++ .../api/HTTP/get-workers.ParamsDetails.json | 1 + .../api/HTTP/get-workers.RequestSchema.json | 1 + .../api/HTTP/get-workers.StatusCodes.json | 1 + website/docs/api/HTTP/get-workers.api.mdx | 70 ++++++ .../HTTP/head-namespace.RequestSchema.json | 1 + .../api/HTTP/head-namespace.StatusCodes.json | 1 + website/docs/api/HTTP/head-namespace.api.mdx | 10 +- .../api/HTTP/head-table.ParamsDetails.json | 1 + .../api/HTTP/head-table.RequestSchema.json | 1 + .../docs/api/HTTP/head-table.StatusCodes.json | 1 + website/docs/api/HTTP/head-table.api.mdx | 70 ++++++ .../api/HTTP/list-tables.RequestSchema.json | 1 + .../api/HTTP/list-tables.StatusCodes.json | 1 + website/docs/api/HTTP/list-tables.api.mdx | 62 +++++ .../api/HTTP/list-tools.RequestSchema.json | 1 + .../docs/api/HTTP/list-tools.StatusCodes.json | 1 + website/docs/api/HTTP/list-tools.api.mdx | 62 +++++ .../api/HTTP/mcp-event.ParamsDetails.json | 1 + .../api/HTTP/mcp-event.RequestSchema.json | 1 + .../docs/api/HTTP/mcp-event.StatusCodes.json | 1 + website/docs/api/HTTP/mcp-event.api.mdx | 20 +- .../api/HTTP/operation-id.RequestSchema.json | 1 + .../api/HTTP/operation-id.StatusCodes.json | 1 + website/docs/api/HTTP/operation-id.api.mdx | 24 +- ...ch-dataset-acceleration.ParamsDetails.json | 1 + ...ch-dataset-acceleration.RequestSchema.json | 1 + ...atch-dataset-acceleration.StatusCodes.json | 1 + .../HTTP/patch-dataset-acceleration.api.mdx | 148 ++++-------- .../post-batch-predict.RequestSchema.json | 1 + .../HTTP/post-batch-predict.StatusCodes.json | 1 + .../docs/api/HTTP/post-batch-predict.api.mdx | 12 +- .../post-chat-completions.RequestSchema.json | 1 + .../post-chat-completions.StatusCodes.json | 1 + .../api/HTTP/post-chat-completions.api.mdx | 12 +- .../post-dataset-refresh.ParamsDetails.json | 1 + .../post-dataset-refresh.RequestSchema.json | 1 + .../post-dataset-refresh.StatusCodes.json | 1 + .../api/HTTP/post-dataset-refresh.api.mdx | 14 +- .../HTTP/post-embeddings.RequestSchema.json | 1 + .../api/HTTP/post-embeddings.StatusCodes.json | 1 + website/docs/api/HTTP/post-embeddings.api.mdx | 12 +- .../api/HTTP/post-nsql.ParamsDetails.json | 1 + .../api/HTTP/post-nsql.RequestSchema.json | 1 + .../docs/api/HTTP/post-nsql.StatusCodes.json | 1 + website/docs/api/HTTP/post-nsql.api.mdx | 14 +- .../HTTP/post-responses.RequestSchema.json | 1 + .../api/HTTP/post-responses.StatusCodes.json | 1 + website/docs/api/HTTP/post-responses.api.mdx | 70 ++++++ .../api/HTTP/post-search.RequestSchema.json | 1 + .../api/HTTP/post-search.StatusCodes.json | 1 + website/docs/api/HTTP/post-search.api.mdx | 12 +- .../docs/api/HTTP/post-sql.ParamsDetails.json | 1 + .../docs/api/HTTP/post-sql.RequestSchema.json | 1 + .../docs/api/HTTP/post-sql.StatusCodes.json | 1 + website/docs/api/HTTP/post-sql.api.mdx | 217 ++++-------------- website/docs/api/HTTP/post.api.mdx | 72 ------ website/docs/api/HTTP/ready.api.mdx | 2 +- .../docs/api/HTTP/run-tool.ParamsDetails.json | 1 + .../docs/api/HTTP/run-tool.RequestSchema.json | 1 + .../docs/api/HTTP/run-tool.StatusCodes.json | 1 + website/docs/api/HTTP/run-tool.api.mdx | 70 ++++++ website/docs/api/HTTP/runtime.info.mdx | 2 +- website/docs/api/HTTP/sidebar.ts | 112 ++++++--- 104 files changed, 909 insertions(+), 512 deletions(-) create mode 100644 website/docs/api/HTTP/generate-package.RequestSchema.json create mode 100644 website/docs/api/HTTP/generate-package.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-catalogs.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-catalogs.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-catalogs.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-config.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-config.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-datasets.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-datasets.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-datasets.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-iceberg-namespaces.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-iceberg-namespaces.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-iceberg-namespaces.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-model-predict.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-model-predict.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-model-predict.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-models.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-models.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-models.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-namespace.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-namespace.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-namespace.api.mdx create mode 100644 website/docs/api/HTTP/get-spicepods.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-spicepods.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-spicepods.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-status.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-status.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-status.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-table.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-table.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-table.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-table.api.mdx create mode 100644 website/docs/api/HTTP/get-workers.ParamsDetails.json create mode 100644 website/docs/api/HTTP/get-workers.RequestSchema.json create mode 100644 website/docs/api/HTTP/get-workers.StatusCodes.json create mode 100644 website/docs/api/HTTP/get-workers.api.mdx create mode 100644 website/docs/api/HTTP/head-namespace.RequestSchema.json create mode 100644 website/docs/api/HTTP/head-namespace.StatusCodes.json create mode 100644 website/docs/api/HTTP/head-table.ParamsDetails.json create mode 100644 website/docs/api/HTTP/head-table.RequestSchema.json create mode 100644 website/docs/api/HTTP/head-table.StatusCodes.json create mode 100644 website/docs/api/HTTP/head-table.api.mdx create mode 100644 website/docs/api/HTTP/list-tables.RequestSchema.json create mode 100644 website/docs/api/HTTP/list-tables.StatusCodes.json create mode 100644 website/docs/api/HTTP/list-tables.api.mdx create mode 100644 website/docs/api/HTTP/list-tools.RequestSchema.json create mode 100644 website/docs/api/HTTP/list-tools.StatusCodes.json create mode 100644 website/docs/api/HTTP/list-tools.api.mdx create mode 100644 website/docs/api/HTTP/mcp-event.ParamsDetails.json create mode 100644 website/docs/api/HTTP/mcp-event.RequestSchema.json create mode 100644 website/docs/api/HTTP/mcp-event.StatusCodes.json create mode 100644 website/docs/api/HTTP/operation-id.RequestSchema.json create mode 100644 website/docs/api/HTTP/operation-id.StatusCodes.json create mode 100644 website/docs/api/HTTP/patch-dataset-acceleration.ParamsDetails.json create mode 100644 website/docs/api/HTTP/patch-dataset-acceleration.RequestSchema.json create mode 100644 website/docs/api/HTTP/patch-dataset-acceleration.StatusCodes.json create mode 100644 website/docs/api/HTTP/post-batch-predict.RequestSchema.json create mode 100644 website/docs/api/HTTP/post-batch-predict.StatusCodes.json create mode 100644 website/docs/api/HTTP/post-chat-completions.RequestSchema.json create mode 100644 website/docs/api/HTTP/post-chat-completions.StatusCodes.json create mode 100644 website/docs/api/HTTP/post-dataset-refresh.ParamsDetails.json create mode 100644 website/docs/api/HTTP/post-dataset-refresh.RequestSchema.json create mode 100644 website/docs/api/HTTP/post-dataset-refresh.StatusCodes.json create mode 100644 website/docs/api/HTTP/post-embeddings.RequestSchema.json create mode 100644 website/docs/api/HTTP/post-embeddings.StatusCodes.json create mode 100644 website/docs/api/HTTP/post-nsql.ParamsDetails.json create mode 100644 website/docs/api/HTTP/post-nsql.RequestSchema.json create mode 100644 website/docs/api/HTTP/post-nsql.StatusCodes.json create mode 100644 website/docs/api/HTTP/post-responses.RequestSchema.json create mode 100644 website/docs/api/HTTP/post-responses.StatusCodes.json create mode 100644 website/docs/api/HTTP/post-responses.api.mdx create mode 100644 website/docs/api/HTTP/post-search.RequestSchema.json create mode 100644 website/docs/api/HTTP/post-search.StatusCodes.json create mode 100644 website/docs/api/HTTP/post-sql.ParamsDetails.json create mode 100644 website/docs/api/HTTP/post-sql.RequestSchema.json create mode 100644 website/docs/api/HTTP/post-sql.StatusCodes.json delete mode 100644 website/docs/api/HTTP/post.api.mdx create mode 100644 website/docs/api/HTTP/run-tool.ParamsDetails.json create mode 100644 website/docs/api/HTTP/run-tool.RequestSchema.json create mode 100644 website/docs/api/HTTP/run-tool.StatusCodes.json create mode 100644 website/docs/api/HTTP/run-tool.api.mdx diff --git a/website/docs/api/HTTP/generate-package.RequestSchema.json b/website/docs/api/HTTP/generate-package.RequestSchema.json new file mode 100644 index 000000000..b1426b239 --- /dev/null +++ b/website/docs/api/HTTP/generate-package.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"Parameters required to generate a package","content":{"application/json":{"schema":{"type":"object","required":["from","params"],"properties":{"from":{"type":"string","description":"The GitHub source path in the format `github:{org}/{repo}/{sha}/{path_to_spicepod.yaml}`"},"params":{"type":"object","description":"A key-value map of optional parameters (e.g., `github_token`)","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}}},"title":"GeneratePackageRequest"},"example":{"from":"github:myorg/myrepo/abc12345/spicepod.yaml","params":{"github_token":"ghp_exampleToken12345"}}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/generate-package.StatusCodes.json b/website/docs/api/HTTP/generate-package.StatusCodes.json new file mode 100644 index 000000000..e7fee817a --- /dev/null +++ b/website/docs/api/HTTP/generate-package.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Package generated successfully","content":{"application/zip":{"schema":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"example":""}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{},"example":{"error":"Invalid `from` field, specify a github source and retry (e.g. github:{org}/{repo}/{sha}/{path_to_spicepod.yaml})"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{},"example":{"error":"An unexpected error occurred"}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/generate-package.api.mdx b/website/docs/api/HTTP/generate-package.api.mdx index 6d5e658ae..0f18c9fda 100644 --- a/website/docs/api/HTTP/generate-package.api.mdx +++ b/website/docs/api/HTTP/generate-package.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint generates a zip package from a specified GitHub sour sidebar_label: "Generate Package" hide_title: true hide_table_of_contents: true -api: eJytVt1v2zYQ/1eIe1oB2bLTFtiEokBWDFmBYQu67CkIbJo6S2wokiVPTlRB//twlPzVuA/F5ieBPB7v93FH90CyilDcww1aDNLAQwYlRhW0J+0sFHBX6yjQlt5pS6JKYYRRSPFVe+GlepQVim1wjZAielR6q7EUN5p+bzciujYonEMGzvNB7ezHEgrY51lNCSCDgF9ajPSrKzso+m+quJVBNkgYouA4HbAU5A7lCCmOiZSzhJY4ifTeaJWuzT9HztRDVDU2kr+o8wgFuM1nVDRVwJmZDwYEGXi+NzIrPjAC0hj5aNo+pogUtK3gJXd4ToTwkmqhraAaxdaFRpJYV5rqdlP0LlRD3gf0bsj7WMsh7zl8RW4VvVboXTnvZGOGNQyHyi7AOK/hWjxiN9tJ06JopBduK1zak0b4I6s/4byaZ/tiVuQe0a5fQQayLPUYfnvGwDny4UBQ96dsLkYMQwakyfDazaTb7Sjap1F6zoLPsvEcs+cYJnqazoUqbzrmJ5cbtbx6/eZtfkYMnLJyCoSz1H415b7jpXScixpOdafQYlqI3tk4wrhaLC75cfT93oCliK1SGOO2Nab7vgm/an/RgzIEycc04Zmo2hJWGCCD0S3j0usryKDRVjdtA8ViOOUN3m20laFL7bnVBsUezftRgzeX8Hy0O2l0KaYmPHHGDzTUuXwYggsnqdes51psNZoymyZFJ6QYhdo3iLRcBIVudKT44eZ4NYn69jJMwsDOjxh2GMRY439FeG1Fa/HZo2IjpFXhlGoDe2oYy2mQaseTz7tIyahUQwH5bplPkyvmezNBBmN9PJl7aIOBAmoiX+S5cUqa2kUqfl78snjR7X/wtihxh8b5Bi1NSOfig7NbXbUBxZOmWqxnM864nsPwwNepNmjq0n3S69Uj8vcD7zEJn46z+bcXDXoYfofmY8Dabl0y8tTyobWkG7w4I5OCpTiGGK3QxnSJlQ0fv/ZS1Ti7mjNmXaIlfmfC+c6QAbM2Jl7Ol8v5YtbaSHJjMI0oF6mR9iTtfhCJ28PzcVZef7TG//YSTq1N+Ey5N1JbLi2J3E+2uIfdMvE5GgOyw3vJLxGrzzF9v5ER/wlmGHj5S4shiZbBTgadMLOEGdQoS6bqvoekK3wYMc3uuBION20aQt9af8j2J66VQk/fieWhxk45ePz2r7/vIIPN9JQ3rkwOkE/8yMonKCD9IeDDadiltR6MtFXLIhQwXs+/fwEqAQZ+ +api: eJytVt1v2zYQ/1eIe1oB2XLcFtiEokBWDFmBYQu67CkIbJo6S2wokiVPTlRB//twlPzVuA/F5ieBPB7v93FH90CyilDcww1aDNLAQwYlRhW0J+0sFHBX6yjQlt5pS6JKYYRRSPFVe+GlepQVim1wjZAielR6q7EUN5p+bzciujYonEMGzvNB7ezHEgrY51lNCSCDgF9ajPSrKzso+m+quJVBNkgYouA4HbAU5A7lCCmOiZSzhJY4ifTeaJWuzT9HztRDVDU2kr+o8wgFuM1nVDRVwJmZDwYEGXi+NzIrPjAC0hj5aNo+pogUtK3gJXd4ToTwkmqhraAaxdaFRpJYV5rqdlP0LlRD3gf0bsj7WMsh7zl8RW4VvVboXTnvZGOGNQyHyi7AOK/hWjxiN9tJ06JopBduK1zak0b4I6s/4byaZ/tiVuQe0a5fQQayLPUYfnvGwDny4UBQ96dsLkYMQwakyfDazaTb7Sjap1F6zoLPsvEcs+cYJnqazoUqbzrmJ5cbdbV8/eZtfkYMnLJyCoSz1H415b7jpXScixpOdafQYlqI3tk4wlguFpf8OPp+b8BSxFYpjHHbGtN934Rftb/oQRmC5GOa8ExUbQkrDJDB6JZx6fUSMmi01U3bQLEYTnmDdxttZehSe261QbFH837U4M0lPB/tThpdiqkJT5zxAw11Lh+G4MJJ6jXruRZbjabMpknRCSlGofYNIi0XQaEbHSl+uDleTaK+vQyTMLDzI4YdBjHW+F8RXlvRWnz2qNgIaVU4pdrAnhrGchqk2vHk8y5SMirVUEC+u8qnyRXzvZkgg7E+nsw9tMFAATWRL/LcOCVN7SIVPy9+Wbzo9j94W5S4Q+N8g5YmpHPxwdmtrtqA4klTLdazGWdcz2F44OtUGzR16T7p9eoR+fuB95iET8fZ/NuLBj0Mv0PzMWBtty4ZeWr50FrSDV6ckUnBUhxDjFZoY7rEyoaPX3upapwt54xZl2iJ35lwvjNkwKyNiZfzxXwxa20kuTGYJpSL1Eh7knU/h8Tt4fU4q64/OuN/ewinziZ8ptwbqS2XljTuJ1fcw+4q0Tn6ArLDc8kPEYvPMX2/kRH/CWYYePlLiyFplsFOBp0ws4IZ1ChLZuq+hyQrfBgxze64Eg43bZpB3zp/yPYnrpVCT9+J5ZnGRjlY/Pavv+8gg830kjeuTAaQT/zGyicoIP0f4MNp1qW1Hoy0VcsiFDBez79/AWZ1Bk0= sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request "}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{},"example":{"error":"Invalid `from` field, specify a github source and retry (e.g. github:{org}/{repo}/{sha}/{path_to_spicepod.yaml})"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{},"example":{"error":"An unexpected error occurred"}}}}}} + {...require("./generate-package.StatusCodes.json")} > diff --git a/website/docs/api/HTTP/get-catalogs.ParamsDetails.json b/website/docs/api/HTTP/get-catalogs.ParamsDetails.json new file mode 100644 index 000000000..09e6aa37d --- /dev/null +++ b/website/docs/api/HTTP/get-catalogs.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"from","in":"query","description":"Filters catalogs by source (e.g., 'spiceai').","required":false,"schema":{"type":["string","null"]}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-catalogs.RequestSchema.json b/website/docs/api/HTTP/get-catalogs.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-catalogs.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-catalogs.StatusCodes.json b/website/docs/api/HTTP/get-catalogs.StatusCodes.json new file mode 100644 index 000000000..9f8744c3d --- /dev/null +++ b/website/docs/api/HTTP/get-catalogs.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"List of catalogs","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","description":"Catalog information returned by the `/v1/catalogs` endpoint.","required":["from","name"],"properties":{"from":{"type":"string","description":"The source/provider of the catalog (e.g., `spiceai`, `unity`)"},"name":{"type":"string","description":"The name of the catalog"}},"title":"CatalogInfo"}},"example":[{"from":"spiceai","name":"spiceai"}]},"text/csv":{"schema":{"type":"string"},"example":"\nfrom,name\nspiceai,spiceai\n"}}},"500":{"description":"Internal server error occurred while processing catalogs","content":{"application/json":{"schema":{},"example":{"error":"An unexpected error occurred while processing the catalogs"}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-catalogs.api.mdx b/website/docs/api/HTTP/get-catalogs.api.mdx index 529c62b46..f82c1141f 100644 --- a/website/docs/api/HTTP/get-catalogs.api.mdx +++ b/website/docs/api/HTTP/get-catalogs.api.mdx @@ -1,11 +1,11 @@ --- id: get-catalogs title: "List Catalogs" -description: "List Catalogs" +description: "Returns a list of all registered catalogs (data sources). Catalogs provide metadata about schemas and tables available from external data sources." sidebar_label: "List Catalogs" hide_title: true hide_table_of_contents: true -api: eJydVNtu2zAM/RWBL90A1UkKDNj8VnQXFOjT0D2lQavITKxOllSJThsY/veBinNrAgzbkw2RPDw8vHRAapmgnMJXRSohJZhJ8AGjIuPdbQUlLJEetSJl/TKBhKCiapAwclgHTjUIJSyib0CCcVDCS4txDRIqTDqawEBQwndjOUhsocR8LZJvo0bxAYtlIcVFCkajMhcfC5AQ8aU1ESsoF8omlJB0jY2CsgNaB2TOiaJxS5DgWmth1vczDkvBu4SJHa/GY/4cE7kziYRfiIOatHeEjthXhWCNztWPnhMHdCeZwc+fUdMRyelWgizITEKILCOZDZNs3AMMzPvB/dTQSyBDlp9uNjx/DoXdEjYciG+qCeww3aLDoN+WxP6hnzEevtFIp9XZivaEdrjw4BhXMtaDG6Dk8H1w0DPJT+cUvnWE0SkrEsYVRoEx+ii81m2MWInX2lgUIXqNKRm3/J9OHBLtICeAEq6daB2+BdSE1V/TUo371H2f6zkzKjd7dg1S7YedyKtANZQwWk1GByVsit5sRxstlFAThXI0sl4rW/tE5efxl/HJgtyxWVS4QutDg44G+Qpx493CLNuI4tVQLZ4uLxnxqQAe+IS6jYbWOZ8K5vE38v+MbcYtfG7yMEqxdWQaPEl9X6PIja3E3sUajS5lfYdxug5K13h5VTB5U6EjszAYjy29BC5/AzwpJpNifNm6RGpukY3BJ2qUO4B9r/IRt92E5vENVhnHKFnYbujAFFYTnp0txEwCy8yGrpurhL+i7Xt+3pwmVqoyiRntz8u7rLtB/OfDdZZvbsr2RKyUbdkl92+losnacM8k1KgqlnTaDTHXWmOgg6iTvWCU3WT++HYPff8Hq48ByA== +api: eJzNVUuP2zYQ/ivEXJIFtLazQIFWt8UiKRbIqUhPXiMeU2OLKUUy5EhZQ9B/L4amYzm7RR+nniSI5DffY4YagfGQoF7DAzJaf0iwqaChpKMJbLyDGn4j7qNLCpU1iZXfK7RWRTqYxBSpUbocVW8bZFTJ91FTulmoM6YK0Q+mIdURY96DO9+zSrqlDpNC1yjGnaWkcEBj5VXto+8UPTNFh1bNkRdQgQ8UUQg+NlDDgfjzmQVUEDBiR0xRlI3gsCOoQQChAiOavvYUj/Cj0g/GyqGLoN2x1FRvaXFYVOpNCkYTmjc3QiLS195EaqDeo01UwUkQ1CPwMZDYmjgad4AKXG8tbKZpI8dS8C5Rko13q5U8rol8LEbPNGnvmBzLXgzBGp3VL78kOTC+qAwYI4pCw9Sl2Xe/+0KaX0gvUSnj9j52GVvFHDw1YgO3pLbL4d3yTGmryDXBG8fXTqzPPmfXNxWEKFmxOcnNixc23+25ZvOppWL8srROFDuERKl/DmRbAtlWats7w8ftDUyl+D8qIzt/wIZpqoANW7oY8+j2Pn+nZ+yCrKzPYqBQOGu+fJg2AkTPvNRpeDWlQmyOC09OcCvBenIFqirPJweTsPjpta55dGVYEsWBoqIYfVRe6z7KmH5rjSUZRU0pGXf4L901JzpCLgA13DvVO3oOpJmavy07czqJGtHTEbe+THIeYG6hhnm/QQUnWaeZ7qOFGlrmUC+X1mu0rU9c/7z6ZfUi5o+yrBoayPrQkeNi0EI9eLc3hz6S+ma4VdvbW0HcLkDGNJHuo+FjrofBfP6D5H0jazImOcbSJbF3bDp6vZElukZdtlijyaXsYGmY+4C6pdu7hZA3DTk2e0PxemWqQOSfgO8Wq8Xqtncp35uyFnziDt0MNd8iDxf/rqiNl8z/nzd8mZA8PsGicSIyxz6W/ljD8E56d/bnkiaQhXHcYaLfo50m+Xy67iXHxiSpfbmy/9KUf/szeJVvbpnzjTig7WVL7q4Bo8nRSUdV0BI2Evh6LGfutabAs1Mv5lJQvs/Nr+8/wTT9CdNotfY= sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/get-config.RequestSchema.json b/website/docs/api/HTTP/get-config.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-config.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-config.StatusCodes.json b/website/docs/api/HTTP/get-config.StatusCodes.json new file mode 100644 index 000000000..7fa111c57 --- /dev/null +++ b/website/docs/api/HTTP/get-config.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"API configuration retrieved successfully","content":{"application/json":{"schema":{},"example":{"overrides":{},"defaults":{},"endpoints":["GET /v1/iceberg/namespaces","HEAD /v1/iceberg/namespaces/{namespace}","GET /v1/iceberg/namespaces/{namespace}/tables","HEAD /v1/iceberg/namespaces/{namespace}/tables/{table}","GET /v1/iceberg/namespaces/{namespace}/tables/{table}"]}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-config.api.mdx b/website/docs/api/HTTP/get-config.api.mdx index 0916140b4..ecd08fead 100644 --- a/website/docs/api/HTTP/get-config.api.mdx +++ b/website/docs/api/HTTP/get-config.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns the Iceberg Catalog API configuration, inclu sidebar_label: "Get Iceberg API config" hide_title: true hide_table_of_contents: true -api: eJzNVE1v2zAM/SsCz0qc9LT5VnRFV2CHHbJTELSKxMTaZEmTKK+B4f8+0HHdL3RAb/NFgkg9ku89uQdSxwz1Fm417jEdYSfBYNbJRrLBQw2bxmaB3sRgPYmEVJLPghoU0xVxpUi5cBSX32+FDv5gjyUpvi2F9doVY/1RGCRlXRZqHwqJ0GFK1mCWwuBBFUdZCuWNUJ2yTu0dziXzEiSEiGfIWwM1HJHuzoVAQsIcg8+Yoe7hYrXi5eUEb/riKZLFDo3IRWvM+VCcO4EEHTyhJ8ZQMTqrx/zqZ2agHrJusFVQ94MEfFBtdMjH8zTnyONEU97jHMzyzfVGVN26smfqKq9azFFpzCDh6/Xll3eiVT/vB5D/gHmeWBET+QHk6ULVj+uHC833dgN/ElqkJkyCgYSoqIEanuPNKmZMHSbmqIeSHNTQEMW6qlzQyjUhU/1p9XkFr935jcPCYIcuxBY9iTPSUlxNiqP4Y6kR94sFI94vYdhxOV2SpdNYT0V79wt5v+OY9YfAqpIllhdS8WRbfFN606DI0Wo04inFWY0+j65gfth9UekGFxdLbt4a9GQPFtPLyCCBxz8Dr5fr9XK1KD6PfHIwhkyt8s9gb5DmB/hk8NdN9k+O/j8eMp0id0/4QFV0ynqebhS8n/yxhW7NTE3/o/FN8mQ7CWwDTuj7vcr4I7lh4OPfBdOonoROJTtyxlpKaFAZpnrbwygwXGqNkb3YKVe4kTevnB0w+/bmegPD8BdITMss +api: eJzNVE1v2zAM/SsCz0qc9rT5VnRFV2CHHbJTEbSKxMTcZEmTaK+F4f8+0PHcL2xAb/NFgkg9ku89eQA2xwL1LdxY3GM+wk6Dw2IzJaYYoIZtQ0VhcClSYJWRuxyK4gbVfEVdGjY+HtXF1xtlYzjQsctGbmtFwfrOUTgqh2zIF2X2sWMVe8yZHBatHB5M57loZYJTpjfkzd7jUrKsQUNMeIK8cVDDEfnuVAg0ZCwphoIF6gHONxtZXk7wpi+ZIhP26FTprMVSDp33j6DBxsAYWDBMSp7slF99LwI0QLENtgbqYdSAD6ZNHuV4meYU+TPRnPdnDmH5+mqrqv6sohN1VTAtlmQsFtDw+eri01+i1bDsR9D/gHmeWLEQ+Q7k+UI1TOu7Cy33dqN8GlrkJs6CgYZkuIEanuMtKhbMPWbhaIAue6ihYU51VflojW9i4frD5uMGXrvzi4SVwx59TC0GViektbqcFUf1i7hR96uVIN6vYdxJOdtl4sepnkl09wNlv5MYhUMUVZlY5IXcBaYW35TeNqhKIotOPaV4shjK5ArhR9yXjG1wdb6W5slhYDoQ5peRUYOMfwI+X2/Wm1UXykSnxFIs3JrwDPUaeXl/T/5+3ePwZOj/4x3zY5LuGR+4St5QkOkmvYfZHrfQnwlR8+9oepIy2U6DuEAShmFvCn7Lfhzl+GeHeRJPQ28yTZyJlBoaNE6Yvh1g0hcurMUkVuyN76SRN49cDLDY9vpqC+P4G7n+yvs= sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; diff --git a/website/docs/api/HTTP/get-datasets.ParamsDetails.json b/website/docs/api/HTTP/get-datasets.ParamsDetails.json new file mode 100644 index 000000000..a4c6c0206 --- /dev/null +++ b/website/docs/api/HTTP/get-datasets.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"status","in":"query","description":"Whether to include the status field in the response. When `true`, the response includes\nthe current status of each dataset (e.g., `ready`, `initializing`, `refreshing`, `error`).\nDefaults to `false`.","required":false,"schema":{"type":"boolean"}},{"name":"format","in":"query","description":"The format of the response. Possible values are 'json' (default) or 'csv'.","required":false,"schema":{"type":"string","enum":["json","csv"],"title":"Format"}},{"name":"source","in":"query","description":"Filters datasets by source (e.g., `postgres:aidemo_messages`).","required":false,"schema":{"type":["string","null"]}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-datasets.RequestSchema.json b/website/docs/api/HTTP/get-datasets.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-datasets.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-datasets.StatusCodes.json b/website/docs/api/HTTP/get-datasets.StatusCodes.json new file mode 100644 index 000000000..79d81ed9e --- /dev/null +++ b/website/docs/api/HTTP/get-datasets.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"List of datasets. When `status=true` is specified, each dataset includes `status` and error metadata (`error`, `error_message`) when applicable.","content":{"application/json":{"schema":{"type":"object","description":"Dataset information returned by the `/v1/datasets` endpoint.","required":["from","name","replication_enabled","acceleration_enabled"],"properties":{"acceleration_enabled":{"type":"boolean","description":"Whether acceleration is enabled for the dataset"},"error":{"oneOf":[{"type":"null"},{"description":"An optional error type/code for the dataset status.\nOnly populated when `status=true` and the dataset status is `Error`.\nExample:\n`{ \"category\": \"dataset\", \"type\": \"auth\", \"code\": \"dataset.auth\" }`.","type":"object","required":["category","type","code"],"properties":{"category":{"description":"High-level component category where the error originated.","type":"string","enum":["dataset","model","worker","runtime"],"title":"ComponentErrorCategory"},"code":{"type":"string","description":"Stable machine-readable code (`{category}.{type}`), e.g. `dataset.auth`."},"type":{"description":"Canonical error type intended for programmatic handling.","type":"string","enum":["auth","connection","timeout","validation","not_found","permission","rate_limit","internal","unknown"],"title":"ComponentErrorType"}},"title":"ComponentError"}]},"error_message":{"type":["string","null"],"description":"An optional error message describing why the dataset entered an error state.\nOnly populated when `status=true`, the dataset status is `Error`, and an error message was recorded.\nThis value is intended for user-visible display."},"from":{"type":"string","description":"The source where the dataset is located (e.g., `postgres:syncs`)"},"name":{"type":"string","description":"The name of the dataset"},"properties":{"type":"object","description":"Custom properties for the dataset","additionalProperties":{},"propertyNames":{"type":"string"}},"replication_enabled":{"type":"boolean","description":"Whether replication is enabled for the dataset"},"status":{"oneOf":[{"type":"null"},{"description":"The current status of the dataset. Only included when `status=true` query parameter is specified.\nPossible values: `Initializing`, `Ready`, `Disabled`, `Error`, `Refreshing`, `ShuttingDown`.","oneOf":[{"type":"string","description":"The component is initializing and not yet ready","enum":["Initializing"]},{"type":"string","description":"The component is ready to accept connections","enum":["Ready"]},{"type":"string","description":"The component is disabled and not running","enum":["Disabled"]},{"type":"object","description":"An error occurred in the component, with an optional error message","required":["Error"],"properties":{"Error":{"type":["string","null"],"description":"An error occurred in the component, with an optional error message"}}},{"type":"string","description":"The component is in the process of refreshing its state","enum":["Refreshing"]},{"type":"string","description":"The component is in the process of shutting down","enum":["ShuttingDown"]}],"example":"Ready","title":"String"}]}},"title":"DatasetInfo"},"example":[{"from":"postgres:syncs","name":"daily_journal_accelerated","replication_enabled":false,"acceleration_enabled":true,"status":"Ready","error":null,"error_message":null},{"from":"databricks:hive_metastore.default.messages","name":"messages_accelerated","replication_enabled":false,"acceleration_enabled":true,"status":"Error","error":{"category":"dataset","type":"auth","code":"dataset.auth"},"error_message":"Unable to authenticate with datasource credentials"},{"from":"postgres:aidemo_messages","name":"general","replication_enabled":false,"acceleration_enabled":false,"status":"Initializing","error":null,"error_message":null}]},"text/csv":{"schema":{"type":"string"},"example":"\nfrom,name,replication_enabled,acceleration_enabled,status,error,error_message\npostgres:syncs,daily_journal_accelerated,false,true,Ready,,\ndatabricks:hive_metastore.default.messages,messages_accelerated,false,true,Error,dataset.auth,Unable to authenticate with datasource credentials\npostgres:aidemo_messages,general,false,false,Initializing,,\n"}}},"500":{"description":"Internal server error occurred while processing datasets","content":{"text/plain":{"schema":{"type":"string"},"example":"An unexpected error occurred while processing datasets"}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-datasets.api.mdx b/website/docs/api/HTTP/get-datasets.api.mdx index 3abdf05b5..982847fd4 100644 --- a/website/docs/api/HTTP/get-datasets.api.mdx +++ b/website/docs/api/HTTP/get-datasets.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns a list of configured datasets. The response sidebar_label: "List Datasets" hide_title: true hide_table_of_contents: true -api: eJztV99v2zYQ/leIe0lrMEpSYMAmYA9F0g4ZirZo2vXBNmxaOltsKVIlKaeuof99OEqyZFvJjK7DgGEvrSOSx+++737wtuDFykE8hhvhhUPvYMohRZdYWXhpNMTwPpOOoU4LI7VnFn1ptWOCKek8M0uWGL2Uq9JiytLGSMTeZ8gsusJohywRmi2QLY3NhfeYMuHYaPT73ZvXoxEzlo1G13d/jEZ8ooVOmUhTSVcLxZZSebSuNSCKQklMWemkXrEvJdoNK4QVOdKuaKIn+oNDNnde+NL96m2J88NtzBsmdaLKFJnPkCWltag9q8+QPyiSrPWESR12ta5EE/3WOCcXCtsTa6FKdDGbSy29FEp+k3o152xuUaQb+pFKJxYKU/qN1hpbry4tuqzZ67LSe6lXqbnX8wg4mAKtIBZuU4hhhX7WcgscOp8hHm9BixwhhhoPcJCkWnAbDrX8mKHPjkloXFlKVOmRy+xjhprNA5t8b6m14Sb6BCqfYLSK+rwcE9anpGbqaTTRN7gUpfKOUM+XQjkMFFn8UkqLKcThGweXZJgLiLfgNwUxsjBGodBQVXzHUh2Ej7NEwVvvIyf2ydjJX+vOhEV29skZfcaepDXQpxTTZ4lbn50G03kr9Qo4oC5zykUyBxwSt6Zs9NIr2vayRt53xpnSJvi4My+bHGrjhy02rD63U6Qwzq8suljIFHMzy9E5sUI3f3qSA+POA10qBdOqmtKxmjJHG59dXtJ/+8heNQWkqxp1pO2lr3TMFZjIpcSUH+ZmHX1MtGfmdQgT6sRoj9rTraFsJCGbLgK18fZYBLP4hInfc3cMS2ty8orYppWdnRnqkNLAQSQJqiZZd5+nHApLOexlTcDgruNIfShf+8dZKMfBAkVpiM+GEqh4jXkguI5DvImC+wwt9q3QBcokwmNKButYO8Ug7Wwzpodon4lDvvfNXJfOm5x1R45c5NA1iLd9y91Nm9ci37uswVxVwyKerkPv9F/I0FTjeAtG45tlKNTNJSFJKIuPGTwuoT2zEXuj1aYN+5SEO8yWw2bXz55+7/pnmtZD9ey2dwlweEd3AIeb5grg8IJuCEvtBcDhrrF/Y+51vxBem7wwGrW/qzmupiRsu9o8ZN415efWY0564FeRF7RhvG1SBHZlz2104to8jyEVUm1mn0xptVCzXeoFoIPh09TF4RwnYbpwaJwn9RsUJO7CyuSzizO5xlmOXjhvLEZNO4nactwhbL/8eHA7+nsIH2oPHZ4VarRCfReEtqm0GPaCpZqSsvjVX1AzHKrbbWr3FIaJJuScwPEBQHwICK8BTPR+VPAHg4HXwAODQdSJPl1KPqTgvsVWiR6iA/55Q3tzrv63T9+Enj4Vh5+Guu+t9kg+MYd2jZaFJGcmCSWIiotUSHU4QRee2733Z6+3Bm0KJeRwVx1S57lmpcavBSY0Cpx8bRVcydFnpnkSh5ewzyCGi/XVRQ9f7VH9OC6tghgy74v44oK6msqM8/HPl79cHlX5V7TMUlyjMkUe6nCwFLHrdsZh99JnbH5+ThbnEdBLx2FSWuk34T5RyNlnpN9TWpN6aQIfTXWypfYyvCYG+nEhE0xZt0XJBLULzbdJtOeFSDI8fxYReJmi9lTa7f5KxYHcrw1fRVdX0eV5qZ2nOA/92DifC90zG15iNx2Be9i2nd7/z4L/xizY5FIv1Spex/W2SYAxrK9Itt4MT1FOC9vtQjj8YFVV0ed6RqBAbZHsKvCDov+XhsZBLkO+dvNzUBFiqN9oJ9P0Q6fGR3DuJtjvxPm3B8LHOGwH0g7blP6wMhQfKoocMhQp1azxtjn1PEmw6Ht0NLGRlV3p/+3Fe6iqPwHSvqwj +api: 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 sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/get-iceberg-namespaces.ParamsDetails.json b/website/docs/api/HTTP/get-iceberg-namespaces.ParamsDetails.json new file mode 100644 index 000000000..c81e7c8b4 --- /dev/null +++ b/website/docs/api/HTTP/get-iceberg-namespaces.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"parent","in":"query","description":"The parent namespace from which to retrieve child namespaces.","required":false,"schema":{"type":"object","required":["parts"],"properties":{"parts":{"type":"array","items":{"type":"string"}}},"title":"Namespace"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-iceberg-namespaces.RequestSchema.json b/website/docs/api/HTTP/get-iceberg-namespaces.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-iceberg-namespaces.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-iceberg-namespaces.StatusCodes.json b/website/docs/api/HTTP/get-iceberg-namespaces.StatusCodes.json new file mode 100644 index 000000000..6d7846735 --- /dev/null +++ b/website/docs/api/HTTP/get-iceberg-namespaces.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Namespaces retrieved successfully","content":{"application/json":{"schema":{"type":"object","required":["namespaces"],"properties":{"namespaces":{"type":"array","items":{"type":"object","required":["parts"],"properties":{"parts":{"type":"array","items":{"type":"string"}}},"title":"Namespace"}}},"title":"NamespacesResponse"},"example":{"namespaces":[{"parts":["catalog_a"]},{"parts":["catalog_b","schema_1"]}]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","type","code"],"properties":{"code":{"type":"integer","format":"int32","minimum":0},"message":{"type":"string"},"type":{"type":"string","enum":["NoSuchNamespaceException","BadRequestException","InternalServerError"],"title":"IcebergErrorType"}},"title":"IcebergError"}},"title":"IcebergResponseError"},"example":{"error":{"message":"Invalid namespace request","type":"BadRequestException","code":400}}}}},"404":{"description":"Namespace not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","type","code"],"properties":{"code":{"type":"integer","format":"int32","minimum":0},"message":{"type":"string"},"type":{"type":"string","enum":["NoSuchNamespaceException","BadRequestException","InternalServerError"],"title":"IcebergErrorType"}},"title":"IcebergError"}},"title":"IcebergResponseError"},"example":{"error":{"message":"Namespace provided does not exist","type":"NoSuchNamespaceException","code":404}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","type","code"],"properties":{"code":{"type":"integer","format":"int32","minimum":0},"message":{"type":"string"},"type":{"type":"string","enum":["NoSuchNamespaceException","BadRequestException","InternalServerError"],"title":"IcebergErrorType"}},"title":"IcebergError"}},"title":"IcebergResponseError"},"example":{"error":{"message":"Internal Server Error: DF_SCHEMA_NOT_FOUND","type":"InternalServerError","code":500}}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-iceberg-namespaces.api.mdx b/website/docs/api/HTTP/get-iceberg-namespaces.api.mdx index 89c1e39d0..0defaeb1a 100644 --- a/website/docs/api/HTTP/get-iceberg-namespaces.api.mdx +++ b/website/docs/api/HTTP/get-iceberg-namespaces.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint retrieves namespaces available in the Iceberg catalo sidebar_label: "List Iceberg namespaces" hide_title: true hide_table_of_contents: true -api: eJztV21v2zYQ/ivEfVb8kqXApm9Zm24GuhRo0k+e4dDU2bqOIlmSUhIY+u/D6cWSZyMt0AHDin6ycUfe3fPcQ+q4hyh3AdIlLBRu0O9glUCGQXlykayBFO5zCgJN5iyZKDxGT1hhEEYWGJxUGISsJGm50SjIiJij6IIJJaPUdjf50yy2QooHJz2a+DDsFRSE87aiDLNEUBSPpLXQFGITR+Wks3Gm0mToG1dwqGhLmIk26AQSsA695LIXGaSww7imtpD1EAIScNLLAiN6Br4H9kEKbRhIgBj15xL9M5xygV26EYStt4V4zEnlItoDQSe1c4EeP5fkMYN0K3XABILKsZCQ7iE+O67Cbj6hikdLl1xaDNwZ5xliJAy8pTUPe6X3kmumiMXYHqIns4O6rhOIFDXbbvu6oK5XnC04a0Ib93I2459j6LdDE3qImQilUhjCttSaEytrInOY7kE6p0k1zZh+Chxh/5VgR606QTzyfRn2f0HlOXP40JELdQL4JAvH/mMwy0MJS+gOzVrCqk7O2DfQ62Y9h1W9qpu0V+ea9qvMBKPHEP+t9qD31p8S2Jq/sLfAEOQOIWlXcUUZnsZqrEMoMhF36CGBrfWFjK3pp0tIoCBDRVlAOquTQ/TTbnX5ThwJoOHdS7i1d6XKDy27eVLYcpgwhx9aCsfWhYnojdR36Cv0Nz0pffO7C7Cx33POsTLGznOOXi/dgiPRHHg+oIWFqaSm0VUzanmH9zyGluer2azuJXT1wrkXxkaxtaXJfkjpe5XS0Oz+oywyy996GwU+0VhSL8DsdXXV6erVuaupRy1CA1u01fxQ1neqrEO721pEsy0Vb96u717/fvPH9fr2/f367fuPt28GiZ0rv1fXq+7WaiiNue0Gvma6izmkMK3m0276mx5Nf63e2m9u6TWkkMfo0ulUWyV1bkNMf579MjuZ/d6xW2RYobau4BGwjTQRr63Z0q70KB4p5uLh4oIjPkyAJ6uAqvQUn5t80tH6L+T/K/aR2dqm4R21vjSRCjw7dgZHCjMxLNGkkIeK9DDBXjupcry4nHDxlKGJPCD7Y0+dAMNvA88n8/lkdlGaEHl8Z6ezIRbSjMK+42m8n+iPqDyqcj8c3f/Tm6HTWsSnOHVakmESGl3sOyktoZozod0DKfnHhMqK4UX7/UYG/Oh1XbO5fUBw0zMKjHMY+l+g7dueF2exNHobXjeV1CUvasRZSU9N41mQCeQoM9bLct/tulZ8mYx2nVzJHOVwAH+7uYe6/hthRvz5 +api: eJztV99v2zYQ/leIe1ZsJ0uBTW9Zm24GOhdo0ifPcGjqbF1HkSxJKQkM/e/D6Yclz0ZaoAOGFX2ycUfe3ffdR+q4hyh3AdIlzBVu0O9glUCGQXlykayBFO5zCgJN5iyZKDxGT1hhEEYWGJxUGISsJGm50SjIiJij6IIJJaPUdjf508y3QooHJz2a+DDsFRSE87aiDLNEUBSPpLXQFGITR+Wks3Gm0mToG1dwqGhLmIk26AQSsA695LLnGaSww7imtpD1EAIScNLLAiN6Br4H9kEKbRhIgBj15xL9M5xygV26EYStt4V4zEnlItoDQSe1c4EeP5fkMYN0K3XABILKsZCQ7iE+O67Cbj6hikdLl1xaDNwZ5xliJAy8pTUPe6X3kmumiMXYHqIns4O6rhOIFDXbFn1dUNcrzhacNaGNezWb8c8x9MXQhB5iJkKpFIawLbXmxMqayByme5DOaVJNM6afAkfYfyXYUatOEI98X4b9X1B5zhw+dORCnQA+ycKx/xjM8lDCErpDs5awqpMz9g30ullfwqpe1U3a63NN+1VmgtFjiP9We9B7608JbM1f2FtgCHKHkLSruKIMT2M11iEUmYg79JDA1vpCxtb00xUkUJChoiwgndXJIfppt7p8J44E0PDuJSzsXanyQ8tunxS2HCbM4YeWwrF1biJ6I/Ud+gr9bU9K3/zuAmzs95xzrIyx85yj10u34Eg0B54PaGFuKqlpdNWMWt7hPY+h5fl6Nqt7CV2/cO6FsVFsbWmyH1L6XqU0NLv/KIvM8rfeRoFPNJbUCzB7XV13unp17mrqUYvQwBZtNT+U9Z0q69DuthbRbEvFm7fru9e/3/5xs168v1+/ff9x8WaQ2Lnye3W96m6thtKY227ga6a7mEMK0+py2k1/06Ppr9Vb+80tvYYU8hhdOp1qq6TObYjpz7NfZiez3zt2iwwr1NYVPAK2kSbitTVb2pUexSPFXDxcXHDEhwnwZBVQlZ7ic5NPOlr/hfx/xT4yW9s0vKPWlyZSgWfHzuBIYSaGJZoU8lCRHibYGydVjhdXEy6eMjSRB2R/7KkTYPht4KvJbDK7KE2IPL2zz9kQC2lGUd/xMN4P9EdMHhW5H07u/+nJ0Ekt4lOcOi3JMAmNLPadkpZQXTKf3fso+ceAyoLhRfv9Rgb86HVds7l9P3DPMwqMc5j5X6Dt214XZ7E0chseN5XUJS9qtFlJT03jWY8J5Cgzlsty3+26UXyXjHad3Mgc5XD+fru9h7r+G8IM/Mg= sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/get-model-predict.ParamsDetails.json b/website/docs/api/HTTP/get-model-predict.ParamsDetails.json new file mode 100644 index 000000000..5cbd28ce9 --- /dev/null +++ b/website/docs/api/HTTP/get-model-predict.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"name","in":"path","description":"The name of the model to make a prediction with.","required":true,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-model-predict.RequestSchema.json b/website/docs/api/HTTP/get-model-predict.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-model-predict.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-model-predict.StatusCodes.json b/website/docs/api/HTTP/get-model-predict.StatusCodes.json new file mode 100644 index 000000000..90dc801da --- /dev/null +++ b/website/docs/api/HTTP/get-model-predict.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Prediction made successfully","content":{"application/json":{"schema":{"type":"object","required":["status","model_name","duration_ms"],"properties":{"duration_ms":{"type":"integer","description":"The time taken to complete the prediction (in milliseconds)","minimum":0},"error_message":{"type":["string","null"],"description":"The error message if the request failed"},"model_name":{"type":"string","description":"The name of the model used for the prediction"},"model_version":{"type":["string","null"],"description":"The version of the model used"},"prediction":{"type":["array","null"],"items":{"type":"number","format":"float"},"description":"The prediction result, typically an array of floats"},"status":{"description":"The status of the prediction","type":"string","enum":["Success","BadRequest","InternalError"],"title":"PredictStatus"}},"title":"PredictResponse"},"example":{"status":"Success","model_name":"my_model_name","model_version":"1.0","prediction":[0.45,0.5,0.55],"duration_ms":123}}}},"400":{"description":"Invalid request to the model","content":{"application/json":{"schema":{"type":"object","required":["status","model_name","duration_ms"],"properties":{"duration_ms":{"type":"integer","description":"The time taken to complete the prediction (in milliseconds)","minimum":0},"error_message":{"type":["string","null"],"description":"The error message if the request failed"},"model_name":{"type":"string","description":"The name of the model used for the prediction"},"model_version":{"type":["string","null"],"description":"The version of the model used"},"prediction":{"type":["array","null"],"items":{"type":"number","format":"float"},"description":"The prediction result, typically an array of floats"},"status":{"description":"The status of the prediction","type":"string","enum":["Success","BadRequest","InternalError"],"title":"PredictStatus"}},"title":"PredictResponse"},"example":{"status":"BadRequest","error_message":"You gave me a bad request :(","model_name":"my_model_name","duration_ms":12}}}},"500":{"description":"Internal server error occurred during prediction","content":{"application/json":{"schema":{"type":"object","required":["status","model_name","duration_ms"],"properties":{"duration_ms":{"type":"integer","description":"The time taken to complete the prediction (in milliseconds)","minimum":0},"error_message":{"type":["string","null"],"description":"The error message if the request failed"},"model_name":{"type":"string","description":"The name of the model used for the prediction"},"model_version":{"type":["string","null"],"description":"The version of the model used"},"prediction":{"type":["array","null"],"items":{"type":"number","format":"float"},"description":"The prediction result, typically an array of floats"},"status":{"description":"The status of the prediction","type":"string","enum":["Success","BadRequest","InternalError"],"title":"PredictStatus"}},"title":"PredictResponse"},"example":{"status":"InternalError","error_message":"Oops, the server couldn't predict","model_name":"my_model_name","duration_ms":12}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-model-predict.api.mdx b/website/docs/api/HTTP/get-model-predict.api.mdx index ae93a5ccf..46e33c379 100644 --- a/website/docs/api/HTTP/get-model-predict.api.mdx +++ b/website/docs/api/HTTP/get-model-predict.api.mdx @@ -5,7 +5,7 @@ description: "Make a ML prediction using a specific model." sidebar_label: "ML Prediction" hide_title: true hide_table_of_contents: true -api: eJztV99v2zYQ/leIe1kKKP6RNcCmt2wohgAJVqTdw2AYLkOdLDYUqZJHr4ah/304SomkOFibAX3zQ2BHx/vB7/vurDsAyW2AfAVX17DOoMCgvG5IOws53MoHFFLc3ojGY6EVPxYxaLsVUoQGlS61ErUr0MwgA9egl3zmuoActkibZNr0zpBBI72skdBzygNYWSPk3UcGmlM2kip4XsfHCgUfEq4UVGGXUZATdVfgqLp/NFVci8cvUXssICcfMYOgKqwl5AegfcNJA3ltt9C2az4cGmcDBrZfLBb8Ma3g/ZChlgWKEJXCEMpozB4yUM4SWmI/2TRGqwTD/HNg58Nxcnf/GRMgQ5krCCQpBsigQ61HpYgdpps6MEGNZ5RJd7WOjUN0bQm36F+EkXSNguQDWsZPuboxSJhQHaF4pq2otTE6oHK2CG+4Km11HWvIF20G6L3zmxpDkFscUq8eYc3ARmOOFcUlJF/R+wrdUcpAYCBRSm2wgHaCwhFr3yeQGLAQpfPPbjcE36EPuqPoFfX3Xse5OPAozSiq9F7uR0E14YQxG+v7RFjpfC0JciiNk8QBj/OPePIYoqFM0L7RShqzF9KKlIyrSzECB+mldSRrDtfZHm8zqj87Ah0t87+CD536IYPfZHHXMQcZXFtCb6V5xwTzNUmTwaF7PnRVtO2R5a5vQK4Vv0oWZeqbvuxRwrEqoN5vJr3yjFVYzhYwpWS1mL29zBaz9He5nrZXvrz4uW25vLcvzYBru5NGF09SJTfwf5oBpxlwmgE/dAZM0jzTHvztotjKHYqa3wfu5dCl+dm3psazEdBNgMuXJ0B3ORHQ79D3KnZKRe+xEEVkjKbwnabCaSqcpsKPmwrTyMeD4U/XhCzV3/esctEU9icSw1by2unAKkGqXL/lpL2GKshhvlvOk3OYH9i9nQ9JuvTd3hO9gRwqoiafz41T0lQuUP7L4tfFkYBv2CwK3KFxTY2W+ovMxO/OlnobPaalR3w6P+eIn2bAK01AFb2mfconG715QP6+Zpu2pUsS66H20XLzv9g7odEKCzEcMVoh85E/rW9XjVQVnl+kly1doCVdavRTS5vB+L1suZwtzqMNJO9N4rZxgWppR2Fvb8T7seQmtR2GwfraLbWXLuFXmjdG6tT1iZFDz+MKdstHWbCU814Kj2SuM2C++ODhcC8D/uVN2/LjLxF9gjmDnfQ6XY4JKHTg7wXkpTQB/+MyZ3f93H8j/sfW++Ld+ofS8pzZSRP5P8ggKaJDu123GVQoC6ZtdehNV0phQyOno18wVtNTK/zx7iO07b/+bq2l +api: eJztV99v2zYQ/leIe1kKKLaTtcCmt2wohgAJVqTdw2AYLkOdLDYUqZJHr4ah/304SomkKNiWAX3zQ2BHx/vB7/vurDsCyV2AfA1X17DJoMCgvG5IOws53MoHFFLc3ojGY6EVPxYxaLsTUoQGlS61ErUr0CwgA9egl3zmuoAcdkjbZNr2zpBBI72skdBzyiNYWSPk3UcGmlM2kip4XsenCgUfEq4UVGGXUZATdVfgqLq/NFVci8evUXssICcfMYOgKqwl5EegQ8NJA3ltd9C2Gz4cGmcDBrZfrlb8Ma3gw5ChlgWKEJXCEMpozAEyUM4SWmI/2TRGqwTD8ktg5+M8ubv/ggmQocw1BJIUA2TQodajUsQO020dmKDGM8qku1rHxiG6toQ79C/CSLpGQfIBLeOnXN0YJEyojlA801bU2hgdUDlbhDdclba6jjXkqzYD9N75bY0hyB0OqdePsGZgozFzRXEJyVf0vkJ3lDIQGEiUUhssoJ2gMGPtvwkkBixE6fyz2w3B9+iD7ih6Rf291zwXBx6lGUWV3svDKKgmnDBmY32fCCudryVBDqVxkjjgPP+IJ48hGsoEHRqtpDEHIa1Iybi6FCNwkF5aM1lzuM72eJtR/dkMdLTM/xo+duqHDH6RxV3HHGRwbQm9leY9E8zXJE0Gh+752FXRtjPLXd+AXCt+kyzK1Dd92aOEY1VAfdhOeuUZq3CxWMGUkvVq8fZdtlqkv3ebaXvlF5c/ti2X9/alGXBt99Lo4kmq5Ab+TzPgNANOM+C7zoBJmmfagz9dFDu5R1Hz+8C9HLo0P/u3qfFsBHQT4N3LE6C7nAjo9+h7FTulovdYiCIyRlP4TlPhNBVOU+H7TYVp5Plg+N01IUv19z2rXDSF/YHEsJW8djqwSpAq1285aa+hCnJY7i+WyTksj+zeLockXfpu74neQA4VUZMvl8YpaSoXKP9p9fNqJuAbNosC92hcU6Ol/iIL8auzpd5Fj2npEZ/Pzzni5wXwShNQRa/pkPLJRm8fkL9v2KZt6ZLEeqh9tNz8L/ZOaLTCQgxHjFbIfORP69tVI1WF55fpZUsXaEmXGv3U0mYwvJddLlaL1Xm0geS9SdQ2LlAt7Sjq7Y34MFbcpLTjMFdfu6T2yiX8RsvGSJ2aPhFy7Glcw/7iURWs5LxXwiOXmwyYLj54PN7LgH9407b8+GtEn1DOYC+9Tpdj/Asd+HsBeSlNwH+4zNldP/bfiP+x9L54t/6htDxm9tJE/g8ySILo0G43bQYVyoJZWx9705VS2NDIafYDxmJ66oTf3n+Ctv0blVStdA== sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/get-models.ParamsDetails.json b/website/docs/api/HTTP/get-models.ParamsDetails.json new file mode 100644 index 000000000..a060627c4 --- /dev/null +++ b/website/docs/api/HTTP/get-models.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"format","in":"query","description":"The format of the response (e.g., `json` or `csv`).","required":false,"schema":{"type":"string","enum":["json","csv"],"title":"Format"}},{"name":"status","in":"query","description":"If true, includes the status of each model in the response.","required":false,"schema":{"type":"boolean"}},{"name":"metadata_fields","in":"query","description":"A comma-separated list of metadata fields to include in the response (e.g., `supports_responses_api`)","required":false,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-models.RequestSchema.json b/website/docs/api/HTTP/get-models.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-models.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-models.StatusCodes.json b/website/docs/api/HTTP/get-models.StatusCodes.json new file mode 100644 index 000000000..d975ef4e6 --- /dev/null +++ b/website/docs/api/HTTP/get-models.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"List of models in JSON format","content":{"application/json":{"schema":{"type":"object","description":"Response wrapper for the `/v1/models` endpoint (OpenAI-compatible format).","required":["object","data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Model information returned in the `/v1/models` response (OpenAI-compatible format).","required":["id","object","owned_by"],"properties":{"datasets":{"type":["array","null"],"items":{"type":"string"},"description":"The datasets associated with this model, if any"},"error":{"oneOf":[{"type":"null"},{"description":"An optional error type/code for the model status.\nOnly populated when `status=true` and the model status is `Error`.\nExample:\n`{ \"category\": \"model\", \"type\": \"auth\", \"code\": \"model.auth\" }`.","type":"object","required":["category","type","code"],"properties":{"category":{"description":"High-level component category where the error originated.","type":"string","enum":["dataset","model","worker","runtime"],"title":"ComponentErrorCategory"},"code":{"type":"string","description":"Stable machine-readable code (`{category}.{type}`), e.g. `dataset.auth`."},"type":{"description":"Canonical error type intended for programmatic handling.","type":"string","enum":["auth","connection","timeout","validation","not_found","permission","rate_limit","internal","unknown"],"title":"ComponentErrorType"}},"title":"ComponentError"}]},"error_message":{"type":["string","null"],"description":"An optional error message describing why the model entered an error state.\nOnly populated when `status=true`, the model status is `Error`, and an error message was recorded.\nThis value is intended for user-visible display."},"id":{"type":"string","description":"The name/identifier of the model"},"metadata":{"oneOf":[{"type":"null"},{"description":"Optional metadata fields, included when requested via query parameters","type":"object","required":["supports_responses_api"],"properties":{"supports_responses_api":{"type":"boolean","description":"Whether this model supports the Responses API"}},"title":"ModelMetadata"}]},"object":{"type":"string","description":"The type of the object (always `model`)"},"owned_by":{"type":"string","description":"The source from which the model was loaded (e.g., `openai`, `spiceai`)"},"status":{"oneOf":[{"type":"null"},{"description":"The status of the model (e.g., `Ready`, `Initializing`, `Error`)","oneOf":[{"type":"string","description":"The component is initializing and not yet ready","enum":["Initializing"]},{"type":"string","description":"The component is ready to accept connections","enum":["Ready"]},{"type":"string","description":"The component is disabled and not running","enum":["Disabled"]},{"type":"object","description":"An error occurred in the component, with an optional error message","required":["Error"],"properties":{"Error":{"type":["string","null"],"description":"An error occurred in the component, with an optional error message"}}},{"type":"string","description":"The component is in the process of refreshing its state","enum":["Refreshing"]},{"type":"string","description":"The component is in the process of shutting down","enum":["ShuttingDown"]}],"example":"Ready","title":"String"}]}},"title":"ModelInfo"},"description":"The list of models"},"object":{"type":"string","description":"The type of the response (always `list`)"}},"title":"ModelListResponse"},"example":{"object":"list","data":[{"id":"gpt-4","object":"model","owned_by":"openai","datasets":null,"status":"ready","error":null,"error_message":null},{"id":"text-embedding-ada-002","object":"model","owned_by":"openai-internal","datasets":["text-dataset-1","text-dataset-2"],"status":"error","error":{"category":"model","type":"auth","code":"model.auth"},"error_message":"Invalid API key"}]}},"text/csv":{"schema":{"type":"string"},"example":"\nid,object,owned_by,datasets,status,error,error_message\ngpt-4,model,openai,,ready,,\ntext-embedding-ada-002,model,openai-internal,\"text-dataset-1,text-dataset-2\",error,model.auth,Invalid API key\n"}}},"500":{"description":"Internal server error occurred while processing models","content":{"application/json":{"schema":{},"example":{"error":"App not initialized"}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-models.api.mdx b/website/docs/api/HTTP/get-models.api.mdx index 0930a7355..2315bdc97 100644 --- a/website/docs/api/HTTP/get-models.api.mdx +++ b/website/docs/api/HTTP/get-models.api.mdx @@ -5,7 +5,7 @@ description: "List all models, both machine learning and language models, availa sidebar_label: "List Models" hide_title: true hide_table_of_contents: true -api: eJy9Vt9v2zYQ/lcIPjUA7TjBBmx6C9puyNAsQNs9JUZMiyfrOopkScqJZ+h/H46UZDtx0qzD9mSLP7777r674215lKvAixt+ccnngisIpUcX0Rpe8A8YIpNas8Yq0EGwpY01a2RZowGmQXqDZsWkUUxLs2rlCsajci1Ry6UGhobFGphvTcQGplxw68BLsnGpeMFXEO/yLS64k142EMETqS03sgFe8Mr6RkYuOBKtry34DX9M9nMNLJ9jtsoWIThrArA3MF1NBVt8CdYsmPVsUYb14oSoePjaogfFi0rqAIKHsoZG8mLL48aR7RA9mhUXHEzbUKQIhQtehjVFLGLUdOyXTLHrxMg6RBnb8DLry4pF34JgaErdKgiJeb5JfoAs6xzTMY69V69jv7RWgzQHvBqIUsko7yoErb5B8IKVtmnkJABJE0ExTVlhKzbAsAzDoh2ceEx1FCC0zlkfw92wE+6kw8XJPxGi6+Z0ur9P++ezGf0cyV1imTKLGP326fp3NmZSaU0EE+midE5jmRLyNIlbbJ9at8svUMYDoje7RYoDZYPzlNsRM7G0uoOQ3ksKMEZowregUVGhDDv23oC6W26O2wgQ9/BuRkOm1ZpuPDY4RPJYCQ14TIZgS0yK32OsWawx5GgKhhWTZkMAqI6VylNYSr2hLhMIXR4yiCCsgesq1XwPlshT1r4UpeMJ9TRKz5w7WidjSV8N9Lp5N2rxKm/pxIG37I3U93IT2CJ9Lk7I/VHUV2EG2/oSWOVtw+5rLOs99HsZmLZSgRpLzTowEhdUdA5LkJht9j3pxYAfsT32oz2PekMepNqQHTQYUWr8C82KvsF761NtP9dJL/ducME/EhIX/B0GejioAN4TRtqqPIQ6n/tUtzGiWb2z92a/Bb+1jbMGTPyUnezm+2peOzAXl1c5917Q85k7H/vEoSDCg2wcHdiOKJy64tAIKKiYnjYXJz/s6rjgOfX3pedZqP5qrmRSYicVTxFOyiTQCA9xAs0SlEKzmkglJ7PZ+ausTNBE8EbqA3M3GbJfmJyRYvsL5xTkx2xybOEhntJDeKxj7rrMGC9+a1CJzFMM7MTARGQbtyaFTeRek4kLkczemuPOH5wdnRS3jxwTh27d8gGVd+TNj8fekcsejAXwa/AsZTWzZdl6T62xRg3MeVtCCDQMjZPMax+Yw3xK8PTsOseMjWwsKlBEsstds7b94JQmpljzgp+uz05H25lrHqFar3nB6xhdcXqqbSl1bUMsfpr9PHvSZz7QNlOwBm1dAyb2Xk/ZW2sqXLUe8mOwmEwIcTHl9BoHKFuPcZPsSYd3fwL9n9MemsqmpOhLqh8Dj7c46lSK7Y5oLIFqrhhnlwsnyxom51MijwpMxArBH+50gpP7GfhsenY2nU1aEyJ1Fdp0NsRGmj3YNC1cDeE7YLbdKfmfDcR9xaRyclqiIZZJuG2v7w1fU132Cs8FJxFpebtdygB/eN11tJyHONJBDV10GKie9er7JuejnJPwu3F9LXVLh/Kz8mpC/24ofoHYOJF/J7H/axh+wYWnw/vOlzl9eExpTuUneA1SUXXcbPvrF2UJbl+aJ72JUMYW8+v7z7zr/gZWCOJU +api: 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 sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/get-namespace.RequestSchema.json b/website/docs/api/HTTP/get-namespace.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-namespace.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-namespace.StatusCodes.json b/website/docs/api/HTTP/get-namespace.StatusCodes.json new file mode 100644 index 000000000..5178d858e --- /dev/null +++ b/website/docs/api/HTTP/get-namespace.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Namespace exists"},"400":{"description":"Invalid namespace format"},"404":{"description":"Namespace does not exist"}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-namespace.api.mdx b/website/docs/api/HTTP/get-namespace.api.mdx new file mode 100644 index 000000000..367b819b1 --- /dev/null +++ b/website/docs/api/HTTP/get-namespace.api.mdx @@ -0,0 +1,62 @@ +--- +id: get-namespace +title: "Check if a namespace exists." +description: "This endpoint returns a 200 OK response if the namespace exists, otherwise it returns a 404 Not Found response." +sidebar_label: "Check if a namespace exists." +hide_title: true +hide_table_of_contents: true +api: eJzFU8Fu2zAM/RWBZ8V2gxw23YZiG4IN3SU7FUGr2ExE1JY0iXZbGP73gUmWpOmw604SRPK9R/JpBLa7DOYeljVuMO1graHBXCeKTMGDgZWjrNA3MZBnlZD75LOyal5V6sc3lTDH4DMq2ip2qLztMEdbo8IXypy1CuwwPZOkXNYvqoW6C6y+hN43J5gCNISIyQr7sgEDO+SHEyho+JOZwYwwryo53iq+u5IAk4bF3xKXfrAtNReatyF1lg8Fi38hNwGz8oEPFDBNGjpkF46KQUO07MBAOdyUdJhteeLJ5Xi6T6AhYxowyR5G6FMLBhxzNGXZhtq2LmQ2H6qPFVzv5ruEVYMDtiF26FkdkAp1G/yWdn1C9Uzs1ONsJoiPBUxroav7RPy657ORHp5Q7muJkd8GaZyJWwQDqfdMHb6jXjlUOVKNjTqntFSjzyj10h8Y+BRt7XA2L0Q8NeiZtoTpbWTSIO0fgOdFVVSz3me2mxYlFkPmzvoL1FuH9ZM4zr7zW3GtdIQ6eEbP/8XL/BpFMOMLl7G15KWh/YrHo0PuYbiR2Rz/n4azS0CDOVt/rUGcIBXjuLEZf6Z2muT5V49pv0ANg020n5us88KTXz+vYJp+A4BPWOM= +sidebar_class_name: "get api-method" +info_path: docs/api/HTTP/runtime +custom_edit_url: null +proxy: http://localhost:8090 +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +This endpoint returns a 200 OK response if the namespace exists, otherwise it returns a 404 Not Found response. + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/get-spicepods.ParamsDetails.json b/website/docs/api/HTTP/get-spicepods.ParamsDetails.json new file mode 100644 index 000000000..620ed37b0 --- /dev/null +++ b/website/docs/api/HTTP/get-spicepods.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"format","in":"query","description":"The format of the response. Possible values are 'json' (default) or 'csv'.","required":false,"schema":{"type":"string","enum":["json","csv"],"title":"Format"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-spicepods.RequestSchema.json b/website/docs/api/HTTP/get-spicepods.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-spicepods.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-spicepods.StatusCodes.json b/website/docs/api/HTTP/get-spicepods.StatusCodes.json new file mode 100644 index 000000000..d23c4a54d --- /dev/null +++ b/website/docs/api/HTTP/get-spicepods.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"List of spicepods","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["name","version"],"properties":{"datasets_count":{"type":"integer","description":"The number of datasets in this spicepod","minimum":0},"dependencies_count":{"type":"integer","description":"The number of dependencies in this spicepod","minimum":0},"models_count":{"type":"integer","description":"The number of models in this spicepod","minimum":0},"name":{"type":"string","description":"The name of the spicepod"},"version":{"type":"string","description":"The version of the spicepod"}},"title":"SpicepodSummary"}},"example":[{"name":"spicepod1","version":"v1.0.0","datasets_count":3,"models_count":2,"dependencies_count":5},{"name":"spicepod2","version":"v2.0.0","datasets_count":4,"models_count":3,"dependencies_count":2}]},"text/csv":{"schema":{"type":"string"},"example":"name,version,datasets_count,models_count,dependencies_count\nspicepod1,v1.0.0,3,2,5\nspicepod2,v2.0.0,4,3,2"}}},"500":{"description":"Internal server error","content":{"text/plain":{"schema":{"type":"string"},"example":"Internal server error"}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-spicepods.api.mdx b/website/docs/api/HTTP/get-spicepods.api.mdx index 253103f77..724f3b148 100644 --- a/website/docs/api/HTTP/get-spicepods.api.mdx +++ b/website/docs/api/HTTP/get-spicepods.api.mdx @@ -5,7 +5,7 @@ description: "Get a list of spicepods and their summary details." sidebar_label: "List Spicepods" hide_title: true hide_table_of_contents: true -api: eJytVU1v2zgQ/SvEXNIFGH+lAVrdisU2KNDDAumeskZKS2OLLUWy5EjbQNB/XwylWLKtokXQkw0N+d6bNx9sgdQhQvYAd2gxKANbCQXGPGhP2lnI4A5JKGF0JOH2Inqdo3dFFMoWgkrUQcS6qlR4EgWS0iYuQILzGBQDfCgggwPS4/EiSPAqqAoJAzO3YFWFkMHehUoRSNBM+63G8ATnYj6VKPpzLIZKFAGjdzbiQvztYtQ7g6JRpsYoVEBx9SU6eyVeFbhXtaE/hAviKo/NFYsM+K3WAQvI9spElBDzEisFWQv05FlSpKDtASSgrSt2ieFAQh4bNoo0GT72vlfedVsG7fVEhtmsVvxzmsPHcysZ0FlCS3xYeW90nsxbJrqsvRSmQlDsjias4uS7233BnE5ye+j9ldBgiKxgK8EHLhDpXmWhSEWk+Ji7utcwoGlLeMAwWwVbVzsMnMfzdaGtoFLHY2IgodJWV2zdqmMQj7ZAm2t8MdcE4qd8lSvQvJSpv/xTjr53LxtmBlpV+Ny0R7RuLMsvgQyHL3G6sRvvh4/3/VimGH5XlefoOG7Pd9eT1sigWS9WixVznzXFzbmfm/mC3nbygmJzSrH5AcXrc4qbeYpNt+V08TsteRDn5mOwcJp5EiUHGfKUW0555SXnv/boluwdkjdyI2/H7xvZpyVfcwQ6Nv12bvo/WMJglRERQ4NBYAgunG6AlJk3Ss/P/lxu86hdklEhlW5Yw2n5UgkZLJv1crqB+ov9Qq6DgQxKIp8tl8blypQuUvZm9XZ10ZUfOSwKbNA4X6GlQcJC/OnsXh/qgOI/TaX4fH3NiJ8XwGsyYl4HTU+JT3n9+BX5/5Zj2u5dyndo6FBb0mmFXQ5ESqEQ4xGjc7QxzeTQhe+8yku83qSe0wVa0nuN4TQyHURYL9brxeq6tpHUziAHvYtUKTuBTWv8fuLgibh2LOjLXtCh2JNe6GRfmHYo4QM0PLtjEbcSuE4cadudivhPMF3Hn/vHlK0udOSUxjfvh6p/61M7m00q+fjsJyzIIPVHo4JO3nNPSChRFVyyh3a49S7P0U9vXTybjHJs/bu/PkHX/Q99RRND +api: eJytVU1v2zgQ/SvEXNICjO04DdDVrSi6QYAeCqR7yhopLY0tZimSJUfaBoL++2IoxZJtFV0EPdnQkO+9efPBFkjtI2QPcIsWgzKwkVBgzIP2pJ2FDG6RhBJGRxJuJ6LXOXpXRKFsIahEHUSsq0qFZ1EgKW3iAiQ4j0ExwF0BGeyRHg8XQYJXQVVIGJi5BasqhAx2LlSKQIJm2u81hmc4FfO1RNGfYzFUoggYvbMRF+KLi1FvDYpGmRqjUAHFxVN09kK8KXCnakNvhQviIo/NBYsM+L3WAQvIdspElBDzEisFWQv07FlSpKDtHiSgrSt2ieFAQh4bNoo0GT72Z6+86zYM2uuJDLNerfjnOIfPp1YyoLOElviw8t7oPJm3THRZey5MhaDYHU1Yxcl3t33CnI5ye+j9ldBgiKxgI8EHLhDpXmWhSEWk+Ji7utcwoGlLuMcwWwVbV1sMnMfLdaGtoFLHQ2IgodJWV2zdqmMQj7ZAm2t8NdcE4pd8lSvQvJapv/xLjr53zxtmBlpV+NK0B7RuLMv/AhkOn+N0YzfeDx/v+7FMMfyhKs/Rcdxe7l5NWiOD5mqxWqyY+6Qprk/9XM8X9KaTZxTrY4r1TyjenVJcz1Osuw2niz9oyYM4Nx+DhdPMkyg5yJDH3HLKK885/7YHt2TvkLyWa3kzfl/LPi35jiPQsek3c9N/ZwmDVUZEDA0GgSG4cLwBUmbeKD0/+3O5zaN2SUaFVLphDaflSyVksGyultMN1F/sF3IdDGRQEvlsuTQuV6Z0kbL3qz9WZ135mcOiwAaN8xVaGiQsxEdnd3pfBxT/airFt8tLRvy2AF6TEfM6aHpOfMrrx3+Q/284pu3OpXyHhg61JZ1W2PlApBQKMR4xOkcb00wOXfjBq7zEy3XqOV2gJb3TGI4j00GEVMnL2kZSW4Mc8y5SpewENW3x+4mBR9rasZ6ve0CHWk9aoZN9Xdqhgg/Q8OiONdxI4DJxpG23KuJfwXQdf+7fUna60JFTGp+8n6r+rS/tbDap4uOrn7Agg9QejQo6ec8tIaFEVXDFHtrh1oc8Rz+9dfZqMsqh828/fYWu+w+wKhMS sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/get-status.ParamsDetails.json b/website/docs/api/HTTP/get-status.ParamsDetails.json new file mode 100644 index 000000000..175653ca5 --- /dev/null +++ b/website/docs/api/HTTP/get-status.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"format","in":"query","description":"The format of the response, either \"json\" or \"csv\". Defaults to \"json\".","required":false,"schema":{"type":"string","enum":["json","csv"],"title":"Format"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-status.RequestSchema.json b/website/docs/api/HTTP/get-status.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-status.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-status.StatusCodes.json b/website/docs/api/HTTP/get-status.StatusCodes.json new file mode 100644 index 000000000..d153ee6d8 --- /dev/null +++ b/website/docs/api/HTTP/get-status.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"List of connection statuses","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["name","endpoint","status"],"properties":{"endpoint":{"type":"string","description":"The endpoint of the connection (e.g., URL or IP address)"},"name":{"type":"string","description":"The name of the connection (e.g., \"http\", \"flight\", \"metrics\", \"opentelemetry\")"},"status":{"description":"The status of the component (e.g., Ready, Initializing, Disabled, Error, etc.)","oneOf":[{"type":"string","description":"The component is initializing and not yet ready","enum":["Initializing"]},{"type":"string","description":"The component is ready to accept connections","enum":["Ready"]},{"type":"string","description":"The component is disabled and not running","enum":["Disabled"]},{"type":"object","description":"An error occurred in the component, with an optional error message","required":["Error"],"properties":{"Error":{"type":["string","null"],"description":"An error occurred in the component, with an optional error message"}}},{"type":"string","description":"The component is in the process of refreshing its state","enum":["Refreshing"]},{"type":"string","description":"The component is in the process of shutting down","enum":["ShuttingDown"]}],"example":"Ready","title":"String"}},"title":"ConnectionDetails"}},"example":[{"name":"http","endpoint":"http://127.0.0.1:8080","status":"Ready"},{"name":"flight","endpoint":"http://127.0.0.1:9000","status":"Initializing"},{"name":"metrics","endpoint":"N/A","status":"Disabled"},{"name":"opentelemetry","endpoint":"http://127.0.0.1:4317","status":"Error"}]},"text/csv":{"schema":{"type":"string"},"example":"name,endpoint,status\nhttp,http://127.0.0.1:8080,Ready\nflight,http://127.0.0.1:9000,Initializing\nmetrics,N/A,Disabled\nopentelemetry,http://127.0.0.1:4317,Error"}}},"500":{"description":"Error converting to CSV","content":{"text/plain":{"schema":{"type":"string"},"example":"Error converting to CSV"}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-status.api.mdx b/website/docs/api/HTTP/get-status.api.mdx index dfc9bda55..f5eb87bd7 100644 --- a/website/docs/api/HTTP/get-status.api.mdx +++ b/website/docs/api/HTTP/get-status.api.mdx @@ -5,7 +5,7 @@ description: "Return the status of all connections (http, flight, metrics, opent sidebar_label: "Check Runtime Status" hide_title: true hide_table_of_contents: true -api: eJy1VlFv2zgM/isCn1ZAdZzeHdb5rWh3Q4FiOLTdvTTBptpMrM2WPInOlgv83w+U7MS+pNgedk9xTOoj+X0k5R2QWnvInuAdGnSqgqWEAn3udEPaGsjgHql1RlCJwpOi1gu7EqqqRG6NwZy9vHhVEjVSrCq9LkmKGsnp3EthGzSEFfKL7ZnQEce1hnSNCUiwDTrFGLcFZLBG+hiDgIRGOVUjoeP8dmBUjZDByrpaEUjQnNzXFt0W/pvyY4ki+nGuISL6xhqPUqCmEp1YwGdvzQKE5efcbxaQiBtcqbYiL8juHThJh19b7bCAbKUqjxJ8XmKtINsBbRvOypPTZg0S0LQ108mHQTIwM0qaKnb7MybfdUsGjSl5hrlIU/6ZlnGnfSjgQHSvADI9uTWEhviYappK54HGWQic7Y5TVM4ppkoT1n703j5/xpwmVT5FsrmaorHasLWXZSmhcSwa6Zj53uUEGceqDN6DLqPSXmGyTqT4cH/Hmtz+JVRROPT+DDrZi/8zEdjzZfQFcKMugJ9is8bnvmHjn0nTLiAk0Jd/pNHjZCxi0LqxBg0NMe9RFVspbo0mrSr9jzZrKW60V88VFlK8dc46KZDy5Azkiw01Pg4SAihIGHBAQgAKppVDX0a/h7Il0mZ9Y7+ZcSdeD1k+xMK6bmwbaLtBUrqKVvyu6obth1lkLsddEt9ks9n84nWSJmkyzy7Ty/TQPVmfdycP8xxU+AHKmzSdoEzIGIH1Mk7R3s+uxmf3jI3OTRT/QS6//zZ/PcaLtHdLJhC/04xH/tT89YqOmQzh5RBMRsiFCbv0JJMy0Lcw/Z49yZMck7Mwwyp+P7uSQ+kLMyn4GIdrlH1hrP0fp9ZTsPOMbXgbmDVvzeuHv6erKVDSVEqfXkqnSHkJtwup1Eil7e+KcElQCRnMNvPZ/uLw6DbDrdG66iBiZXNVldZTdpm+SY/Wxx2bRYEbrGxT8wRHpERcW7PS69ah+KapFJ/OzxnxUwK8yD3mrdO0DfFUoz9+QX5esk2blQ3l9qPV33wnN5dvdI6FOLhUOkfjw97r+/SqUXmJ5xcJJ68LNKRXGt3U0kng8iPwPJnPk/S8NZ5YejY21lOtzAj2usT8i7iPgcXDwOMkxd1B1f/5k6BvjVHndDLquOvlfoLNfHIlsab8erd7Vh4/uKrr+HX8OmBZimHohxv8xdp+9bfDyWpChxw+ZTaqatkptNNGOR2k4haSUKIqWOGnXX/qKs+xGZ86uv0ZZT8m794+Qtf9C6BaWDc= +api: eJy1Vl1v2zYU/SsEnxqAke1sQ1O9GUlXBAi6IUn3YhstI11bbClSJa/ceob++3BJSZZqB9mC7skyP879OOde3j1HufE8XfB3YMBJzVeC5+AzpypU1vCU3wHWzjAsgHmUWHtm10xqzTJrDGR0yrNXBWIl2FqrTYGClYBOZV4wW4FB0EALuzOmIo6rDaoSEi64rcBJwrjJeco3gB+jES54JZ0sAcGRf3tuZAk85WvrSolccEXOfa3B7fiPLj8UwOI58jVYBF9Z40EwUFiAY0v+2Vuz5MzSd+a3S56wa1jLWqNnaPsD5KSDr7VykPN0LbUHwX1WQCl5uue4q8grj06ZDRccTF1SOukyFwRMGUWFmo79Hp1vmhWBRpc8wVxMp/QzDuNW+RDAIdEtA0DpyaxBMEjXZFVplYU0ToLhdH/sonROUqoUQukH6/bxM2Q4inIRk03R5JVVhnZbWlaCV45IQxU974+cSMYxK93pjpdBaK8g2SSCfbi7JU5u/mQyzx14f8Yb0ZL/byzQyafRl5yEuuT0FcUav1vBxj8j0S55cKAN/4ijh1FZRKNlZQ0Y7Gzegcx3gt0YhUpq9bcyG8GulZePGnLB3jpnnWCAWXJGBWHgj3UQ/POxHkwpz9QAn0mTM2OR7QCZI/sDaQ4d4atG/GdLAZBqRGYZVDhsBAMzIewX4edtbvooXG3MuLy69I3weyWP8eeGAeWY2SyrnYO8a0O9UcG+KSyYNMyGS1K3N0rwXm7gh+IIjB1XQlzuRbo4xGtqfaKx/gS/muYF6W2tVM5m4INsHawd+IKEo9AHPcOIyW77RXQe2/NFjUjWcvvNDAzdt+vXtLyiJgnfZVmF1nnXqrhrpffRetMclq56HV4DSqV92O0hDm8I9YBhd4sr6WQyu3idTJNpMksvp5fTQ9frzFP03TsUusczKG+m0xHKqPQGYG37GaO9n8yHd3vJD+6NOtUzvvz6y+z1EC/KtVlRAuE7TuipOvVutDQPMxnMi86YiJBLE2aAk5kUIX1L084HJ/MkhslZmm6EeD+Ziy70pRkFfIxDMYo2MOL+t1PPatinprWl2jUb6mRX93+Nn9SQkkpLdfoxPZWUp3Cb4EoJWNh2xgnDDRY85ZPtbNIPPB7ctpt2aqcPJGqbSV1Yj+nl9M30qOJuaZvlsAVtq5KqLiIl7MqatdrUDmIj+XR+ToifEk615SGrncJdsCcr9fEL0HeoO2XWNoTbllY7sZ0sdl+pDHJ2OKJVBsaH97rV6bySWQHnFwk5r3IwqNYK3HinEZzCj8AXxOh5bTwS87RXWY+lNAPUqwKyL+wu2mX3XRpHHu4PpP7Pk2yrjIFwGhFp3LdsL/h2NpqkiFJa3u8fpYcPTjcNLcehlljpXsJ+8Hwytp898p6MJgjkMIFvpa7pUFDTVjoVqCIFCV6AzIngxb69NQ+zwuDW0dBKKH2VvHv7wJvmH3KNTxI= sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/get-table.ParamsDetails.json b/website/docs/api/HTTP/get-table.ParamsDetails.json new file mode 100644 index 000000000..f041c07e1 --- /dev/null +++ b/website/docs/api/HTTP/get-table.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"namespace","in":"path","description":"The namespace of the table.","required":true,"schema":{"type":"string"}},{"name":"table","in":"path","description":"The name of the table.","required":true,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-table.RequestSchema.json b/website/docs/api/HTTP/get-table.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-table.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-table.StatusCodes.json b/website/docs/api/HTTP/get-table.StatusCodes.json new file mode 100644 index 000000000..1c218dab6 --- /dev/null +++ b/website/docs/api/HTTP/get-table.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Table exists","content":{"application/json":{"schema":{"type":"object","required":["metadata"],"properties":{"metadata":{"type":"object","required":["format-version","table-uuid","location","schemas","last-updated-ms","last-column-id","last-sequence-number","current-schema-id","partition-specs","default-spec-id","last-partition-id","sort-orders","default-sort-order-id"],"properties":{"current-schema-id":{"type":"integer","format":"int32","minimum":0},"default-sort-order-id":{"type":"integer","format":"int32","minimum":0},"default-spec-id":{"type":"integer","format":"int32","minimum":0},"format-version":{"type":"string","enum":["V2"],"title":"TableFormatVersion"},"last-column-id":{"type":"integer","format":"int32","minimum":0},"last-partition-id":{"type":"integer","format":"int32","minimum":0},"last-sequence-number":{"type":"integer","format":"int64","minimum":0},"last-updated-ms":{"type":"integer","format":"int64"},"location":{"type":"string"},"partition-specs":{"type":"object"},"schemas":{"type":"object","description":"Iceberg schemas, see ``."},"sort-orders":{"type":"object"},"table-uuid":{"type":"string","example":"2b9da507-2c07-4bb3-9f0b-8df66a5e9e53"}},"title":"TableMetadata"}},"title":"LoadTableResponse"}}}},"404":{"description":"Table does not exist"},"500":{"description":"An internal server error occurred while getting the table","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","type","code"],"properties":{"code":{"type":"integer","format":"int32","minimum":0},"message":{"type":"string"},"type":{"type":"string","enum":["NoSuchNamespaceException","BadRequestException","InternalServerError"],"title":"IcebergErrorType"}},"title":"IcebergError"}},"title":"IcebergResponseError"},"example":{"error":{"message":"Request failed. An internal server error occurred while getting the table.","r#type":"InternalServerError","code":500}}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-table.api.mdx b/website/docs/api/HTTP/get-table.api.mdx new file mode 100644 index 000000000..e6fc5b8f8 --- /dev/null +++ b/website/docs/api/HTTP/get-table.api.mdx @@ -0,0 +1,70 @@ +--- +id: get-table +title: "Get a table." +description: "This endpoint returns the table if it exists, otherwise it returns a 404 Not Found response." +sidebar_label: "Get a table." +hide_title: true +hide_table_of_contents: true +api: eJy1VlFv20YM/isH9mUDJEt1nLQRhgHZkBYBujykWV8CozlLtHWddKfcUU4CQ/994EmWlchplqZ7skzyyO/IjzxugOTKQXIFZyku0K5gHkCGLrWqImU0JHCZKydQZ5VRmoRFqq12gnIUJBcFCrUUigTeKUcuEIZytLfKIQu3xlLM4pk4NyQ+mFpnwqKrjHY4gQBMhVZyqLMMElghffVuIYBKWlkioWV8G9CyREj8j6tkyhaK8VWSchiDRtFbCrPc4eWYFm9qZTGDhGyNAbg0x1JCsgG6rziII6v0Cpom6ONuUT0f8xXh5mzc5saxfhrH/PMojk97m3AIIDWaUBPbyaoqVOqzGX1zbLwZBzOLb5jSA1hXUCLJTJLk8leWa0KqhdBrnvGwNLaUFK7ROoYZtAkL61plEEBhWliwvT0jL6SjsK4ySZiFZS9JTVGXOmzPscDhTY06xVDX5QIt37m2FjWFra/WtJKWFMcIXYWp8+VZyrog/3/gbmfoZc5YCo3NmGeDM72UrUZZGQPYpUdpwpWH2eakFR1MIYBSaVXWJSRx81SoV/jprvlyD49qNyJmAKjZ9gq+TDkXpKjALRM/+MNfurPNqIgvhzOu0g/6eEyc59wczfa6GVD0P3hoBmwft/iYp6O+anY9sqfnHs6CbmqL7kAgHKK4/i0nqlwSRbKSaY6TlaK8XkyUiVRrH3Ho6E136vfriQ86aIR9oAYNvY8hd7KsPCumi+NMHsbvwmkavwtni8VBeLyMF+H7bHl0JA/xGA8PeLQ+pNFf2zkz1HwyMvPai24qQtOwfhbPnpqLmUEntOleJMZ9uG+InmjBFbRaFsKhXaMVaK2xwqS+tzNxm6sCxQqJlF7tBvrPmrg+2niwtOJnp7VzcsVQvBUjynDPkGLpy1tn630feVvB0/Ph3Hyu0/x8+/Ke3qVYdXP/D5ldcD86GkrPuiJ89jU43SZlS4CO315+yTGH7Bgq9ym2pOkMBhwd5Lm/LXToxFKqArOJ+GGK+Df/TZeifRfsCpYcxnHTtIwukXLTbUD+MaMcEojWb/uW7dcZF2367ybyEV208b8Nv2c+ULsz1baABHgaJFHEU6nIjaPkfXwcj0bJJ1aLDNdYmKpETd2lJ+JPo5dqVVsUt4pycR2G7JGHxpzDpbVVdO/jyUp9/Qf5e846pZfGs6Wri601qRL3bk6uUilmYmdSqBS545N+BTvx0yycThi8ylCTWioe60NNE0D/jsF0Ek/isNaubV2evsZRKfXA60ckIXeFe4Bss+v1/3sP7uhCeEdRVUjln1Jfv03HhitYv+WLd4t6sFuFeXFJhotxSwqWthefB8CFZx+bzUI6/NsWTcPimxqtr1cAa2mVt+ZKZsrxdwbJUhYOv5OXXy66yfSr+P7WvfeGnVDqe2AERc3/IADPosGyz5v4qzD9DDgdi+ZNADnKjKl3tel0JykPtcGp0dPAHdG3+cfTS2iafwEUep9e +sidebar_class_name: "get api-method" +info_path: docs/api/HTTP/runtime +custom_edit_url: null +proxy: http://localhost:8090 +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +This endpoint returns the table if it exists, otherwise it returns a 404 Not Found response. + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/get-workers.ParamsDetails.json b/website/docs/api/HTTP/get-workers.ParamsDetails.json new file mode 100644 index 000000000..dfbffa5d7 --- /dev/null +++ b/website/docs/api/HTTP/get-workers.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"format","in":"query","description":"The format of the response (e.g., `json` or `csv`).","required":false,"schema":{"type":"string","enum":["json","csv"],"title":"Format"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-workers.RequestSchema.json b/website/docs/api/HTTP/get-workers.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/get-workers.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-workers.StatusCodes.json b/website/docs/api/HTTP/get-workers.StatusCodes.json new file mode 100644 index 000000000..8b8f74986 --- /dev/null +++ b/website/docs/api/HTTP/get-workers.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"List of workers in JSON format","content":{"application/json":{"schema":{"type":"object","description":"Response wrapper for the `/v1/workers` endpoint.","required":["object","data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Worker information returned in the `/v1/workers` response.","required":["name","is_llm"],"properties":{"description":{"type":["string","null"],"description":"A description of what the worker does"},"is_llm":{"type":"boolean","description":"Whether this worker can be used as an LLM model"},"name":{"type":"string","description":"The name of the worker"},"status":{"oneOf":[{"type":"null"},{"description":"The status of the worker (e.g., `Ready`, `Initializing`, `Error`)","oneOf":[{"type":"string","description":"The component is initializing and not yet ready","enum":["Initializing"]},{"type":"string","description":"The component is ready to accept connections","enum":["Ready"]},{"type":"string","description":"The component is disabled and not running","enum":["Disabled"]},{"type":"object","description":"An error occurred in the component, with an optional error message","required":["Error"],"properties":{"Error":{"type":["string","null"],"description":"An error occurred in the component, with an optional error message"}}},{"type":"string","description":"The component is in the process of refreshing its state","enum":["Refreshing"]},{"type":"string","description":"The component is in the process of shutting down","enum":["ShuttingDown"]}],"example":"Ready","title":"String"}]}},"title":"WorkerInfo"},"description":"The list of workers"},"object":{"type":"string","description":"The type of the response (always `list`)"}},"title":"WorkerListResponse"},"example":{"object":"list","data":[{"name":"round-robin","description":"Distributes requests between foo and bar models in a round-robin fashion.\n","is_llm":true},{"name":"fallback","description":"Attempts bar first, then foo, then baz if previous models fail.\n","is_llm":true}]}},"text/csv":{"schema":{"type":"string"},"example":"\nname,description,type,is_llm\nround-robin,\"Distributes requests between foo and bar models in a round-robin fashion.\",load_balance,true\nfallback,\"Attempts bar first, then foo, then baz if previous models fail.\",load_balance,true\n"}}},"500":{"description":"Internal server error occurred while processing workers","content":{"application/json":{"schema":{},"example":{"error":"App not initialized"}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/get-workers.api.mdx b/website/docs/api/HTTP/get-workers.api.mdx new file mode 100644 index 000000000..cf334915e --- /dev/null +++ b/website/docs/api/HTTP/get-workers.api.mdx @@ -0,0 +1,70 @@ +--- +id: get-workers +title: "List Workers" +description: "Returns a list of all registered workers in the runtime. Workers are configurable processing units that can perform tasks like load balancing between models or implementing fallback strategies." +sidebar_label: "List Workers" +hide_title: true +hide_table_of_contents: true +api: eJzdV99v20YM/leIe1oBxUkLDNj0FqzdkCFbgbZDH5IgpiXKuuZ0p95RdlND//vA0w/Llru16Z72lFi6Iz+S30dSO8W4Diq9Ue+dfyAf1F2icgqZ1zVrZ1Wq3hA33gZAMDowuALQGPC01oHJUw7b7iZoC1wS+MayrmgBvUVAT5A5W+h143FlCGrvMgpB2zU0VnMALpEhQws1+cL5ChjDQwCjHwiMwxxWaNBmcmFFvCWyULmcTADnQVe1oYosy+sCjVlh9gCBPTKtNYWFSpSryaPEc5WrVK2J73vQKlE1eqyI5Ud6s1MWK1KpEhjIKlFacvCxIf+ojjPzriTozklWYuwUamcDwQ+0WC8SWH4Izi4F5TILm+UzweLpY6M95Sot0ARKVMhKqlClO8WPtfgO7LVdq0SRbSqpjVhRicrCRsrDmo0c+7WD2LZ3YrRzHMTMi4sL+XMI9rov3qRav799/SeMgWbOMlmWm1jXRmcxYefRd7qbo3SrD5TxLClvhhRsPdY1eXEQc7M83zw/770vgWxeO235MCM3E6vIKNHWXorHugstPt1jQO9R6qKZqvDv2DpGgrZd0NpZ8JHdlA/sPUQ5pPUYZSRJonS4N6Y6gXLqdQB1s6+rbYyZC+0SJr9jqUQWAqrDA7mjoNrR7T7clXOG0M7jLYlLkvTrMBgRma0ImkA5YAC0cH39Rycnsd3Rf07FOfPl5MD7zrbcD4zcxCQ4S6+LKKneVoy6TY6JKba6W4fWRg29Icwflwksr6xmjUZ/1nYtv1957/zymej72Nc/4M5cVTtLlkGLCvYmAW0O1jE8EoMXpxMJTn2rO4niGz1Fg8AOMMuoZumIljI5HSZuYqxPsp/rIM01H6PwjbWHbeRlf+TA/hekcmmBJL3gsqzxfi+Q0WkCW82lEMjFS2j6GxWFgGs6kkws1lwq3eNvEMn342rbJ6S399KPLmGqp8JTKIU4MsOEwnRQyeH1k8o59xfKhuOMy93WThy97Z+/lMd3MgzoE8pMjM24Y/EwMt523tu7tt0/7LrilS2cCHiOyxxODjnUk+ar+oScmM9HNFt8DLAU48tnao5H5tUwS8TlGNRu9K7k8jAqJrPbu8bmZ96t9LwlvtQCddUwiSQ/NhQ4jEtF4VyUzwr9sGBoCwgTg1BgKLWzi1u7HwAp+4akyMPy0G8hc1UxU1WLR/RQaB84kbxEz/1/K/wMuoDa00a7Jgw4CtTmhM+ukPSJz2U5ODWm+8pMM6hurQBNJtgSOZ10pm/tJN7k9j9MmUpkm7vvtjlKJIJbOyQruf3u9Jy0H/Wufjy1E11ZJi8NIpDfkD/uLNtSH26r+6Xxa5elQ+JS1+zUZV3HFj1OH8oFpeCsiEvXL6lxOeVSpWqylKhEdWi7dbXxRqWqZK7T83PjMjSlC5z+dPHzxYx91/IactqQcbVszH3cC/ilX8+p653LszOxuFwoaSeBssZrfoz+sNb3DyT/x1Yjq1QkW6/dfvk/2QhCrTPKYX/E6IxE3ekonMsas5LOXiwEvM5lqS80+cM3baIk/M7wi8XF4uKssYFltMm72gWu0E6sxtX3/Zi+o+1sLOX/4kunV31sCbVBbSUlkSS7nkw3avNcJWq7/94Txsjz3W6Fgf7ypm3lcffRI0Ufdovxk+WLKXzaJ9FJ0JFl+++wDZpGDkVKbtDrWG+hYaJKwlxYcrPrb13GHWtyayZSsTJq7bdX71Tb/g3yIUk1 +sidebar_class_name: "get api-method" +info_path: docs/api/HTTP/runtime +custom_edit_url: null +proxy: http://localhost:8090 +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Returns a list of all registered workers in the runtime. Workers are configurable processing units that can perform tasks like load balancing between models or implementing fallback strategies. + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/head-namespace.RequestSchema.json b/website/docs/api/HTTP/head-namespace.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/head-namespace.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/head-namespace.StatusCodes.json b/website/docs/api/HTTP/head-namespace.StatusCodes.json new file mode 100644 index 000000000..5178d858e --- /dev/null +++ b/website/docs/api/HTTP/head-namespace.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Namespace exists"},"400":{"description":"Invalid namespace format"},"404":{"description":"Namespace does not exist"}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/head-namespace.api.mdx b/website/docs/api/HTTP/head-namespace.api.mdx index 9afc91684..809d3536b 100644 --- a/website/docs/api/HTTP/head-namespace.api.mdx +++ b/website/docs/api/HTTP/head-namespace.api.mdx @@ -5,7 +5,7 @@ description: "This endpoint returns a 200 OK response if the namespace exists, o sidebar_label: "Check Namespace exists" hide_title: true hide_table_of_contents: true -api: eJzFU8Fu2zAM/RWCZ8V2ghw234puRYsN3aU7FUGr2ExE1JE0iU5bGP73gUmbpCmw604SRPLx8fFpQLHrjPU93jS0pLTGhcGWcpM4CgePNd45zkC+jYG9QCLpk89gYVZV8OsHJMox+EzAKxBH4O2GcrQNAb1wlmwgiKP0zJpyWj+v5nAbBK5C79sDTIEGQ6RktftNizU6su3DARUNvqdmrAecVZUeHynfnnHA0eC8mv8rsQ2UwQfZV+A4GtyQuPDOAA1GKw5rLLfTkvdilQdauRwO9xENZkpbSirsgH3qFEQk1mXZhcZ2LmSpv1RfKzwX+6eGoaUtdSFuyAvskQq4DH7F6z4RPLM4eJxMFPGxwHGh7Zo+sbzu+tnID0+k94XG2K+CTi4sHWGNqffCG/rU+s4R5MgNtXBM6bghn0nrdT6s8SLaxtFkVih5bskLr5jSx8hoUMffA0+L6bSoJr3PYpcdaTCGLBvrT2AvHTVP8GlxZyQHbIIX8vJffCmvUakKvUgZO8teR9ltd3gzxz1upyrL218yeDQIGqyPLl4YVBNoxTAsbabfqRtHff7TU9rtzuDWJt4ppps88eP194tvOI5/ASH+R1M= +api: eJzFU8Fu2zAM/RWCZ8V2gxw234p2w4IN3aU7FUGr2ExM1JY0iXZbGP73gUmbpOmw604WTPK9R72nEcVuE5Z3uKxoTXGLK4M1pSpyEPYOS7xtOAG5Onh2ApGkjy6BhXlRwM/vECkF7xIBb0AaAmc7SsFWBPTMSZIBLw3FJ9aW0/lFsYAbL/DV964+wGRo0AeKVtmXNZbYkK3vD6ho8K01YTnivCj0817yzZkGnAwu/ta4dINtuT4RvfGxs7IfWPwLufaUwHnZU+A0GexIGv8mGQ0GKw2WmA8XOe9vNz8QpXw8nCc0mCgOFNWJEfvYKohIKPO89ZVtG5+k/FR8LvDcnR9ahpoGan3oyAnskTK48m7D2z4SPLE08DCbKeJDhtNK6ao+srzs+Gzg+0fS80pr7DZeNxeWlrDE2Dvhjj5Q3zYEKXBFNRxbWq7IJdJ53Q9LvAy2amg2z1Q81+SEN0zxfWUyqOvvgedZkRWz3iWx65a0FnySzroT1KuGqkf4YPSZxhEr74Sc/Jccy0tQqULPkofWstNVduaOr9m4w+FCb+X17Rk85gMNlsfUrwxqBnRiHNc20a/YTpP+/t1T3FlncLCRdzemRp7E8duXy2ucpj+yxlf7 sidebar_class_name: "head api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; diff --git a/website/docs/api/HTTP/head-table.ParamsDetails.json b/website/docs/api/HTTP/head-table.ParamsDetails.json new file mode 100644 index 000000000..f4a349fda --- /dev/null +++ b/website/docs/api/HTTP/head-table.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"namespace","in":"path","required":true,"schema":{"type":"string"}},{"name":"table","in":"path","required":true,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/head-table.RequestSchema.json b/website/docs/api/HTTP/head-table.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/head-table.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/head-table.StatusCodes.json b/website/docs/api/HTTP/head-table.StatusCodes.json new file mode 100644 index 000000000..4d0836709 --- /dev/null +++ b/website/docs/api/HTTP/head-table.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Table exists"},"404":{"description":"Table does not exist"}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/head-table.api.mdx b/website/docs/api/HTTP/head-table.api.mdx new file mode 100644 index 000000000..067a70ee6 --- /dev/null +++ b/website/docs/api/HTTP/head-table.api.mdx @@ -0,0 +1,70 @@ +--- +id: head-table +title: "Check if a table exists." +description: "This endpoint returns a 200 OK response if the table exists, otherwise it returns a 404 Not Found response." +sidebar_label: "Check if a table exists." +hide_title: true +hide_table_of_contents: true +api: eJy9VMFu2zAM/RWBpw1QbDfIYfOt6Das2LABQ3cqglaxmUioLakinbYw/O8DbTdNO3SHHXqSTFKP5OOje2CzIygv4bzCDaYdrDXUSFVykV3wUMKFdaTQ1zE4zyohd8mTMmpZFOrnN5WQYvCEym0VW1RsNg0qvHfEpFVgi+nOifv47apYqR+B1ZfQ+foAkYGGEDEZyXxeQwkWTX01IoKGaJJpkTFJvT140yKU40HRVBLhpN5o2IKGhLedS1hDyalDDVRZbA2UPfBDlIfEyfkdDIM+YD1m+j+ctQRPnZD4l0Uhxws2j+iBQcOqWL0WVAck5QNP0VIotMg2PBIzUsIWSsj3J7mb5pcf+KC8P9yHfGyN8n48B9BAmPaPVHapEUzmWOZ5EyrT2EBcfig+FvBSDt/FrWrcYxNii57VhJSps+C3btclVHeOrbpeLATxOgNhhrDqkuOHMZ+J7uoG5b4Wn/PbMBLquBFGU+fZtfhX6guLiqKrsFZPIY2r0BPK+3mKp9FUFhfLTIp3NXp2W4fpuWfQIO1PwMusyIpF52kSwKAhBuLW+CPUM4vVjYjcPJN49rLKHqrgGT2/+erMemS85zw2xnlpZBxtPwvlEvYnwsm86vppeQg0lMerNOlFrBMnaw2iCcHo+40h/J2aYRDzbYdpHKWGvUlujJYh147kXkO5NQ3hP2h692vesffqtTZmo/EPIGmaTr5Aw6iio3+ALPMbJp71sj5eza+fTz/BMPwBJGjQHA== +sidebar_class_name: "head api-method" +info_path: docs/api/HTTP/runtime +custom_edit_url: null +proxy: http://localhost:8090 +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +This endpoint returns a 200 OK response if the table exists, otherwise it returns a 404 Not Found response. + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/list-tables.RequestSchema.json b/website/docs/api/HTTP/list-tables.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/list-tables.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/list-tables.StatusCodes.json b/website/docs/api/HTTP/list-tables.StatusCodes.json new file mode 100644 index 000000000..c13e36d28 --- /dev/null +++ b/website/docs/api/HTTP/list-tables.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Tables retrieved successfully","content":{"application/json":{"schema":{"type":"object","required":["identifiers"],"properties":{"identifiers":{"type":"array","items":{"type":"object","required":["namespace","name"],"properties":{"name":{"type":"string"},"namespace":{"type":"object","required":["parts"],"properties":{"parts":{"type":"array","items":{"type":"string"}}},"title":"Namespace"}},"title":"TableIdentifier"}}},"title":"ListTablesResponse"},"example":{"identifiers":[{"namespace":{"parts":["catalog_a"]},"name":"table_1"},{"namespace":{"parts":["catalog_b","schema_1"]},"name":"table_2"}]}}}},"400":{"description":"Invalid namespace format"},"404":{"description":"Namespace does not exist"}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/list-tables.api.mdx b/website/docs/api/HTTP/list-tables.api.mdx new file mode 100644 index 000000000..a5e8f5488 --- /dev/null +++ b/website/docs/api/HTTP/list-tables.api.mdx @@ -0,0 +1,62 @@ +--- +id: list-tables +title: "list_tables" +description: "list_tables" +sidebar_label: "list_tables" +hide_title: true +hide_table_of_contents: true +api: eJyFVMFu2zAM/RWBZydOgh4234qhGAIUOwzZKQhSRWZidbKkSrSXwvC/D1RcJ2kK5GSBFN97eiTdAclDhGINS4U7DAfYZOA8Bkna2WUJBRgdaUtyZzBCBgGjdzZihKKDxWzGnxKjCtpzBRSwSldFQAoaWyxFbJTCGPeNMe+QgXKW0BIXSu+NVokqf41c3UFUFdaST/TuEQpwu1dUlKjfGh2wZLW6REt6rzFEVuwDayZ9knWZPOPIECTza8I63sO3ssbopULI0vmWJEXPKJGCtgfos4vSOxxeBvpC/Sl8X/cHY99nQJoMx36N3JfR1JHlaMp1ybOOdGrZ76G1/Ag8ytobvHFz3V2/bxC7BiVJGnfYStgMHkABaWq2c+ize2U7yIbOb+e3CAvoN31S/fDVxC1tK40uxUgh9i7UkiAVPNwWjDaJ0mEU1pHAo46UXLu+ej39NVLleCkOyN30kiooIG/nuT6tTz5qiHk3nvt8RIgY2g8nm2CggIrIF3lunJKmcpGKb7PvM/is45nTosQWjfM1WhInpKn44exeH5qA4p+mSrxMJoz4MoV+w3SqCZreE5/0evsX+bzhnLZ7l+ZpmITQWNI13lCvKhTRa4WlOF8xWiHPyrgJ8OilqnCymLL489BcZ/oM+Pkn4MV0Np1NGhuTO5zzLlIt7QUq+y9G966EjZtAeKTcG6ktYyRXu6E3a2jnLGf4uV1sJ8MVl2s+kGwy4C5wadftZMQ/wfQ9h98aDMm8DFoZdNLMVmZQoSz5pesOkr/wqBR6npBWmiYt8ec/HTdgnKafTyvo+/9Mwuir +sidebar_class_name: "get api-method" +info_path: docs/api/HTTP/runtime +custom_edit_url: null +proxy: http://localhost:8090 +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +list_tables + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/list-tools.RequestSchema.json b/website/docs/api/HTTP/list-tools.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/list-tools.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/list-tools.StatusCodes.json b/website/docs/api/HTTP/list-tools.StatusCodes.json new file mode 100644 index 000000000..ddc1a4178 --- /dev/null +++ b/website/docs/api/HTTP/list-tools.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"All tools available in the Spice runtime","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","description":"Summary of a tool available to run, and the schema of its input parameters.","required":["name"],"properties":{"description":{"type":["string","null"]},"name":{"type":"string"},"parameters":{}},"title":"ListToolElement"}},"example":[{"name":"get_readiness","description":"Retrieves the readiness status of all runtime components including registered datasets, models, and embeddings.","parameters":null},{"name":"list_datasets","description":"List all SQL tables available.","parameters":null}]}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/list-tools.api.mdx b/website/docs/api/HTTP/list-tools.api.mdx new file mode 100644 index 000000000..996dd65ba --- /dev/null +++ b/website/docs/api/HTTP/list-tools.api.mdx @@ -0,0 +1,62 @@ +--- +id: list-tools +title: "List Tools" +description: "Returns a list of all available tools in the Spice runtime. Tools provide reusable functionality that can be invoked programmatically or by AI agents." +sidebar_label: "List Tools" +hide_title: true +hide_table_of_contents: true +api: eJzNVMFu2zgQ/ZXBnBXbzWlXt2BRFAV62SZ7Mox0LI2taSmSJUfaGoL+fTG0nNhJP2BPEsjhmzfvPXJCpWPGeotPIbiMuwpbzk2SqBI81viVdUg+A4GTrBAOQM4BjSSO9o5B7RiIB+0YHqM0DGnwKj2voEBCTGGUliHxkMuRw+AbQycnegLtSKEhD3sG8WP4wa0dOSbqe1JpyLkThAT7Ezx8Bjqy17zCCkPkRAbzucUajdxz4YIVJs4x+MwZ6wnvNxv73E714NzC/HWS382AFTbBK3s1DIrRSVOarr9nA5owNx33ZH96iow1Ukp0wgpFuc9X62H/nRvFt/o+Dn1P6VSELZRutDUeFZBvC7VzLysVNc3joBApUc/KqYiS+OcgiVsz1FPP5mdMJpXKWY6b7hdyW8yaxB+xQj84h7u5Oh9/pb8UzBW+dsR6mucKVdRZyRfJapZ/dNybYrbHv6iPtrudFkQ8sj4nplY85/xOj6+sSXjkXCZ+qYOspEO+5G+xB5rQx+AtEiC+cUMr/giJj5KVE7fQklJmzRX0oWWXz1pyv+fWSotm1/PY9HP1QrWk6oLxjqrNW9g8/v0F1By7itNvkXfzbKL0rF1oz1KUMu2wxvX4YX1JcOY0lmPbCYfksMZONdbrtQsNuS5krf/Y/Ll5T8m2oeWRXYhmApyRVvBX8Ac5DonhX9EOvt3dGeK3Fc47a9cMSfRU+lGU5x9s/zvbE38IJQeLy68347b1kwXU7k57dXmcNOxzydEi6UOkpuO7+5WRl5a9ykE43e7MFdr4Z+D71Wa1uRt8LhKXBIasPfkr1GLF0yLem4i/XOD/71u23DHlX7qOjsTblMX3aUnHFscPVnh5pC0CtjpNe8r8T3LzbMs/B07FuQpHSlIEMx8r7Jhak3k7YTEXH5qGo8VvJDeUh+vt62buv0T108cnnOf/ACjqKl8= +sidebar_class_name: "get api-method" +info_path: docs/api/HTTP/runtime +custom_edit_url: null +proxy: http://localhost:8090 +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Returns a list of all available tools in the Spice runtime. Tools provide reusable functionality that can be invoked programmatically or by AI agents. + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/mcp-event.ParamsDetails.json b/website/docs/api/HTTP/mcp-event.ParamsDetails.json new file mode 100644 index 000000000..914110a30 --- /dev/null +++ b/website/docs/api/HTTP/mcp-event.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"sessionId","in":"query","required":true}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/mcp-event.RequestSchema.json b/website/docs/api/HTTP/mcp-event.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/mcp-event.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/mcp-event.StatusCodes.json b/website/docs/api/HTTP/mcp-event.StatusCodes.json new file mode 100644 index 000000000..15aa2c9dc --- /dev/null +++ b/website/docs/api/HTTP/mcp-event.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"202":{"description":"Message accepted. Response will stream via SSE."},"404":{"description":"Session not found. No active session for the given `session_id`."},"413":{"description":"Payload too large. Maximum allowed size is 4MB."},"500":{"description":"Internal server error. An unexpected issue occurred."}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/mcp-event.api.mdx b/website/docs/api/HTTP/mcp-event.api.mdx index 48518ae9d..d3ed20fa5 100644 --- a/website/docs/api/HTTP/mcp-event.api.mdx +++ b/website/docs/api/HTTP/mcp-event.api.mdx @@ -1,11 +1,11 @@ --- id: mcp-event title: "Send message to MCP server" -description: "Send a message to the MCP endpoint for a given session. Include the Mcp-Session-Id header to identify the session." +description: "Send message to the MCP endoint, for a given session." sidebar_label: "Send message to MCP server" hide_title: true hide_table_of_contents: true -api: eJydU8Fu2zAM/RWCpw1wnKTrgM23rtihwLIVTXcqglaVmFiYLKkS7TYL/O8DbQ9rG/Sykw1Reu+Rj++ArHYZqxtsdMRNgYayTjayDR4rXJM30FDOakfAAbgmWJ1fAnkTrOcCtiGBgp3tyEOmnG3wJRYYIiUlGBcGK4G+pY48Y4FRJdUQUxLSA3rVEFY4Pb0wWKAV4oeW0h4LTPTQ2kQGK04t9Rs5yTH4TBmrA54sTuTzUvRq0qu0pshkSria3sCjdQ4yJ1INdFbBev21xL7A08XpMc56FAU+MGxD600J3wMozbajv80OA5CpjCO4m45vrbkbgZcfjoEv1d4FZYBDAKfSjkpYqSfbtA0o58IjGcj2N4HNcLr6MuB8XCyOcS48U/LKQabUUQJKKaQSzjy0np4iaSYDNueWIGjdpkSmxL4vsCGugzgTQx5N4RornHfLeaPjPGfCAkfQ0aY2OaywZo7VfO6CVq4OmatPi88LfL0z36QMhjpyITbkeZJXwnnwW7trk/jANdzNZoIog9oInW6T5f3Ap6K9/UXyv5Ga9dsg7bNlJ+uSWs+2oSPq65ogR6vJwL8rzmrymeT9tG1nUemaZieliLeGPNutpfSy0hco7Y/Ay3K5LBez1mdW946kKKNrlH8G+zosEpSx9ddCD6iDZwnE/0eM91FImZ54Hp2yXkQNPh0mP2+wW2IxBLtA8XRToNgmlcPhXmX6mVzfy/EYN5n8mzrfXU1RfA9vsQ+Ovchyp1wr9waHO5XsMD1x9dkSXv5YX2Pf/wEUrori +api: eJydU8Fu2zAM/RWCpw1wHDfrgM23rtihwLIVTXcqgla1mFiYLKkS7TYz/O8DbQ9rG/Sykw1Reu+Rj69HVvuE5Q02VcBthppSFU1g4x2WuCGnoaGU1J6APXBNsD6/BHLaG8cZ7HwEBXvTkYNEKRnvcszQB4pKMC40lgJ9Sx05xgyDiqohpiikPTrVEJY4P73QmKER4oeW4gEzjPTQmkgaS44tDVs5ScG7RAnLHlfFSj4vRa9nvaqqKDDpHK7mN/BorIXEkVQDnVGw2XzNccjwtDg9xtlMosB5hp1vnc7huwdVsenob7PjAGQq0wju5uNbo+8m4JMPx8CX6mC90sDeg1VxTzms1ZNp2gaUtf6RNCTzm8AkOF1/GXE+FsUxzoVjik5ZSBQ7ikAx+pjDmYPW0VOgikmDSakl8FXVxkg6x2HIsCGuvTgTfJpM4RpLXHYny6YKy5QIM5xAJ5vaaLHEmjmUy6X1lbK1T1x+Kj4X+HpnvkkZNHVkfWjI8Swvh3PvdmbfRvGBa7hbLARRBrUVuqqNhg8jnwrm9hfJ/1Zqxu28tM+GraxLbB2bho6or2uCFExFGv5dsaYil0jez9t2FlRV02KVi3ijybHZGYovK0OG0v4EvMqLvFi0LrG6tyQ1mVyj3DPU11mRnEydv9bZY+UdSx7+P2F8CELK9MTLYJVxImq0qZ/tvMHuBLMx1xmKpdsMxTWp9P29SvQz2mGQ4yltMvg3db67mpP4Ht5iHw17EeVO2VbujQZ3KppxemLqsx28/LG5xmH4A7yDirE= sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; @@ -37,33 +38,30 @@ import Heading from "@theme/Heading"; -Send a message to the MCP endpoint for a given session. Include the `Mcp-Session-Id` header to identify the session. +Send message to the MCP endoint, for a given session. + Request diff --git a/website/docs/api/HTTP/operation-id.RequestSchema.json b/website/docs/api/HTTP/operation-id.RequestSchema.json new file mode 100644 index 000000000..c96bcede2 --- /dev/null +++ b/website/docs/api/HTTP/operation-id.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/website/docs/api/HTTP/operation-id.StatusCodes.json b/website/docs/api/HTTP/operation-id.StatusCodes.json new file mode 100644 index 000000000..bfc5cbb0c --- /dev/null +++ b/website/docs/api/HTTP/operation-id.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{}} \ No newline at end of file diff --git a/website/docs/api/HTTP/operation-id.api.mdx b/website/docs/api/HTTP/operation-id.api.mdx index 0dbd32d4d..538a9590c 100644 --- a/website/docs/api/HTTP/operation-id.api.mdx +++ b/website/docs/api/HTTP/operation-id.api.mdx @@ -1,11 +1,11 @@ --- id: operation-id -title: "Establish an MCP Streamable HTTP Connection" -description: "Initiates a Streamable HTTP connection using the Model Context Protocol (MCP) to interact with Spice tools." -sidebar_label: "Establish an MCP Streamable HTTP Connection" +title: "Establish an MCP SSE Connection" +description: "Initiates a Server-Sent Events (SSE) connection using the Model Context Protocol (MCP) to interact with Spice tools." +sidebar_label: "Establish an MCP SSE Connection" hide_title: true hide_table_of_contents: true -api: eJzlU8Fu2zAM/RWCpxZwnGanzbchCIYCKxrA2akLGlVmYmKypEm0t8Lwvw90tjbrPmHWxdYT36Men0cUc8pYPWBnI+4LbCjbxFE4eKzw1rOwEcpgoKY0UFrU5AU2A3nJcFXXm2uwwXuyWgF9Zn8CaQnuQkMO1sEL/RTYpiDBBgdXd+vtNUgA9kLJWIEfLC3UkS2BhOBy+dXrgsvn3lv6I0NNAdbxrG+Nh0y+gY5yNifKMLCBw/a+3sFyWC07G5c50wGMbyCRJR4IEuUYfKYM0qbQn1qQljPU9QayJDJdiQWGSMnolW4brF6/HrnBAl8YsBqnAjuSNuixEwkWGI20WOGFPhaYZ/PU6BH75LDCViRWy6UL1rg2ZKne33y4wbcD+KwwNDSQC7FT689MpVp75FOf6OzgYbFQxkOJ017lbJ9Ynmc9E/nxG+n7XjH2x4DViMLiCCtMvRfu6B/pXUuQdS4NvB5xbMln0npvOi3/GI1tafGu1Oa5IS98ZEp/I1OBev0z8apcrcqbRe+zmCdHCsaQpTP+gnYzg5xbMB7u1tt5PuuXpL3tdkSrUfPyP4dWnqNap80vozPs1do5bePvVD7gsMJi/tcL1GTuC9TwKTKOTybTl+SmSbe/95TmzBQ4mMTzpDRBF3n/tNnhNP0CfeNyCQ== +api: eJzlU8Fu2zAM/RWCpxZwnLSnzbchCIYCKxrA2akLGlVmY2KypEm0t8Lwvw90tjbtPmHWxdYT36Men0cUc8xY3WNnI+4LbCjbxFE4eKzwxrOwEcpgoKY0UFrU5AU2A3nJcFHXm0uwwXuyWgF9Zn8EaQluQ0MO1sEL/RLYpiDBBgcXt+vtJUgA9kLJWIGfLC3UkS2BhOBy+c3rgvPnzlv6K0NNAdbxrG+Nh0y+gY5yNkfKMLCBw/au3sFyuFp2Ni5zpgMY30AiSzwQJMox+EwZpE2hP7YgLWeo6w1kSWS6EgsMkZLRK900WL1+PXCDBb4wYDVOBXYkbdBjRxIsMBppscIzfSwwz+ap0SP2yWGFrUislksXrHFtyFJ9WH1c4fsBfFEYGhrIhdip9SemUq194mOf6OTgYbFQxkOJ017lbJ9Ynmc9E/nhO+n7XjH2TwGrEYXFEVaYei/c0T/Su5Yg61waeD3i2JLPpPXedFr+KRrb0uK61Oa5IS/8xJTeIlOBev0T8XW5KleL3mcxj44UiyFLZ/wZ62YGObdgPNyut/N41i9Be9/siFaT5uV/zqw8R7VOm19GZ9irtXPYxj+hvMfhCov5Vy9Qg7kvULOnyDg+mkxfk5sm3f7RU5ojU+BgEs+T0gCdxf3zZofT9BtPaXHY sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,17 +19,18 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; @@ -37,10 +38,10 @@ import Heading from "@theme/Heading"; -Initiates a Streamable HTTP connection using the Model Context Protocol (MCP) to interact with Spice tools. +Initiates a Server-Sent Events (SSE) connection using the Model Context Protocol (MCP) to interact with Spice tools. - Once connected, clients can send messages via `POST /v1/mcp` with an `Mcp-Session-Id` header and receive responses through this stream. + Once connected, clients can send messages via `POST /v1/mcp/sse` and receive responses through this SSE stream. diff --git a/website/docs/api/HTTP/patch-dataset-acceleration.ParamsDetails.json b/website/docs/api/HTTP/patch-dataset-acceleration.ParamsDetails.json new file mode 100644 index 000000000..f06180a73 --- /dev/null +++ b/website/docs/api/HTTP/patch-dataset-acceleration.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"name","in":"path","description":"The name of the dataset to update.","required":true,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/patch-dataset-acceleration.RequestSchema.json b/website/docs/api/HTTP/patch-dataset-acceleration.RequestSchema.json new file mode 100644 index 000000000..053bb8f73 --- /dev/null +++ b/website/docs/api/HTTP/patch-dataset-acceleration.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"The updated SQL statement for the dataset's refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"refresh_sql":{"type":["string","null"],"description":"SQL statement used for the refresh. Defaults to current `refresh_sql` configured (either from the spicepod or a previous `refresh_sql` update)."}},"title":"AccelerationRequest"},"example":{"refresh_sql":"SELECT * FROM eth_recent_blocks WHERE block_number > 100"}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/patch-dataset-acceleration.StatusCodes.json b/website/docs/api/HTTP/patch-dataset-acceleration.StatusCodes.json new file mode 100644 index 000000000..65446eab8 --- /dev/null +++ b/website/docs/api/HTTP/patch-dataset-acceleration.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"The refresh SQL was updated successfully."},"404":{"description":"The specified dataset was not found","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The message describing the result of the request"}},"title":"MessageResponse"},"example":{"message":"Dataset eth_recent_blocks not found"}}}},"500":{"description":"An internal server error occurred while updating the refresh SQL","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The message describing the result of the request"}},"title":"MessageResponse"},"example":{"message":"Request failed. An internal server error occurred while updating refresh SQL."}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/patch-dataset-acceleration.api.mdx b/website/docs/api/HTTP/patch-dataset-acceleration.api.mdx index 4fe80a6ad..4810fb1c7 100644 --- a/website/docs/api/HTTP/patch-dataset-acceleration.api.mdx +++ b/website/docs/api/HTTP/patch-dataset-acceleration.api.mdx @@ -1,125 +1,73 @@ --- id: patch-dataset-acceleration -title: 'Update Refresh SQL' +title: "Update Refresh SQL" description: "Update the refresh SQL for a dataset's acceleration." -sidebar_label: 'Update Refresh SQL' +sidebar_label: "Update Refresh SQL" hide_title: true hide_table_of_contents: true -api: eJztVt9v2zYQ/leIe+kWKLJddMCmhwJZmqEDUmxzU/QhNRxaPFtsKVIhT3YMQf/7cJTkH7EXbNjj5hdL4vH48fvuPrIBkqsA2T28kyQDUoBZAgpD7nVF2lnI4FOlJKGgAoXHpcdQiI9/3Iql80IK1U17FYTMczToJc9Kv9gv9q7QQaBVldOWhDTGbUKcVXNCbVcx5UOfcx4ezYOopJclEvoX0wtJwteWdIkpr4MiL6RdodBBXFwQlpXz0m8vLoS0Smy0McLjGj0Jct2iodI5Vk6l29I8CIVLbfWQmQMsPu2WEB4DSU8pJOCqHsKvCjKoJOXFvMc4P0QICey2wvQ2YGWJkHV/CWjbTS/gOdu8Gw4SbhmR9NkZeeQNGYbHx1p7VJCRrzGBkBdYSsgaoG3FywTy2q6gbWddMAb62aktR5wu1+VVUdVAkrBES1GAAwCvwqA+A8idJbTE+WRVGZ3HXY++Bk7anOJxi6+YE7PimULSGHj0QPt98P2APgFbG3NakMc464BqB3aAKN7hUtaGwk7xozILFeZ6qVEJbePwrh6gbRMgTYZRXx0oOu1YhDYBfJJlxQHPNgAfb25vru/Ehfhl+tsHgVTMPeZoab4wLv8WxOf3N9MbEV/mti4X6MVbMRmPoeVVj0WNH0LlbOioej0en1fvsCc3MuzUDHWeYwjL2phtyrDfjN+cz7BnYyg2zmMd10Bt1b+Re7+neygxBLlC1vO4CoaBk/I91xt9sOhGFoONeAy1oaFp/CDWgZgfuonTntRnQu4wDEZ4Rr49I20U7IdzklxZoS2ht9KIgH6NXqD3zguX57X3qMSm0AaPTfBAw/8Y231biaXUBlUq/jF9B9SlUZc2gRKpcDuDjl5MBWQwWk9GfYmHUcMu246euXa3ZmfZteemLoiqbDQyLpemcIGyH8c/jU/IuuVhoXCNxlXRl7pMqbh2dqlXtUex0VSIh8tLzviQAntzwLz2mrZxPVnp+Tfk5xmPsd7TvXff/JXrDF7Pp8rSRV17EfoD7Kyy0fGU2IcYnSMrle3OqqtK5gVevk55u1qhJXYJfzzSJsCEdYkn6WSSji9rG0guTFS9coFKaQ/S9veJ6VHNHwFs9i3w/+3j4PbR9yvhE40qI7VlgmOVNn2J38N6wmwOl7kEsv7GcVTnswS4lDm+aRYy4Cdv2pY/P9boYwUmsJZeRxW5NpUO/KwgW0oT8AXBvpv2LvS9+Ft3mbOb6j9KuwUGYmp+gwRie3SF1M7aBAqUiivyvumHrjscl3ecYD/1xEfbZJjBh3xFL8bODizl96u76/eQwKK/TpVOxVaTGzZguelwukhMd8fhbw0YaVd153ldUv79CfhKCg4= -sidebar_class_name: 'patch api-method' +api: eJztVl1v2zYU/SvEfWkbKLITdMCmhwFZmqEDUmxzU+whDRxavLbYUiRLXtkxDP334VKSP2Iv2LDHzS+2xcvDw3sOj7gBkosIxT28kyQjUoSHDBTGMmhP2lko4JNXklBQhSLgPGCsxMffb8XcBSGF6qa9ikKWJRoMkmfln+1ne1fpKNAq77QlIY1xq5hmNQyo7SJBPvaY0/jNPAovg6yRMLwILySJ0FjSNea8DoqyknaBQkdxdkZYexdkWJ+dCWmVWGljRMAlBhLkukWj1yV6p/J1bR6Fwrm2ekDmAotP2yVEwEgyUA4ZON9T+EVBAV5SWU17jtN9hpDBdivc3g1YWSMU3VcG2nbTK3jebd4NFwk3T0x6dGae+oZMI+C3RgdUUFBoMINYVlhLKDZAa8/LRAraLqBtH7pijPSTU2uuOF6uw1VJ1UiSsEZLSYA9Aq/ioD4TKJ0ltMR40nujy7Tr0ZfIoJtjPm72BUvirgRuIWmMPLqn/a74fmCfgW2MOTbkIc8motqSHSiKdziXjaHIfSubELjy0Gqls3O9aAIq8Ro1Vey54OoEM9hDJBP6gEvtmvgMoGvbmxzaNgPSZHijV3smmHSNhzYDfJK154Jne4aPN7c313fiTPw8+fWDQKqmAUu0NJ0ZV36N4o/3N5Mbkf5MbVPPMIgfxcV4DC2veuiD9CB6Z2PX3cvx+LTg+8d4JePWALEpS4xx3hizzpn22/Hb0wjRY6nnGtXWn4xjHdumserfOGS3p3uoMUa5QLbAoXGGgSPHnzpOfbHoRmZD8gSMjaHhnIVBrD0xP3QTJ31Tnwm55TBk5wn5dh1pk2DfnZLkygptCYOVRkQMSwwCQ3BBuDJZV4lVpQ0e5uaehv+xbvfHSsylNqhy8Y/bt9e6POnSZlAjVW6b6Sm+qYICRsuLUW/xONpwMLejZ0HfrdmlfBP4UFdEvhiNjCulqVyk4vvxD+OjZt3ysFC4RON8irIOKRfXQzSJlaZKPJ6fM+JjDhznEcsmaFqn9aTX06/Ivx94jPWe7OL+5q9SZ3g98Ito7pKuvQj9O++ksikVldiVGF0iK1VsX29XXpYVnl/mvF2t0BKnRDgcaTPghnXAl/k4H583NpKcmSS6d5FqafdQ+xvI5MDyB/w2uxPw/31l777SH1fCJxp5I7XlBieTbnqH38Pygrs5XP8yKPo7yoHNHzJgJ3P9ZjOTET8F07b8+FuDIRkwg6UMOqnI1lQ68m8FxVyaiC8I9nrSh9Ab8bduPyc31T+Udg1MxDT8DzJIp6MzUvvQZlChVGzI+00/dN3xOL9jgN3Uoxhts2EGv+M9vVj7sJcov13dXb+HDGb9Bax2Kp00ueL8lauOp0uN6W5F/GwDRtpF00VeB8qfPwECJx0o +sidebar_class_name: "patch api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null proxy: http://localhost:8090 --- -import MethodEndpoint from '@theme/ApiExplorer/MethodEndpoint' -import ParamsDetails from '@theme/ParamsDetails' -import RequestSchema from '@theme/RequestSchema' -import StatusCodes from '@theme/StatusCodes' -import OperationTabs from '@theme/OperationTabs' -import TabItem from '@theme/TabItem' -import Heading from '@theme/Heading' +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; - + + + method={"patch"} + path={"/v1/datasets/{name}/acceleration"} + context={"endpoint"} +> + + + + Update the refresh SQL for a dataset's acceleration. -This endpoint updates the `refresh_sql` parameter for a dataset's acceleration at runtime. +This endpoint allows for updating the `refresh_sql` parameter for a dataset's acceleration at runtime. The change is **temporary** and will revert to the `spicepod.yml` definition at the next runtime restart. + id={"request"} + as={"h2"} + className={"openapi-tabs__heading"} +> + Request + + {...require("./patch-dataset-acceleration.ParamsDetails.json")} +> + + 100' } - } - }, - required: true - }} -> + {...require("./patch-dataset-acceleration.RequestSchema.json")} +> + + + {...require("./patch-dataset-acceleration.StatusCodes.json")} +> + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/post-batch-predict.RequestSchema.json b/website/docs/api/HTTP/post-batch-predict.RequestSchema.json new file mode 100644 index 000000000..7aff0a1bb --- /dev/null +++ b/website/docs/api/HTTP/post-batch-predict.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"Batch prediction request containing a list of prediction requests for specific models","content":{"application/json":{"schema":{"type":"object","properties":{"predictions":{"type":"array","items":{"type":"object","required":["model_name"],"properties":{"model_name":{"type":"string"}},"title":"PredictRequest"},"description":"The list of prediction requests, each specifying the model to use for the prediction"}},"title":"BatchPredictRequest"},"example":{"predictions":[{"model_name":"drive_stats_a"},{"model_name":"drive_stats_b"}]}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-batch-predict.StatusCodes.json b/website/docs/api/HTTP/post-batch-predict.StatusCodes.json new file mode 100644 index 000000000..bfbe0a944 --- /dev/null +++ b/website/docs/api/HTTP/post-batch-predict.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Batch predictions completed successfully","content":{"application/json":{"schema":{"type":"object","required":["predictions","duration_ms"],"properties":{"duration_ms":{"type":"integer","minimum":0},"predictions":{"type":"array","items":{"type":"object","required":["status","model_name","duration_ms"],"properties":{"duration_ms":{"type":"integer","description":"The time taken to complete the prediction (in milliseconds)","minimum":0},"error_message":{"type":["string","null"],"description":"The error message if the request failed"},"model_name":{"type":"string","description":"The name of the model used for the prediction"},"model_version":{"type":["string","null"],"description":"The version of the model used"},"prediction":{"type":["array","null"],"items":{"type":"number","format":"float"},"description":"The prediction result, typically an array of floats"},"status":{"description":"The status of the prediction","type":"string","enum":["Success","BadRequest","InternalError"],"title":"PredictStatus"}},"title":"PredictResponse"}}},"title":"BatchPredictResponse"},"example":{"duration_ms":81,"predictions":[{"status":"Success","model_name":"drive_stats_a","model_version":"1.0","prediction":[0.45,0.5,0.55],"duration_ms":42},{"status":"Success","model_name":"drive_stats_b","model_version":"1.0","prediction":[0.43,0.51,0.53],"duration_ms":42}]}}}},"500":{"description":"Internal server error occurred during batch prediction","content":{"text/plain":{"schema":{"type":"string"},"example":"An unexpected error occurred while processing batch predictions"}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-batch-predict.api.mdx b/website/docs/api/HTTP/post-batch-predict.api.mdx index 1792fe8ef..b2cf650ac 100644 --- a/website/docs/api/HTTP/post-batch-predict.api.mdx +++ b/website/docs/api/HTTP/post-batch-predict.api.mdx @@ -5,7 +5,7 @@ description: "Perform a batch of ML predictions, using multiple models, in one r sidebar_label: "Batch ML Predictions" hide_title: true hide_table_of_contents: true -api: eJzNVttu2zgQ/RVinnYBxpe0Bbp6S4o+BEixQZN9MgyXpkYWW4pUeXFqGPr3xVDSWrLcbIvuwxqI4fAyc2bmzOEcIYidh2wFN3ew5pCjl07VQVkDGTygK6yrmGBbEWTJbME+3LPaYa4kHfGcRa/MjlVRB1VrZJXNUXvOlGHWIHP4NaIPM/ZUKs+UZ9FjETUrrGNoPFZbTdetYzfzWxbQB/o3V0WBDk3ozM2Ag63RCfJ5l0MGtfVhkzBtOjTAoXN2a/MDZMezUG5TACfoPTQmrQlCGfIrmFY+UJTTcz5h9jVKVSjZAQMOdB1NIIeirrWSCeT8syevR/CyxErQr3CoETKw28+Y0NaOQgoKPe0Ocjo4LJwTB+CgAlb+khECpxzmVMAEaWNEhVTIsfnB3smKD06ZHTQNh6CCpqWHFsbHNmZozgnxVOJLOeIMhSy7LB0opaHsOMGCpeKnLNLi6fYIQCrTFAV+E1WtcZKp1Tg0yJ3a48YHEfxGQMNf2N5Cs27I9SmHwUVMC762xreZu14s/p1MnklL+ALmzEcp0fsian34FX4MSzuMmUMe207YVH5a6eHmyaoyAXfogEOljKpiBdmi4f8F6yiZkVANEv2LEKeUC6pCFsQXNESjPtdnPGK/KcMqpbXyKK3J/e/n4aJz1m0q9F7sBo2w6juBg4laT2WQIKS7rLvLVJGc9xpSCKUxJ6K+1GiXzNJJaqZTn0SP+cUu6Y3v0XnVsucn8He3pr5gxIOh1Z4HvdFzPphYbVPB6I0QATIotBXfUY2RWvioA2fhUCsptD4wYVhyRuiSDU9GOmpNuo/MtXt9NAP8fJJ0NFT/FTy2jQkcbkXeawuHOxPQGaHfU4EpzDMtfGxRXFTJVieg+b6C9SdGEjZqgLdLPtG0PvIB5hdkbkIMWM4WMK7qajF7/YYvZunvzXrcodnra5LKn/G6/WGvr8jjkr5eXXBLEtxweHNJZfvKMI9uj65rQStldA5zlkcqcDeZjBgw0NyA38K81kJdVtv+CRyUB24Miwa/1ShJzs+cPpdKE98sJeiSe2IKRVRhKG0/qlBaRCghg/l+OT9NLG1gbc2j05BBGUKdzefaSqFL60P2dvHHYqIc97TNctyjtnVFg1JracbeWVOoXXTInlUo2aerK7L4aQbNmtzJ6FQ4JH+iVpsvSL/XtEcP0sfTAPX+Bx/cPoHrhoMyhU257TrBRUPCfVH3fK0k5ux0RCtJAyHd70zf1EKWeHWdWKVyNEEVCt14p+EwJOByOVtcReOD2OrUdZT9SpiB2fbt/nDPHsaP6hDi8USh/9MM3JF2wOmGt7w5dvxawX556kFSMyIRrR+PW+HxL6ebhpa/RnSp9hz2wqmULmIChxJFTlleHSHRA961qbh6Iu90XMc0JZxPMyQh7Y0bKbEOL55dDzrk4c/HJ+Cw7eZ2ipfYI55p1BDPkEGa//8ZU9LaEbQwu5gecmht0udvS4J9SQ== +api: eJzNVk1v2zgQ/SvEnHYBxnbSBujqlhQ9BEixQZM9GYZLUyOLLUWq/HBiGPrvi6GklWS72RbdwxqI4fBj5s3Mm8c5QBBbD9kSbu5gxSFHL52qg7IGMnhAV1hXMcE2IsiS2YJ9vGe1w1xJOuI5i16ZLauiDqrWyCqbo/acKcOsQebwW0QfZuypVJ4pz6LHImpWWMfQeKw2mq5bx27mtyygD/RvrooCHZrQmZsBB1ujE+TzLocMauvDOmFad2iAQ+fs1uZ7yA5HodymAAboPTQmrQlCGfIrmFY+UJSn53zC7GuUqlCyAwYc6DqaQA5FXWslE8j5F09eD+BliZWgX2FfI2RgN18woa0dhRQUetod5XR0WDgn9sBBBaz8OSMETjnMqYAJ0tqICqmQU/OjvcGKD06ZLTQNh6CCpqWHFsanNmZojgnxVOJrOeIMhSy7LO0ppaHsOMGCpeKnLNLicHsCIJXpFAW+iKrWeJKp5TQ0yJ3a4doHEfxaQMNf2d5As2rI9ZDD4CKmBV9b49vMXS0W/04mz6QlfAFz5qOU6H0Rtd7/Cj/GpR3HzCGPbSesK39a6fHmYFWZgFt0wKFSRlWxgmzR8P+CdZTMSKhGif5FiKeUC6pCFsRXNESjPtdHPGK/KcMqpbXyKK3J/e/H4aJz1q0r9F5sR42w7DuBg4lan8ogQUh3WXeXqSI57zWkEEpjTkR9rdHOmaWT1ExDn0SP+dku6Y3v0HnVsucn8He3Tn3BhAdjqz0PeqPHfDCx2qSC0RshAmRQaCu+oxoTtfBRB87CvlZSaL1nwrDkjNAlG56MdNQ66T4y1+710Yzw85Oko6H6L+GxbUzgcCvyXls43JmAzgj9gQpMYR5p4WOL4qxKtjoBzfcVrD8xkbBJA7y75Cea1kc+wvyKzJ0QAy5nC5hWdbmYvb3mi1n6u15NOzR7e0VS+TNeNz/s9Q15vKSvN2fckgQ3HK7PqWxfGebR7dB1LWiljM5hzvJIBe4mkwkDRpob8CXMay3UebXtn8BReeDGsGjwpUZJcn7k9LlUmvhmKUHn3BNTKKIKQ2n7UYXSIkIJGcx3l/NhYmkDa2senYYMyhDqbD7XVgpdWh+yd4s/FifKcU/bLMcdaltXNCi1lmbsvTWF2kaH7FmFkn2+uCCLn2fQrMidjE6FffInarX+ivR7RXv0IH0aBqgPP/jg9glcNRyUKWzKbdcJLhoS7rO652slMWfDEa0kDYR0vzN9UwtZ4sVVYpXK0QRVKHTTnYbDQMCr2WK2uIjGB7HRqeko+ZUwI6vt0/3xnj1M39QxwsPAoP/TCNxxdkTphre0OXT0WsLucmhBEjPiEK0fDhvh8S+nm4aWv0V0qfQcdsKplC4iAocSRU5JXh4gsQPet6m4eCLvdFzHNCQcDzOkIO2NGymxDq+eXY0a5OHPxyfgsOnGdoqXyCOeadIQz5BBGv//mVLS2gG0MNuY3nFobdLnbxswfRg= sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/post-chat-completions.RequestSchema.json b/website/docs/api/HTTP/post-chat-completions.RequestSchema.json new file mode 100644 index 000000000..c3efb0bb2 --- /dev/null +++ b/website/docs/api/HTTP/post-chat-completions.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"Create a chat completion request using a language model.","content":{"application/json":{"schema":{"type":"object","required":["messages","model"],"properties":{"audio":{"oneOf":[{"type":"null"},{"description":"Parameters for audio output. Required when audio output is requested with\n`modalities: [\"audio\"]`. [Learn more](https://platform.openai.com/docs/guides/audio).","type":"object","required":["voice","format"],"properties":{"format":{"description":"Specifies the output audio format. Must be one of `wav`, `aac`, `mp3`, `flac`, `opus`, or `pcm16`.","type":"string","enum":["wav","aac","mp3","flac","opus","pcm16"],"title":"ChatCompletionAudioFormat"},"voice":{"description":"The voice the model uses to respond. Supported voices are\n`alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`.","oneOf":[{"type":"string","enum":["alloy"]},{"type":"string","enum":["ash"]},{"type":"string","enum":["ballad"]},{"type":"string","enum":["coral"]},{"type":"string","enum":["echo"]},{"type":"string","enum":["fable"]},{"type":"string","enum":["nova"]},{"type":"string","enum":["onyx"]},{"type":"string","enum":["sage"]},{"type":"string","enum":["shimmer"]},{"type":"object","required":["other"],"properties":{"other":{"type":"string"}}}],"title":"ChatCompletionAudioVoice"}},"title":"ChatCompletionAudio"}]},"frequency_penalty":{"type":["number","null"],"format":"float","description":"Number between -2.0 and 2.0. Positive values penalize new tokens based on\ntheir existing frequency in the text so far, decreasing the model's\nlikelihood to repeat the same line verbatim."},"function_call":{"oneOf":[{"type":"null"},{"description":"Deprecated in favor of `tool_choice`.\n\nControls which (if any) function is called by the model.\n`none` means the model will not call a function and instead generates a message.\n`auto` means the model can pick between generating a message or calling a function.\nSpecifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function.\n\n`none` is the default when no functions are present. `auto` is the default if functions are present.","oneOf":[{"type":"string","description":"The model does not call a function, and responds to the end-user.","enum":["none"]},{"type":"string","description":"The model can pick between an end-user or calling a function.","enum":["auto"]},{"type":"object","description":"Forces the model to call the specified function.","required":["Function"],"properties":{"Function":{"type":"object","description":"Forces the model to call the specified function.","required":["name"],"properties":{"name":{"type":"string"}}}}}],"title":"ChatCompletionFunctionCall"}]},"functions":{"type":["array","null"],"items":{"type":"object","required":["name","parameters"],"properties":{"description":{"type":["string","null"],"description":"A description of what the function does, used by the model to choose when and how to call the function."},"name":{"type":"string","description":"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."},"parameters":{"description":"The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/text-generation/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list."}},"title":"ChatCompletionFunctions"},"description":"Deprecated in favor of `tools`.\n\nA list of functions the model may generate JSON inputs for.","deprecated":true},"logit_bias":{"type":["object","null"],"description":"Modify the likelihood of specified tokens appearing in the completion.\n\nAccepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100.\nMathematically, the bias is added to the logits generated by the model prior to sampling.\nThe exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection;\nvalues like -100 or 100 should result in a ban or exclusive selection of the relevant token.","additionalProperties":{"type":"integer","format":"int32"},"propertyNames":{"type":"string"}},"logprobs":{"type":["boolean","null"],"description":"Whether to return log probabilities of the output tokens or not. If true,\nreturns the log probabilities of each output token returned in the `content` of `message`."},"max_completion_tokens":{"type":["integer","null"],"format":"int32","description":"An upper bound for the number of tokens that can be generated for a completion, including\nvisible output tokens and [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).","minimum":0},"max_tokens":{"type":["integer","null"],"format":"int32","description":"The maximum number of [tokens](https://platform.openai.com/tokenizer) that can be generated in\nthe chat completion. This value can be used to control [costs](https://openai.com/api/pricing/) for text generated via API.\nThis value is now deprecated in favor of `max_completion_tokens`, and is\nnot compatible with [o-series models](https://platform.openai.com/docs/guides/reasoning).","deprecated":true,"minimum":0},"messages":{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","required":["content"],"properties":{"content":{"description":"The contents of the developer message.","oneOf":[{"type":"string"},{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","required":["text"],"properties":{"text":{"type":"string"}},"title":"ChatCompletionRequestMessageContentPartText"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}}]}],"title":"ChatCompletionRequestDeveloperMessageContentPart"}}],"title":"ChatCompletionRequestDeveloperMessageContent"},"name":{"type":["string","null"],"description":"An optional name for the participant. Provides the model information to differentiate between participants of the same role."}},"title":"ChatCompletionRequestDeveloperMessage"},{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["developer"]}}}]},{"allOf":[{"type":"object","required":["content"],"properties":{"content":{"description":"The contents of the system message.","oneOf":[{"type":"string","description":"The text contents of the system message."},{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","required":["text"],"properties":{"text":{"type":"string"}},"title":"ChatCompletionRequestMessageContentPartText"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}}]}],"title":"ChatCompletionRequestSystemMessageContentPart"},"description":"An array of content parts with a defined type. For system messages, only type `text` is supported."}],"title":"ChatCompletionRequestSystemMessageContent"},"name":{"type":["string","null"],"description":"An optional name for the participant. Provides the model information to differentiate between participants of the same role."}},"title":"ChatCompletionRequestSystemMessage"},{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["system"]}}}]},{"allOf":[{"type":"object","required":["content"],"properties":{"content":{"description":"The contents of the user message.","oneOf":[{"type":"string","description":"The text contents of the message."},{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","required":["text"],"properties":{"text":{"type":"string"}},"title":"ChatCompletionRequestMessageContentPartText"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}}]},{"allOf":[{"type":"object","required":["image_url"],"properties":{"image_url":{"type":"object","required":["url"],"properties":{"detail":{"oneOf":[{"type":"null"},{"description":"Specifies the detail level of the image. Learn more in the [Vision guide](https://platform.openai.com/docs/guides/vision/low-or-high-fidelity-image-understanding).","type":"string","enum":["auto","low","high"],"title":"ImageDetail"}]},"url":{"type":"string","description":"Either a URL of the image or the base64 encoded image data."}},"title":"ImageUrl"}},"title":"ChatCompletionRequestMessageContentPartImage"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image_url"]}}}]},{"allOf":[{"type":"object","description":"Learn about [audio inputs](https://platform.openai.com/docs/guides/audio).","required":["input_audio"],"properties":{"input_audio":{"type":"object","required":["data","format"],"properties":{"data":{"type":"string","description":"Base64 encoded audio data."},"format":{"description":"The format of the encoded audio data. Currently supports \"wav\" and \"mp3\".","type":"string","enum":["wav","mp3"],"title":"InputAudioFormat"}},"title":"InputAudio"}},"title":"ChatCompletionRequestMessageContentPartAudio"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_audio"]}}}]},{"allOf":[{"type":"object","required":["file"],"properties":{"file":{"type":"object","properties":{"file_data":{"type":["string","null"],"description":"The base64 encoded file data, used when passing the file to the model\nas a string."},"file_id":{"type":["string","null"],"description":"The ID of an uploaded file to use as input."},"filename":{"type":["string","null"],"description":"The name of the file, used when passing the file to the model as a\nstring."}},"title":"FileObject"}},"title":"ChatCompletionRequestMessageContentPartFile"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file"]}}}]}],"title":"ChatCompletionRequestUserMessageContentPart"},"description":"An array of content parts with a defined type. Supported options differ based on the [model](https://platform.openai.com/docs/models) being used to generate the response. Can contain text, image, or audio inputs."}],"title":"ChatCompletionRequestUserMessageContent"},"name":{"type":["string","null"],"description":"An optional name for the participant. Provides the model information to differentiate between participants of the same role."}},"title":"ChatCompletionRequestUserMessage"},{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["user"]}}}]},{"allOf":[{"type":"object","properties":{"audio":{"oneOf":[{"type":"null"},{"description":"Data about a previous audio response from the model.\n[Learn more](https://platform.openai.com/docs/guides/audio).","type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Unique identifier for a previous audio response from the model."}},"title":"ChatCompletionRequestAssistantMessageAudio"}]},"content":{"oneOf":[{"type":"null"},{"description":"The contents of the assistant message. Required unless `tool_calls` or `function_call` is specified.","oneOf":[{"type":"string","description":"The text contents of the message."},{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","required":["text"],"properties":{"text":{"type":"string"}},"title":"ChatCompletionRequestMessageContentPartText"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}}]},{"allOf":[{"type":"object","required":["refusal"],"properties":{"refusal":{"type":"string","description":"The refusal message generated by the model."}},"title":"ChatCompletionRequestMessageContentPartRefusal"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["refusal"]}}}]}],"title":"ChatCompletionRequestAssistantMessageContentPart"},"description":"An array of content parts with a defined type. Can be one or more of type `text`, or exactly one of type `refusal`."}],"title":"ChatCompletionRequestAssistantMessageContent"}]},"function_call":{"oneOf":[{"type":"null"},{"description":"Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.","type":"object","required":["name","arguments"],"properties":{"arguments":{"type":"string","description":"The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function."},"name":{"type":"string","description":"The name of the function to call."}},"title":"FunctionCall"}]},"name":{"type":["string","null"],"description":"An optional name for the participant. Provides the model information to differentiate between participants of the same role."},"refusal":{"type":["string","null"],"description":"The refusal message by the assistant."},"tool_calls":{"type":["array","null"],"items":{"oneOf":[{"allOf":[{"type":"object","required":["id","function"],"properties":{"function":{"description":"The function that the model called.","type":"object","required":["name","arguments"],"properties":{"arguments":{"type":"string","description":"The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function."},"name":{"type":"string","description":"The name of the function to call."}},"title":"FunctionCall"},"id":{"type":"string","description":"The ID of the tool call."}},"title":"ChatCompletionMessageToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function"]}}}]},{"allOf":[{"type":"object","required":["id","custom_tool"],"properties":{"custom_tool":{"description":"The custom tool that the model called.","type":"object","required":["name","input"],"properties":{"input":{"type":"string","description":"The input for the custom tool call generated by the model."},"name":{"type":"string","description":"The name of the custom tool to call."}},"title":"CustomTool"},"id":{"type":"string","description":"The ID of the tool call."}},"title":"ChatCompletionMessageCustomToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom"]}}}]}],"title":"ChatCompletionMessageToolCalls"}}},"title":"ChatCompletionRequestAssistantMessage"},{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["assistant"]}}}]},{"allOf":[{"type":"object","description":"Tool message","required":["content","tool_call_id"],"properties":{"content":{"description":"The contents of the tool message.","oneOf":[{"type":"string","description":"The text contents of the tool message."},{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","required":["text"],"properties":{"text":{"type":"string"}},"title":"ChatCompletionRequestMessageContentPartText"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}}]}],"title":"ChatCompletionRequestToolMessageContentPart"},"description":"An array of content parts with a defined type. For tool messages, only type `text` is supported."}],"title":"ChatCompletionRequestToolMessageContent"},"tool_call_id":{"type":"string"}},"title":"ChatCompletionRequestToolMessage"},{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["tool"]}}}]},{"allOf":[{"type":"object","required":["name"],"properties":{"content":{"type":["string","null"],"description":"The return value from the function call, to return to the model."},"name":{"type":"string","description":"The name of the function to call."}},"title":"ChatCompletionRequestFunctionMessage"},{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["function"]}}}]}],"title":"ChatCompletionRequestMessage"},"description":"A list of messages comprising the conversation so far. Depending on the\n[model](https://platform.openai.com/docs/models) you use, different message types (modalities)\nare supported, like [text](https://platform.openai.com/docs/guides/text-generation),\n[images](https://platform.openai.com/docs/guides/vision), and\n[audio](https://platform.openai.com/docs/guides/audio)."},"metadata":{"oneOf":[{"type":"null"},{"description":"Developer-defined tags and values used for filtering completions in the [dashboard](https://platform.openai.com/chat-completions).","title":"Metadata"}]},"modalities":{"type":["array","null"],"items":{"type":"string","description":"Output types that you would like the model to generate for this request.\n\nMost models are capable of generating text, which is the default: `[\"text\"]`\n\nThe `gpt-4o-audio-preview` model can also be used to [generate\naudio](https://platform.openai.com/docs/guides/audio). To request that this model generate both text and audio responses, you can use: `[\"text\", \"audio\"]`","enum":["text","audio"],"title":"ResponseModalities"},"description":"Output types that you would like the model to generate. Most models are capable of generating\ntext, which is the default:\n\n`[\"text\"]`\nThe `gpt-4o-audio-preview` model can also be used to\n[generate audio](https://platform.openai.com/docs/guides/audio). To request that this model\ngenerate both text and audio responses, you can use:\n\n`[\"text\", \"audio\"]`"},"model":{"type":"string","description":"Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\noffers a wide range of models with different capabilities, performance\ncharacteristics, and price points. Refer to the\n[model guide](https://platform.openai.com/docs/models)\nto browse and compare available models."},"n":{"type":["integer","null"],"format":"int32","description":"How many chat completion choices to generate for each input message. Note that you will be\ncharged based on the number of generated tokens across all of the choices. Keep `n` as `1` to\nminimize costs.","minimum":0},"parallel_tool_calls":{"type":["boolean","null"],"description":"Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling)\nduring tool use."},"prediction":{"oneOf":[{"type":"null"},{"description":"Configuration for a [Predicted Output](https://platform.openai.com/docs/guides/predicted-outputs),\nwhich can greatly improve response times when large parts of the model\nresponse are known ahead of time. This is most common when you are\nregenerating a file with only minor changes to most of the content.","oneOf":[{"type":"object","description":"The type of the predicted content you want to provide. This type is\ncurrently always `content`.","required":["content","type"],"properties":{"content":{"description":"The type of the predicted content you want to provide. This type is\ncurrently always `content`.","oneOf":[{"type":"string","description":"The content used for a Predicted Output. This is often the text of a file you are regenerating with minor changes."},{"type":"array","items":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}},"title":"ChatCompletionRequestMessageContentPartText"},"description":"An array of content parts with a defined type. Supported options differ based on the [model](https://platform.openai.com/docs/models) being used to generate the response. Can contain text inputs."}],"title":"PredictionContentContent"},"type":{"type":"string","enum":["content"]}}}],"title":"PredictionContent"}]},"presence_penalty":{"type":["number","null"],"format":"float","description":"Number between -2.0 and 2.0. Positive values penalize new tokens based on\nwhether they appear in the text so far, increasing the model's likelihood\nto talk about new topics."},"prompt_cache_key":{"type":["string","null"],"description":"Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces\nthe `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)."},"reasoning_effort":{"oneOf":[{"type":"null"},{"description":"Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `minimal`, `low`, `medium`, and `high`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\nNote: The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.","type":"string","enum":["none","minimal","low","medium","high","xhigh"],"title":"ReasoningEffort"}]},"response_format":{"oneOf":[{"type":"null"},{"description":"An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables\nStructured Outputs which ensures the model will match your supplied JSON\nschema. Learn more in the [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it.","oneOf":[{"type":"object","description":"The type of response format being defined: `text`","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}},{"type":"object","description":"The type of response format being defined: `json_object`","required":["type"],"properties":{"type":{"type":"string","enum":["json_object"]}}},{"type":"object","description":"The type of response format being defined: `json_schema`","required":["json_schema","type"],"properties":{"json_schema":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"],"description":"A description of what the response format is for, used by the model to determine how to respond in the format."},"name":{"type":"string","description":"The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."},"schema":{"description":"The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/)."},"strict":{"type":["boolean","null"],"description":"Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](https://platform.openai.com/docs/guides/structured-outputs)."}},"title":"ResponseFormatJsonSchema"},"type":{"type":"string","enum":["json_schema"]}}}],"title":"ResponseFormat"}]},"safety_identifier":{"type":["string","null"],"description":"A stable identifier used to help detect users of your application that may be violating OpenAI's\nusage policies.\n\nThe IDs should be a string that uniquely identifies each user. We recommend hashing their username\nor email address, in order to avoid sending us any identifying information. [Learn\nmore](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)."},"seed":{"type":["integer","null"],"format":"int64","description":"This feature is in Beta.\n\nIf specified, our system will make a best effort to sample deterministically, such that\nrepeated requests with the same `seed` and parameters should return the same result.\n\nDeterminism is not guaranteed, and you should refer to the `system_fingerprint` response\nparameter to monitor changes in the backend.","deprecated":true},"service_tier":{"oneOf":[{"type":"null"},{"description":"Specifies the processing type used for serving the request.\n- If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'.\n- If set to 'default', then the request will be processed with the standard pricing and performance for the selected model.\n- If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or '[priority](https://openai.com/api-priority-processing/)', then the request will be processed with the corresponding service tier.\n- When not set, the default behavior is 'auto'.\n\nWhen the `service_tier` parameter is set, the response body will include the `service_tier` value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter.","type":"string","enum":["auto","default","flex","scale","priority"],"title":"ServiceTier"}]},"stop":{"oneOf":[{"type":"null"},{"description":"Not supported with latest reasoning models `o3` and `o4-mini`.\n\nUp to 4 sequences where the API will stop generating further tokens. The\nreturned text will not contain the stop sequence.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"title":"StopConfiguration"}]},"store":{"type":["boolean","null"],"description":"Whether or not to store the output of this chat completion request for\nuse in our [model distillation](https://platform.openai.com/docs/guides/distillation) or\n[evals](https://platform.openai.com/docs/guides/evals) products.\n\nSupports text and image inputs. Note: image inputs over 8MB will be dropped."},"stream":{"type":["boolean","null"],"description":"If set to true, the model response data will be streamed to the client\nas it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).\nSee the [Streaming section below](https://platform.openai.com/docs/api-reference/chat/streaming)\nfor more information, along with the [streaming responses](https://platform.openai.com/docs/guides/streaming-responses)\nguide for more information on how to handle the streaming events."},"stream_options":{"oneOf":[{"type":"null"},{"type":"object","description":"Options for streaming response. Only set this when you set `stream: true`.","properties":{"include_obfuscation":{"type":["boolean","null"],"description":"When true, stream obfuscation will be enabled. Stream obfuscation adds\nrandom characters to an `obfuscation` field on streaming delta events to\nnormalize payload sizes as a mitigation to certain side-channel attacks.\nThese obfuscation fields are included by default, but add a small amount\nof overhead to the data stream. You can set `include_obfuscation` to\nfalse to optimize for bandwidth if you trust the network links between\nyour application and the OpenAI API."},"include_usage":{"type":["boolean","null"],"description":"If set, an additional chunk will be streamed before the `data: [DONE]`\nmessage. The `usage` field on this chunk shows the token usage statistics\nfor the entire request, and the `choices` field will always be an empty\narray.\n\nAll other chunks will also include a `usage` field, but with a null\nvalue. **NOTE:** If the stream is interrupted, you may not receive the\nfinal usage chunk which contains the total token usage for the request."}},"title":"ChatCompletionStreamOptions"}]},"temperature":{"type":["number","null"],"format":"float","description":"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random,\nwhile lower values like 0.2 will make it more focused and deterministic.\n\nWe generally recommend altering this or `top_p` but not both."},"tool_choice":{"oneOf":[{"type":"null"},{"description":"Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces\nthe model to call that tool.\n`none` is the default when no tools are present. `auto` is the default if tools are present.","oneOf":[{"allOf":[{"type":"object","required":["allowed_tools"],"properties":{"allowed_tools":{"type":"array","items":{"type":"object","required":["mode","tools"],"properties":{"mode":{"description":"Constrains the tools available to the model to a pre-defined set.\n\n`auto` allows the model to pick from among the allowed tools and generate a\nmessage.\n\n`required` requires the model to call one or more of the allowed tools.","type":"string","enum":["auto","required"],"title":"ToolChoiceAllowedMode"},"tools":{"type":"array","items":{},"description":"A list of tool definitions that the model should be allowed to call.\n\nFor the Chat Completions API, the list of tool definitions might look like:\n```json\n[\n { \"type\": \"function\", \"function\": { \"name\": \"get_weather\" } },\n { \"type\": \"function\", \"function\": { \"name\": \"get_time\" } }\n]\n```"}},"title":"ChatCompletionAllowedTools"}}},"title":"ChatCompletionAllowedToolsChoice"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["allowed_tools"]}}}]},{"allOf":[{"type":"object","description":"Specifies a tool the model should use. Use to force the model to call a specific function.","required":["function"],"properties":{"function":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name of the function to call."}},"title":"FunctionName"}},"title":"ChatCompletionNamedToolChoice"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function"]}}}]},{"allOf":[{"type":"object","required":["custom"],"properties":{"custom":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name of the custom tool to call."}},"title":"CustomName"}},"title":"ChatCompletionNamedToolChoiceCustom"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom"]}}}]},{"allOf":[{"type":"string","enum":["none","auto","required"],"title":"ToolChoiceOptions"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mode"]}}}]}],"title":"ChatCompletionToolChoiceOption"}]},"tools":{"type":["array","null"],"items":{"oneOf":[{"allOf":[{"description":"A function tool that can be used to generate a response.","type":"object","required":["function"],"properties":{"function":{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"],"description":"A description of what the function does, used by the model to choose when and how to call the function."},"name":{"type":"string","description":"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."},"parameters":{"description":"The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/text-generation/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list."},"strict":{"type":["boolean","null"],"description":"Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](https://platform.openai.com/docs/guides/function-calling)."}},"title":"FunctionObject"}},"title":"ChatCompletionTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function"]}}}],"description":"A function tool that can be used to generate a response."},{"allOf":[{"description":"A custom tool that processes input using a specified format.","type":"object","required":["custom"],"properties":{"custom":{"type":"object","required":["name","format"],"properties":{"description":{"type":["string","null"],"description":"Optional description of the custom tool, used to provide more context."},"format":{"description":"The input format for the custom tool. Default is unconstrained text.","oneOf":[{"type":"object","description":"Unconstrained free-form text.","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}},{"type":"object","description":"A grammar defined by the user.","required":["grammar","type"],"properties":{"grammar":{"type":"object","required":["definition","syntax"],"properties":{"definition":{"type":"string","description":"The grammar definition."},"syntax":{"description":"The syntax of the grammar definition. One of `lark` or `regex`.","type":"string","enum":["lark","regex"],"title":"GrammarSyntax"}},"title":"CustomGrammarFormatParam"},"type":{"type":"string","enum":["grammar"]}}}],"title":"CustomToolPropertiesFormat"},"name":{"type":"string","description":"The name of the custom tool, used to identify it in tool calls."}},"title":"CustomToolProperties"}},"title":"CustomToolChatCompletions"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom"]}}}],"description":"A custom tool that processes input using a specified format."}],"title":"ChatCompletionTools"},"description":"A list of tools the model may call. You can provide either\n[custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or\n[function tools](https://platform.openai.com/docs/guides/function-calling)."},"top_logprobs":{"type":["integer","null"],"format":"int32","description":"An integer between 0 and 20 specifying the number of most likely tokens to\nreturn at each token position, each with an associated log probability.\n`logprobs` must be set to `true` if this parameter is used.","minimum":0},"top_p":{"type":["number","null"],"format":"float","description":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability mass.\nSo 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or `temperature` but not both."},"user":{"type":["string","null"],"description":"This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key`\ninstead to maintain caching optimizations.\nA stable identifier for your end-users.\nUsed to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and\nprevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).","deprecated":true},"verbosity":{"oneOf":[{"type":"null"},{"description":"Constrains the verbosity of the model's response. Lower values will result in\nmore concise responses, while higher values will result in more verbose responses.\nCurrently supported values are `low`, `medium`, and `high`.","type":"string","enum":["low","medium","high"],"title":"Verbosity"}]},"web_search_options":{"oneOf":[{"type":"null"},{"description":"This tool searches the web for relevant results to use in a response.\nLearn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat).","type":"object","properties":{"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"Approximate location parameters for the search.","type":"object","required":["type","approximate"],"properties":{"approximate":{"type":"object","description":"Approximate location parameters for the search.","properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user, e.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g. `America/Los_Angeles`."}},"title":"WebSearchLocation"},"type":{"type":"string","enum":["approximate"],"title":"WebSearchUserLocationType"}},"title":"WebSearchUserLocation"}]}},"title":"WebSearchOptions"}]}},"title":"CreateChatCompletionRequest"},"example":{"model":"gpt-4o","messages":[{"role":"developer","content":"You are a helpful assistant."},{"role":"user","content":"Hello!"}],"stream":false}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-chat-completions.StatusCodes.json b/website/docs/api/HTTP/post-chat-completions.StatusCodes.json new file mode 100644 index 000000000..86802614b --- /dev/null +++ b/website/docs/api/HTTP/post-chat-completions.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Chat completion generated successfully","content":{"application/json":{"schema":{"type":"object","description":"Represents a chat completion response returned by model, based on the provided input.","required":["id","choices","created","model","object"],"properties":{"choices":{"type":"array","items":{"type":"object","required":["index","message"],"properties":{"finish_reason":{"oneOf":[{"type":"null"},{"description":"The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,\n`length` if the maximum number of tokens specified in the request was reached,\n`content_filter` if content was omitted due to a flag from our content filters,\n`tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function.","type":"string","enum":["stop","length","tool_calls","content_filter","function_call"],"title":"FinishReason"}]},"index":{"type":"integer","format":"int32","description":"The index of the choice in the list of choices.","minimum":0},"logprobs":{"oneOf":[{"type":"null"},{"description":"Log probability information for the choice.","type":"object","properties":{"content":{"type":["array","null"],"items":{"type":"object","required":["token","logprob","top_logprobs"],"properties":{"bytes":{"type":["array","null"],"items":{"type":"integer","format":"int32","minimum":0},"description":"A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token."},"logprob":{"type":"number","format":"float","description":"The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely."},"token":{"type":"string","description":"The token."},"top_logprobs":{"type":"array","items":{"type":"object","required":["token","logprob"],"properties":{"bytes":{"type":["array","null"],"items":{"type":"integer","format":"int32","minimum":0},"description":"A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token."},"logprob":{"type":"number","format":"float","description":"The log probability of this token."},"token":{"type":"string","description":"The token."}},"title":"TopLogprobs"},"description":"List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned."}},"title":"ChatCompletionTokenLogprob"},"description":"A list of message content tokens with log probability information."},"refusal":{"type":["array","null"],"items":{"type":"object","required":["token","logprob","top_logprobs"],"properties":{"bytes":{"type":["array","null"],"items":{"type":"integer","format":"int32","minimum":0},"description":"A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token."},"logprob":{"type":"number","format":"float","description":"The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely."},"token":{"type":"string","description":"The token."},"top_logprobs":{"type":"array","items":{"type":"object","required":["token","logprob"],"properties":{"bytes":{"type":["array","null"],"items":{"type":"integer","format":"int32","minimum":0},"description":"A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token."},"logprob":{"type":"number","format":"float","description":"The log probability of this token."},"token":{"type":"string","description":"The token."}},"title":"TopLogprobs"},"description":"List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned."}},"title":"ChatCompletionTokenLogprob"}}},"title":"ChatChoiceLogprobs"}]},"message":{"type":"object","description":"A chat completion message generated by the model.","required":["role"],"properties":{"annotations":{"type":["array","null"],"items":{"oneOf":[{"type":"object","required":["url_citation","type"],"properties":{"type":{"type":"string","enum":["url_citation"]},"url_citation":{"type":"object","required":["end_index","start_index","title","url"],"properties":{"end_index":{"type":"integer","format":"int32","description":"The index of the last character of the URL citation in the message.","minimum":0},"start_index":{"type":"integer","format":"int32","description":"The index of the first character of the URL citation in the message.","minimum":0},"title":{"type":"string","description":"The title of the web resource."},"url":{"type":"string","description":"The URL of the web resource."}},"title":"UrlCitation"}}}],"title":"ChatCompletionResponseMessageAnnotation"}},"audio":{"oneOf":[{"type":"null"},{"description":"If the audio output modality is requested, this object contains data about the audio response from the model. [Learn more](https://platform.openai.com/docs/guides/audio).","type":"object","required":["id","expires_at","data","transcript"],"properties":{"data":{"type":"string","description":"Base64 encoded audio bytes generated by the model, in the format specified in the request."},"expires_at":{"type":"integer","format":"int64","description":"The Unix timestamp (in seconds) for when this audio response will no longer be accessible on the server for use in multi-turn conversations.","minimum":0},"id":{"type":"string","description":"Unique identifier for this audio response."},"transcript":{"type":"string","description":"Transcript of the audio generated by the model."}},"title":"ChatCompletionResponseMessageAudio"}]},"content":{"type":["string","null"],"description":"The contents of the message."},"function_call":{"oneOf":[{"type":"null"},{"description":"Deprecated and replaced by `tool_calls`.\nThe name and arguments of a function that should be called, as generated by the model.","type":"object","required":["name","arguments"],"properties":{"arguments":{"type":"string","description":"The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function."},"name":{"type":"string","description":"The name of the function to call."}},"title":"FunctionCall"}]},"refusal":{"type":["string","null"],"description":"The refusal message generated by the model."},"role":{"description":"The role of the author of this message.","type":"string","enum":["user","assistant","system","developer"],"title":"Role"},"tool_calls":{"type":["array","null"],"items":{"oneOf":[{"allOf":[{"type":"object","required":["id","function"],"properties":{"function":{"description":"The function that the model called.","type":"object","required":["name","arguments"],"properties":{"arguments":{"type":"string","description":"The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function."},"name":{"type":"string","description":"The name of the function to call."}},"title":"FunctionCall"},"id":{"type":"string","description":"The ID of the tool call."}},"title":"ChatCompletionMessageToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function"]}}}]},{"allOf":[{"type":"object","required":["id","custom_tool"],"properties":{"custom_tool":{"description":"The custom tool that the model called.","type":"object","required":["name","input"],"properties":{"input":{"type":"string","description":"The input for the custom tool call generated by the model."},"name":{"type":"string","description":"The name of the custom tool to call."}},"title":"CustomTool"},"id":{"type":"string","description":"The ID of the tool call."}},"title":"ChatCompletionMessageCustomToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom"]}}}]}],"title":"ChatCompletionMessageToolCalls"},"description":"The tool calls generated by the model, such as function calls."}},"title":"ChatCompletionResponseMessage"}},"title":"ChatChoice"},"description":"A list of chat completion choices. Can be more than one if `n` is greater than 1."},"created":{"type":"integer","format":"int32","description":"The Unix timestamp (in seconds) of when the chat completion was created.","minimum":0},"id":{"type":"string","description":"A unique identifier for the chat completion."},"model":{"type":"string","description":"The model used for the chat completion."},"object":{"type":"string","description":"The object type, which is always `chat.completion`."},"service_tier":{"oneOf":[{"type":"null"},{"description":"The service tier used for processing the request. This field is only included if the `service_tier` parameter is specified in the request.","type":"string","enum":["auto","default","flex","scale","priority"],"title":"ServiceTier"}]},"system_fingerprint":{"type":["string","null"],"description":"This fingerprint represents the backend configuration that the model runs with.\n\nCan be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism.","deprecated":true},"usage":{"oneOf":[{"type":"null"},{"type":"object","description":"Usage statistics for the completion request.","required":["prompt_tokens","completion_tokens","total_tokens"],"properties":{"completion_tokens":{"type":"integer","format":"int32","description":"Number of tokens in the generated completion.","minimum":0},"completion_tokens_details":{"oneOf":[{"type":"null"},{"description":"Breakdown of tokens used in a completion.","type":"object","properties":{"accepted_prediction_tokens":{"type":["integer","null"],"format":"int32","minimum":0},"audio_tokens":{"type":["integer","null"],"format":"int32","description":"Audio input tokens generated by the model.","minimum":0},"reasoning_tokens":{"type":["integer","null"],"format":"int32","description":"Tokens generated by the model for reasoning.","minimum":0},"rejected_prediction_tokens":{"type":["integer","null"],"format":"int32","description":" When using Predicted Outputs, the number of tokens in the\nprediction that did not appear in the completion. However, like\nreasoning tokens, these tokens are still counted in the total\ncompletion tokens for purposes of billing, output, and context\nwindow limits.","minimum":0}},"title":"CompletionTokensDetails"}]},"prompt_tokens":{"type":"integer","format":"int32","description":"Number of tokens in the prompt.","minimum":0},"prompt_tokens_details":{"oneOf":[{"type":"null"},{"description":"Breakdown of tokens used in the prompt.","type":"object","properties":{"audio_tokens":{"type":["integer","null"],"format":"int32","description":"Audio input tokens present in the prompt.","minimum":0},"cached_tokens":{"type":["integer","null"],"format":"int32","description":"Cached tokens present in the prompt.","minimum":0}},"title":"PromptTokensDetails"}]},"total_tokens":{"type":"integer","format":"int32","description":"Total number of tokens used in the request (prompt + completion).","minimum":0}},"title":"CompletionUsage"}]}},"title":"CreateChatCompletionResponse"},"example":{"id":"chatcmpl-123","object":"chat.completion","created":1677652288,"model":"gpt-4o-mini","system_fingerprint":"fp_44709d6fcb","choices":[{"index":0,"message":{"role":"assistant","content":"\n\nHello there, how may I assist you today?"},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":9,"completion_tokens":12,"total_tokens":21,"completion_tokens_details":{"reasoning_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}}}}}},"404":{"description":"The specified model was not found"},"500":{"description":"An internal server error occurred while processing the chat completion","content":{"application/json":{"schema":{},"example":{"error":"An internal server error occurred while processing the chat completion."}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-chat-completions.api.mdx b/website/docs/api/HTTP/post-chat-completions.api.mdx index 19795de80..55845373d 100644 --- a/website/docs/api/HTTP/post-chat-completions.api.mdx +++ b/website/docs/api/HTTP/post-chat-completions.api.mdx @@ -5,7 +5,7 @@ description: "Creates a model response for the given chat conversation." sidebar_label: "Create Chat Completion" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/post-dataset-refresh.ParamsDetails.json b/website/docs/api/HTTP/post-dataset-refresh.ParamsDetails.json new file mode 100644 index 000000000..6b3594153 --- /dev/null +++ b/website/docs/api/HTTP/post-dataset-refresh.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"name","in":"path","description":"The name of the dataset to refresh.","required":true,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-dataset-refresh.RequestSchema.json b/website/docs/api/HTTP/post-dataset-refresh.RequestSchema.json new file mode 100644 index 000000000..d98944f46 --- /dev/null +++ b/website/docs/api/HTTP/post-dataset-refresh.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"On-demand refresh request for a specific dataset.","content":{"application/json":{"schema":{"type":"object","description":"[`RefreshOverrides`] specifies the configurable options for a individual run of a refresh task.","properties":{"refresh_jitter_max":{"type":["string","null"],"description":"The maximum amount of jitter to add to the refresh. Defaults to the `refresh_jitter_max` specified in the spicepod, or 10% of the `refresh_check_interval`.","example":"10s"},"refresh_mode":{"oneOf":[{"type":"null"},{"description":"The refresh mode to use for this refresh. Defaults to the `refresh_mode` specified in the spicepod, or `full`.","type":"string","enum":["disabled","full","append","changes","caching"],"title":"RefreshMode"}]},"refresh_sql":{"type":["string","null"],"description":"The SQL statement used for this refresh. Defaults to the `refresh_sql` specified in the spicepod, if any."}},"title":"RefreshOverrides"},"example":{"refresh_sql":"SELECT * FROM taxi_trips WHERE tip_amount > 10.0","refresh_mode":"full","refresh_jitter_max":"10s"}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-dataset-refresh.StatusCodes.json b/website/docs/api/HTTP/post-dataset-refresh.StatusCodes.json new file mode 100644 index 000000000..cda723968 --- /dev/null +++ b/website/docs/api/HTTP/post-dataset-refresh.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"201":{"description":"Dataset refresh triggered successfully","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The message describing the result of the request"}},"title":"MessageResponse"},"example":{"message":"Dataset refresh triggered for taxi_trips."}}}},"400":{"description":"Acceleration not enabled for the dataset","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The message describing the result of the request"}},"title":"MessageResponse"},"example":{"message":"Dataset taxi_trips does not have acceleration enabled"}}}},"404":{"description":"Dataset not found","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The message describing the result of the request"}},"title":"MessageResponse"},"example":{"message":"Dataset taxi_trips not found"}}}},"500":{"description":"Internal server error occurred while processing refresh","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The message describing the result of the request"}},"title":"MessageResponse"},"example":{"message":"Unexpected internal error occurred while processing refresh"}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-dataset-refresh.api.mdx b/website/docs/api/HTTP/post-dataset-refresh.api.mdx index 86709dffc..8b9a628c3 100644 --- a/website/docs/api/HTTP/post-dataset-refresh.api.mdx +++ b/website/docs/api/HTTP/post-dataset-refresh.api.mdx @@ -5,7 +5,7 @@ description: "Trigger an on-demand refresh for an accelerated dataset." sidebar_label: "Refresh Dataset" hide_title: true hide_table_of_contents: true -api: eJzlV9tuGzcQ/RWCQIGkWOsSpECrhwJp4qIBErhxHPTBEbT0cqRlwiVpcla2Iey/F0NSu5LXdZL2rdGLJHI4nDlz5sIdR7EJfHHJXwkUATDwZcElhMorh8oavuAXXm024JkwzJoTCY0wknlYewg1W9u4IaoKNHiBIJlMmiYfzUdzUavAwEhnlUGGSVP4F6ouaugFrdF3TDinFQSGlpXrVuuSka5SOAdGlr1sYyUE9sRYZGVVC7OBUMbFpxNecOvoImXNa8kX3NmAq3zlKivgBXfCiwYQPOG040Y0wBfpq+CKEHICSfAebDUwEmJ2zbCGvS9kcNZNFni4bpUHyRfoWyh4qGpoBF/sON45uiegV2bDu26ZhCHgb1bekcTxfWcjQLN4ApYFB5Vaq6oHlRe8sgbBICmLeFYRjOmnQBp3Y2Ps1SeocOTqZXmerjzbgvdKQiiX+/soRDWwypq12rReXGlgNh4M2TBlpNoq2QrNfGsILtG7gCJ8JkOdp1ChgkDW5N3VJ4UIftWI28HGyz1iBTet1g/QuQbWiFvVtA0TjW0N0pVJFQVHSElfOBBuwl7BWrQaw36jHFtQ9g5LpkyUCk5V4KwsmPVsPvthz4T+dFVD9XmlDILfCl2So3ArGqcJ6/ks8K7ofSXOkpfWwNk6EjHHJHrZFffpcJgwdJZMbwNEzJGy8svO0bEvuZVyjyw/5mvBwbQNhUOqQEGXvOAkywuecpTolxKSfomqpmPLgqPC6H+m1Fvyu1seIBGu9TeG+/27NyygQGjAIKEgvwWGcK0fRUGtmTB3E951I+P7fKBI9qHdHbvC35++OX15wX5kv5+fvWUobtUKvXKB/fXH6fkpQ+VWmai/svlsMuP3WbEH9qG8SDzquvulJi4EZ01IOfVsNh/XlNwUhnRMBRwkC21VQQh08d1/KSSDUZe8gRDEBiiGx/m+3xhVxQdzOwmztHOlzCbncmg17lMwl8ajmL1NB88zKvdC1tvwCCiRVH34iBGk//lsNkb2xb7LKWsYdScwMUsyMft28Z1ie5AE0kKICNViC8N0QLhlzHqcn/8zg0nB2rap7HzfgA5QJNx+eoifr6kpGaFZAL8Fz8B765mtqtYT029qpYE5b6kIkNXDuPQ9ofvBwK2DCmNbyIB9LVJdQr8BrO1++ozTJtZ8wafb+TSXgDDd0RzZTQ+5Px0ATxFKw2nrqaHUiG4xnWpbCV3bgIufZ7/MRgi9oW0mYQvautgZk6YJe5mHNWA3CmtWnpyQxnLCaQgNULVe4V28Tzi1+gz0e0l7FOTzYUg9HXe8UWsa9TJz3MtSi9xPwTRwr22Mfg6Vbw2qOIqP4x97tGSDiFYVUDwX/Rj/womqhpNnsasqCQapy/vjna7ghHBSPJ/M55PZSWsCUvWhTQpdI8yB2tz/2au+ih9Ztxuy5P/8vMoZinCLU6eFMgRWpOgu8/ySb+cEzv7xWfBFflgdkn2gAxUEYjSd3O2uRIAPXncdLV+34CMRC74VXsXYEEX7+XOxFjrAI5F4cp4r0FP2dY+3B/3Li8LQXLQVuqV/vOAxTRI/4jhbg5BEtMtd3nqZDDm5IAXD0VERpVk/naAhwuGjssuDCvPn2fsLXvCr/HzM+ebFDeErbpKZ+W0Wc5bWdlwLs2lTvUs66fM3sES38Q== +api: eJzlV99v2zYQ/lcIAgPaQbGdogM2Pwzomgwr0CJrmmIPqWEx4tliSpEMeXISGPrfhyNpyY6ytN3eVr/YJo/Hu++++8EtR7EOfH7JTwSKABj4ouASQuWVQ2UNn/MLr9Zr8EwYZs2RhEYYyTysPISarWzcEFUFGrxAkEwmTZNP5pO5qFVgYKSzyiDDpCn8C1UXNfSC1uh7JpzTCgJDy8pVq3XJSFcpnAMjy162sRICe2YssrKqhVlDKOPi8wkvuHV0kbLmjeRz7mzAZb5ymRXwgjvhRQMInnDaciMa4PP0VXBFCDmBJPgAthoYCTG7YljDzhcyOOsmCzzctMqD5HP0LRQ8VDU0gs+3HO8d3RPQK7PmXbdIwhDwNyvvSeLwvrMRoFk8AcuCg0qtVNWDygteWYNgkJRFPKsIxvQ6kMbt2Bh7dQ0Vjly9LM/TlWcb8F5JCOVidx+FqAZWWbNS69aLKw3MxoMhG6aMVBslW6GZbw3BJXoXUITPZKjzFCpUEMiavLu8Vojgl424G2y83CFWcNNq/Qida2CNuFNN2zDR2NYgXZlUUXCElPSFA+Em7ARWotUYdhvl2IKyd1gyZaJUcKoCZ2XBrGfHsx92TOhPVzVUn5fKIPiN0CU5CneicZqwPp4F3hW9r8RZ8tIaOFtFIuaYRC+74iEd9hOGzpLpbYCIOVJWftk5OvYlt1LukeWHfC04mLahcEgVKOiSF5xkecFTjhL9UkLSL1HVdGxRcFQY/c+Uekd+d4s9JMKN/sZwf3j/lgUUCA0YJBTkt8AQbvSTKKgVE+Z+wrtuZHyfDxTJPrTbQ1f4h9O3p68v2I/s9/OzdwzFnVqiVy6wv/44PT9lqNwyE/VXdjybzPhDVuyAfSwvEo+67mGpiQvBWRNSTr2YHY9rSm4KQzqmAg6ShbaqIAS6+P6/FJLBqEveQAhiDRTDw3zfbYyq4qO5nYRZ2rlSZp1zObQadymYS+NBzN6lg+cZlQch6214ApRIqj58xAjS/3I2GyP7atfllDWMuhOYmCWZmH27+E6x3UsCaSFEhGqxgWE6INwyZj3OL/+ZwaRgZdtUdr5vQAcoEm4/PcbPN9SUjNAsgN+AZ+C99cxWVeuJ6be10sCct1QEyOphXPqe0P1o4M5BhbEtZMC+Fqkuod8A1nY3fcZpE2s+59PN8TSXgDDd0hzZTfe5Px0ATxFKw2nrqaHUiG4+nWpbCV3bgPOfZ7/MRgi9pW0mYQPautgZk6YJe52HNWC3CmtWHh2RxnLCaQgNULVe4X28Tzi1/Az0e0F7FOTzYUg9HXe8UWsa9TJz2MtSi9xNwTRwr2yMfg6Vbw2qOIqP4x97tGSDiFYVUDzn/Rj/yomqhqMXsasqCQapy/vDna7ghHBS/GIym8yOWhOQig/tUeQaYfa05vbPTvoifmDcdkiS//PrKicowh1OnRbKEFiRodtM80u+OSZwdm/Pgs/zu2qf6wMbqB4QoenkdnslAnz0uuto+aYFH3lY8I3wKsaGGNqPn/OV0AGeiMSz81yAnrOve7s96l9eFIbGoo3QLf3jBY9ZkvgRp9kahCSeXW7z1utkyNEFKRiOjmoojfrpBM0QDp+UXewVmD/PPlzwgl/l12NONy9uCV9xm8zMT7OYsrS25VqYdZvKXdJJn78Bbju3wA== sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request 10.0","refresh_mode":"full","refresh_jitter_max":"10s"}}},"required":true}} + {...require("./post-dataset-refresh.RequestSchema.json")} > diff --git a/website/docs/api/HTTP/post-embeddings.RequestSchema.json b/website/docs/api/HTTP/post-embeddings.RequestSchema.json new file mode 100644 index 000000000..c776af1f5 --- /dev/null +++ b/website/docs/api/HTTP/post-embeddings.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"Embedding creation request parameters","content":{"application/json":{"schema":{"type":"object","required":["model","input"],"properties":{"dimensions":{"type":["integer","null"],"format":"int32","description":"The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models.","minimum":0},"encoding_format":{"oneOf":[{"type":"null"},{"description":"The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).","type":"string","enum":["float","base64"],"title":"EncodingFormat"}]},"input":{"description":"Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single\nrequest, pass an array of strings or array of token arrays. The input must not exceed the max\ninput tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and\nany array must be 2048 dimensions or less. [Example Python\ncode](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.\nIn addition to the per-input token limit, all embedding models enforce a maximum of 300,000\ntokens summed across all inputs in a single request.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},{"type":"array","items":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}}}],"title":"EmbeddingInput"},"model":{"type":"string","description":"ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list)\nAPI to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models)\nfor descriptions of them."},"user":{"type":["string","null"],"description":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.\n[Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)."}},"title":"CreateEmbeddingRequest"},"example":{"input":"The food was delicious and the waiter...","model":"text-embedding-ada-002","encoding_format":"float"}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-embeddings.StatusCodes.json b/website/docs/api/HTTP/post-embeddings.StatusCodes.json new file mode 100644 index 000000000..47bb9be75 --- /dev/null +++ b/website/docs/api/HTTP/post-embeddings.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Embedding created successfully","content":{"application/json":{"schema":{"type":"object","required":["object","model","data","usage"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Represents an embedding vector returned by embedding endpoint.","required":["index","object","embedding"],"properties":{"embedding":{"description":"The embedding vector, which is a list of floats. The length of vector\ndepends on the model as listed in the [embedding guide](https://platform.openai.com/docs/guides/embeddings).","oneOf":[{"type":"array","items":{"type":"number","format":"float"}},{"type":"string"}],"title":"EmbeddingVector"},"index":{"type":"integer","format":"int32","description":"The index of the embedding in the list of embeddings.","minimum":0},"object":{"type":"string","description":"The object type, which is always \"embedding\"."}},"title":"Embedding"},"description":"The list of embeddings generated by the model."},"model":{"type":"string","description":"The name of the model used to generate the embedding."},"object":{"type":"string"},"usage":{"description":"The usage information for the request.","type":"object","required":["prompt_tokens","total_tokens"],"properties":{"prompt_tokens":{"type":"integer","format":"int32","description":"The number of tokens used by the prompt.","minimum":0},"total_tokens":{"type":"integer","format":"int32","description":"The total number of tokens used by the request.","minimum":0}},"title":"EmbeddingUsage"}},"title":"CreateEmbeddingResponse"},"example":{"object":"list","data":[{"object":"embedding","embedding":[0.0023064255,-0.009327292,-0.0028842222],"index":0}],"model":"text-embedding-ada-002","usage":{"prompt_tokens":8,"total_tokens":8}}}}},"404":{"description":"Model not found","content":{"application/json":{"schema":{"type":"string"},"example":{"error":"model not found"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"string"},"example":{"error":"Unexpected internal server error occurred"}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-embeddings.api.mdx b/website/docs/api/HTTP/post-embeddings.api.mdx index e42a202c9..bfcec0e7b 100644 --- a/website/docs/api/HTTP/post-embeddings.api.mdx +++ b/website/docs/api/HTTP/post-embeddings.api.mdx @@ -5,7 +5,7 @@ description: "Creates an embedding vector representing the input text." sidebar_label: "Create Embeddings" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/post-nsql.ParamsDetails.json b/website/docs/api/HTTP/post-nsql.ParamsDetails.json new file mode 100644 index 000000000..82fe3a9eb --- /dev/null +++ b/website/docs/api/HTTP/post-nsql.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"Accept","in":"header","description":"The format of the response, one of 'application/json' (default), 'application/vnd.spiceai.nsql.v1+json', 'application/sql', 'text/csv' or 'text/plain'. 'application/sql' will only return the SQL query generated by the model.","required":true,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-nsql.RequestSchema.json b/website/docs/api/HTTP/post-nsql.RequestSchema.json new file mode 100644 index 000000000..7ce2dfc45 --- /dev/null +++ b/website/docs/api/HTTP/post-nsql.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"Request body to generate an NSQL query","content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"datasets":{"type":["array","null"],"items":{"type":"string"},"description":"Names of datasets to sample from when constructing model context; this is a sampling hint and does not restrict which tables queries can target. If omitted, all datasets are used."},"model":{"type":"string","description":"The name of the model to use for SQL generation. Default: \"nql\""},"query":{"type":"string","description":"The natural language query to be converted into SQL"},"sample_data_enabled":{"type":"boolean","description":"Whether sample data is included in the context for SQL generation. Default: true"},"stream":{"type":"boolean","description":"If true, streams the response instead of waiting for completion"}},"title":"Request"},"example":{"query":"Get the top 5 customers by total sales","model":"nql","stream":false,"sample_data_enabled":true,"datasets":["sales_data"]}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-nsql.StatusCodes.json b/website/docs/api/HTTP/post-nsql.StatusCodes.json new file mode 100644 index 000000000..83994e1b6 --- /dev/null +++ b/website/docs/api/HTTP/post-nsql.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"SQL query executed successfully","content":{"application/json":{"schema":{"type":"array","items":{}},"example":[{"customer_id":"12345","total_sales":150000},{"customer_id":"67890","total_sales":125000}]},"application/sql":{"schema":{"type":"string"},"example":"\n SELECT customer_id, SUM(total_sales)\n FROM sales_data\n GROUP BY customer_id\n ORDER BY SUM(total_sales) DESC\n LIMIT 5\n "},"application/vnd.spiceai.nsql.v1+json":{"schema":{},"example":{"row_count":2,"schema":{"fields":[{"name":"customer_id","data_type":"String","nullable":false,"dict_id":0,"dict_is_ordered":false},{"name":"total_sales","data_type":"Int64","nullable":false,"dict_id":0,"dict_is_ordered":false}]},"data":[{"customer_id":"12345","total_sales":150000},{"customer_id":"67890","total_sales":125000}],"sql":"SELECT customer_id, SUM(total_sales) AS total_sales\nFROM sales_data\nGROUP BY customer_id\nORDER BY total_sales DESC\nLIMIT 5"}},"text/event-stream":{"schema":{"type":"string"},"example":"data: {\"row_count\": 2, \"schema\": {...}, \"data\": [...], \"sql\": \"SELECT ...\"}\n\n"}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"string"},"example":"Model nsql not found"}}},"500":{"description":"Internal server error","content":{"text/plain":{"schema":{"type":"string"},"example":"No query produced from NSQL model"}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-nsql.api.mdx b/website/docs/api/HTTP/post-nsql.api.mdx index ac663915f..3ae71e740 100644 --- a/website/docs/api/HTTP/post-nsql.api.mdx +++ b/website/docs/api/HTTP/post-nsql.api.mdx @@ -5,7 +5,7 @@ description: "Generate and optionally execute a natural-language text-to-SQL (NS sidebar_label: "Text-to-SQL (NSQL)" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/post-responses.RequestSchema.json b/website/docs/api/HTTP/post-responses.RequestSchema.json new file mode 100644 index 000000000..a4e92ec3f --- /dev/null +++ b/website/docs/api/HTTP/post-responses.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"Create a response using the OpenAI Responses API format. This endpoint provides a more flexible conversation interface compared to Chat Completions.","content":{"application/json":{"schema":{"type":"object","description":"Builder for a Responses API request.","required":["input"],"properties":{"background":{"type":["boolean","null"],"description":"Whether to run the model response in the background.\n[Learn more](https://platform.openai.com/docs/guides/background)."},"conversation":{"oneOf":[{"type":"null"},{"description":"The conversation that this response belongs to. Items from this conversation are prepended to\n `input_items` for this response request.\n\nInput items and output items from this response are automatically added to this conversation after\nthis response completes.","oneOf":[{"type":"string","description":"The unique ID of the conversation."},{"description":"The conversation that this response belongs to.","type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The unique ID of the conversation."}},"title":"Conversation"}],"title":"ConversationParam"}]},"include":{"type":["array","null"],"items":{"type":"string","enum":["file_search_call.results","web_search_call.results","web_search_call.action.sources","message.input_image.image_url","computer_call_output.output.image_url","code_interpreter_call.outputs","reasoning.encrypted_content","message.output_text.logprobs"],"title":"IncludeEnum"},"description":"Specify additional output data to include in the model response. Currently supported\nvalues are:\n\n- `web_search_call.action.sources`: Include the sources of the web search tool call.\n\n- `code_interpreter_call.outputs`: Includes the outputs of python code execution in code\n interpreter tool call items.\n\n- `computer_call_output.output.image_url`: Include image urls from the computer call\n output.\n\n- `file_search_call.results`: Include the search results of the file search tool call.\n\n- `message.input_image.image_url`: Include image urls from the input message.\n\n- `message.output_text.logprobs`: Include logprobs with assistant messages.\n\n- `reasoning.encrypted_content`: Includes an encrypted version of reasoning tokens in\n reasoning item outputs. This enables reasoning items to be used in multi-turn\n conversations when using the Responses API statelessly (like when the `store` parameter is\n set to `false`, or when an organization is enrolled in the zero data retention program)."},"input":{"description":"Text, image, or file inputs to the model, used to generate a response.\n\nLearn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Image inputs](https://platform.openai.com/docs/guides/images)\n- [File inputs](https://platform.openai.com/docs/guides/pdf-files)\n- [Conversation state](https://platform.openai.com/docs/guides/conversation-state)\n- [Function calling](https://platform.openai.com/docs/guides/function-calling)","oneOf":[{"type":"string","description":" A text input to the model, equivalent to a text input with the\n`user` role."},{"type":"array","items":{"oneOf":[{"description":"A reference to an existing item by ID.\nHas a required `id` field and optional `type` (can be \"item_reference\" or null).\nMust be tried first as it's the most minimal structure.","type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the item to reference."},"type":{"oneOf":[{"type":"null"},{"description":"The type of item to reference. Can be \"item_reference\" or null.","type":"string","enum":["item_reference"],"title":"ItemReferenceType"}]}},"title":"ItemReference"},{"description":"All structured items with proper type discrimination.\nIncludes InputMessage, OutputMessage, and all tool calls/outputs.\nUses the discriminated `Item` enum for efficient, type-safe deserialization.","oneOf":[{"allOf":[{"description":"A message (type: \"message\").\nCan represent InputMessage (user/system/developer) or OutputMessage (assistant).\n\nInputMessage:\n A message input to the model with a role indicating instruction following hierarchy.\n Instructions given with the developer or system role take precedence over instructions given with the user role.\nOutputMessage:\n A message output from the model.","oneOf":[{"description":"An output message from the model (role: assistant, has required id & status).\nThis must come first as it has the most specific structure (required id and status fields).","type":"object","required":["content","id","role","status"],"properties":{"content":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text output from the model.","type":"object","required":["annotations","text"],"properties":{"annotations":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A citation to a file.","type":"object","required":["file_id","filename","index"],"properties":{"file_id":{"type":"string","description":"The ID of the file."},"filename":{"type":"string","description":"The filename of the file cited."},"index":{"type":"integer","format":"int32","description":"The index of the file in the list of files.","minimum":0}},"title":"FileCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_citation"]}}}],"description":"A citation to a file."},{"allOf":[{"description":"A citation for a web resource used to generate a model response.","type":"object","required":["end_index","start_index","title","url"],"properties":{"end_index":{"type":"integer","format":"int32","description":"The index of the last character of the URL citation in the message.","minimum":0},"start_index":{"type":"integer","format":"int32","description":"The index of the first character of the URL citation in the message.","minimum":0},"title":{"type":"string","description":"The title of the web resource."},"url":{"type":"string","description":"The URL of the web resource."}},"title":"UrlCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["url_citation"]}}}],"description":"A citation for a web resource used to generate a model response."},{"allOf":[{"description":"A citation for a container file used to generate a model response.","type":"object","required":["container_id","end_index","file_id","filename","start_index"],"properties":{"container_id":{"type":"string","description":"The ID of the container file."},"end_index":{"type":"integer","format":"int32","description":"The index of the last character of the container file citation in the message.","minimum":0},"file_id":{"type":"string","description":"The ID of the file."},"filename":{"type":"string","description":"The filename of the container file cited."},"start_index":{"type":"integer","format":"int32","description":"The index of the first character of the container file citation in the message.","minimum":0}},"title":"ContainerFileCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["container_file_citation"]}}}],"description":"A citation for a container file used to generate a model response."},{"allOf":[{"description":"A path to a file.","type":"object","required":["file_id","index"],"properties":{"file_id":{"type":"string","description":"The ID of the file."},"index":{"type":"integer","format":"int32","description":"The index of the file in the list of files.","minimum":0}},"title":"FilePath"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_path"]}}}],"description":"A path to a file."}],"title":"Annotation"},"description":"The annotations of the text output."},"logprobs":{"type":["array","null"],"items":{"type":"object","required":["bytes","logprob","token","top_logprobs"],"properties":{"bytes":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"logprob":{"type":"number","format":"double"},"token":{"type":"string"},"top_logprobs":{"type":"array","items":{"type":"object","required":["bytes","logprob","token"],"properties":{"bytes":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"logprob":{"type":"number","format":"double"},"token":{"type":"string"}},"title":"TopLogProb"}}},"title":"LogProb"}},"text":{"type":"string","description":"The text output from the model."}},"title":"OutputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["output_text"]}}}],"description":"A text output from the model."},{"allOf":[{"description":"A refusal from the model.","type":"object","required":["refusal"],"properties":{"refusal":{"type":"string","description":"The refusal explanation from the model."}},"title":"RefusalContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["refusal"]}}}],"description":"A refusal from the model."}],"title":"OutputMessageContent"},"description":"The content of the output message."},"id":{"type":"string","description":"The unique ID of the output message."},"role":{"description":"The role of the output message. Always `assistant`.","type":"string","enum":["assistant"],"title":"AssistantRole"},"status":{"description":"The status of the message input. One of `in_progress`, `completed`, or\n`incomplete`. Populated when input items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"OutputMessage"},{"description":"A structured input message (role: user/system/developer, content is `Vec`).\nHas structured content list and optional id/status fields.\n\nA message input to the model with a role indicating instruction following hierarchy.\nInstructions given with the `developer` or `system` role take precedence over instructions\ngiven with the `user` role.","type":"object","required":["content","role"],"properties":{"content":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"},"description":"A list of one or many input items to the model, containing different content types."},"role":{"description":"The role of the message input. One of `user`, `system`, or `developer`.\nNote: `assistant` is NOT allowed here; use OutputMessage instead.","type":"string","enum":["user","system","developer"],"title":"InputRole"},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"InputMessage"}],"title":"MessageItem"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["message"]}}}],"description":"A message (type: \"message\").\nCan represent InputMessage (user/system/developer) or OutputMessage (assistant).\n\nInputMessage:\n A message input to the model with a role indicating instruction following hierarchy.\n Instructions given with the developer or system role take precedence over instructions given with the user role.\nOutputMessage:\n A message output from the model."},{"allOf":[{"description":"The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information.","type":"object","required":["id","queries","status"],"properties":{"id":{"type":"string","description":"The unique ID of the file search tool call."},"queries":{"type":"array","items":{"type":"string"},"description":"The queries used to search for files."},"results":{"type":["array","null"],"items":{"type":"object","description":"A single result from a file search.","required":["attributes","file_id","filename","score","text"],"properties":{"attributes":{"type":"object","description":"Set of 16 key-value pairs that can be attached to an object. This can be useful for storing\nadditional information about the object in a structured format, and querying for objects\nAPI or the dashboard. Keys are strings with a maximum length of 64 characters\n. Values are strings with a maximum length of 512 characters, booleans, or numbers.","additionalProperties":{},"propertyNames":{"type":"string"}},"file_id":{"type":"string","description":"The unique ID of the file."},"filename":{"type":"string","description":"The name of the file."},"score":{"type":"number","format":"float","description":"The relevance score of the file - a value between 0 and 1."},"text":{"type":"string","description":"The text that was retrieved from the file."}},"title":"FileSearchToolCallResult"},"description":"The results of the file search tool call."},"status":{"description":"The status of the file search tool call. One of `in_progress`, `searching`,\n`incomplete`,`failed`, or `completed`.","type":"string","enum":["in_progress","searching","incomplete","failed","completed"],"title":"FileSearchToolCallStatus"}},"title":"FileSearchToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_search_call"]}}}],"description":"The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information."},{"allOf":[{"description":"A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information.","type":"object","required":["action","call_id","id","pending_safety_checks","status"],"properties":{"action":{"oneOf":[{"allOf":[{"description":"A click action.","type":"object","required":["button","x","y"],"properties":{"button":{"description":"Indicates which mouse button was pressed during the click. One of `left`,\n`right`, `wheel`, `back`, or `forward`.","type":"string","enum":["left","right","wheel","back","forward"],"title":"ClickButtonType"},"x":{"type":"integer","format":"int32","description":"The x-coordinate where the click occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the click occurred."}},"title":"ClickParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["click"]}}}],"description":"A click action."},{"allOf":[{"description":"A double click action.","type":"object","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate where the double click occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the double click occurred."}},"title":"DoubleClickAction"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["double_click"]}}}],"description":"A double click action."},{"allOf":[{"description":"A drag action.","type":"object","required":["path"],"properties":{"path":{"type":"array","items":{"type":"object","description":"A point in 2D space.","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate."},"y":{"type":"integer","format":"int32","description":"The y-coordinate."}},"title":"DragPoint"},"description":"The path of points the cursor drags through."}},"title":"Drag"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["drag"]}}}],"description":"A drag action."},{"allOf":[{"description":"A collection of keypresses the model would like to perform.","type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The combination of keys the model is requesting to be pressed.\nThis is an array of strings, each representing a key."}},"title":"KeyPressAction"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["keypress"]}}}],"description":"A collection of keypresses the model would like to perform."},{"allOf":[{"description":"A mouse move action.","type":"object","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate to move to."},"y":{"type":"integer","format":"int32","description":"The y-coordinate to move to."}},"title":"Move"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["move"]}}}],"description":"A mouse move action."},{"type":"object","description":"A screenshot action.","required":["type"],"properties":{"type":{"type":"string","enum":["screenshot"]}}},{"allOf":[{"description":"A scroll action.","type":"object","required":["scroll_x","scroll_y","x","y"],"properties":{"scroll_x":{"type":"integer","format":"int32","description":"The horizontal scroll distance."},"scroll_y":{"type":"integer","format":"int32","description":"The vertical scroll distance."},"x":{"type":"integer","format":"int32","description":"The x-coordinate where the scroll occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the scroll occurred."}},"title":"Scroll"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["scroll"]}}}],"description":"A scroll action."},{"allOf":[{"description":"An action to type in text.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text to type."}},"title":"Type"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["type"]}}}],"description":"An action to type in text."},{"type":"object","description":"A wait action.","required":["type"],"properties":{"type":{"type":"string","enum":["wait"]}}}],"description":"Represents all user‐triggered actions.","title":"ComputerAction"},"call_id":{"type":"string","description":"An identifier used when responding to the tool call with output."},"id":{"type":"string","description":"The unique ID of the computer call."},"pending_safety_checks":{"type":"array","items":{"type":"object","required":["id"],"properties":{"code":{"type":["string","null"],"description":"The type of the pending safety check."},"id":{"type":"string","description":"The ID of the pending safety check."},"message":{"type":["string","null"],"description":"Details about the pending safety check."}},"title":"ComputerCallSafetyCheckParam"},"description":"The pending safety checks for the computer call."},"status":{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"ComputerToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_call"]}}}],"description":"A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information."},{"allOf":[{"description":"The output of a computer tool call.","type":"object","required":["call_id","output"],"properties":{"acknowledged_safety_checks":{"type":["array","null"],"items":{"type":"object","required":["id"],"properties":{"code":{"type":["string","null"],"description":"The type of the pending safety check."},"id":{"type":"string","description":"The ID of the pending safety check."},"message":{"type":["string","null"],"description":"Details about the pending safety check."}},"title":"ComputerCallSafetyCheckParam"},"description":"The safety checks reported by the API that have been acknowledged by the developer."},"call_id":{"type":"string","description":"The ID of the computer tool call that produced the output."},"id":{"type":["string","null"],"description":"The unique ID of the computer tool call output. Optional when creating."},"output":{"description":"A computer screenshot image used with the computer use tool.","type":"object","required":["type"],"properties":{"file_id":{"type":["string","null"],"description":"The identifier of an uploaded file that contains the screenshot."},"image_url":{"type":["string","null"],"description":"The URL of the screenshot image."},"type":{"description":"Specifies the event type. For a computer screenshot, this property is always\nset to `computer_screenshot`.","type":"string","enum":["computer_screenshot"],"title":"ComputerScreenshotImageType"}},"title":"ComputerScreenshotImage"},"status":{"oneOf":[{"type":"null"},{"description":"The status of the message input. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when input items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"ComputerCallOutputItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_call_output"]}}}],"description":"The output of a computer tool call."},{"allOf":[{"description":"The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information.","type":"object","required":["action","id","status"],"properties":{"action":{"description":"An object describing the specific action taken in this web search call. Includes\ndetails on how the model used the web (search, open_page, find).","oneOf":[{"allOf":[{"description":"Action type \"search\" - Performs a web search query.","type":"object","required":["query"],"properties":{"query":{"type":"string","description":"The search query."},"sources":{"type":["array","null"],"items":{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","description":"The type of source. Always `url`."},"url":{"type":"string","description":"The URL of the source."}},"title":"WebSearchActionSearchSource"},"description":"The sources used in the search."}},"title":"WebSearchActionSearch"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["search"]}}}],"description":"Action type \"search\" - Performs a web search query."},{"allOf":[{"description":"Action type \"open_page\" - Opens a specific URL from search results.","type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL opened by the model."}},"title":"WebSearchActionOpenPage"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["open_page"]}}}],"description":"Action type \"open_page\" - Opens a specific URL from search results."},{"allOf":[{"description":"Action type \"find\": Searches for a pattern within a loaded page.","type":"object","required":["url","pattern"],"properties":{"pattern":{"type":"string","description":"The pattern or text to search for within the page."},"url":{"type":"string","description":"The URL of the page searched for the pattern."}},"title":"WebSearchActionFind"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["find"]}}}],"description":"Action type \"find\": Searches for a pattern within a loaded page."}],"title":"WebSearchToolCallAction"},"id":{"type":"string","description":"The unique ID of the web search tool call."},"status":{"description":"The status of the web search tool call.","type":"string","enum":["in_progress","searching","completed","failed"],"title":"WebSearchToolCallStatus"}},"title":"WebSearchToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_call"]}}}],"description":"The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information."},{"allOf":[{"description":"A tool call to run a function. See the\n\n[function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information.","type":"object","required":["arguments","call_id","name"],"properties":{"arguments":{"type":"string","description":"A JSON string of the arguments to pass to the function."},"call_id":{"type":"string","description":"The unique ID of the function tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the function tool call."},"name":{"type":"string","description":"The name of the function to run."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"FunctionToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function_call"]}}}],"description":"A tool call to run a function. See the\n\n[function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information."},{"allOf":[{"description":"The output of a function tool call.","type":"object","required":["call_id","output"],"properties":{"call_id":{"type":"string","description":"The unique ID of the function tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the function tool call output.\nPopulated when this item is returned via API."},"output":{"description":"Text, image, or file output of the function tool call.","oneOf":[{"type":"string","description":"A JSON string of the output of the function tool call."},{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"}}],"title":"FunctionCallOutput"},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"FunctionCallOutputItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function_call_output"]}}}],"description":"The output of a function tool call."},{"allOf":[{"description":"A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state).","type":"object","required":["id","summary"],"properties":{"content":{"type":["array","null"],"items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The reasoning text from the model."}},"title":"ReasoningTextContent"},"description":"Reasoning text content."},"encrypted_content":{"type":["string","null"],"description":"The encrypted content of the reasoning item - populated when a response is generated with\n`reasoning.encrypted_content` in the `include` parameter."},"id":{"type":"string","description":"Unique identifier of the reasoning content."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]},"summary":{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","description":"A single summary text fragment from reasoning.","required":["text"],"properties":{"text":{"type":"string","description":"A summary of the reasoning output from the model so far."}},"title":"Summary"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["summary_text"]}}}]}],"title":"SummaryPart"},"description":"Reasoning summary content."}},"title":"ReasoningItem"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["reasoning"]}}}],"description":"A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state)."},{"allOf":[{"description":"A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact).","type":"object","required":["encrypted_content"],"properties":{"encrypted_content":{"type":"string","description":"The encrypted content."},"id":{"type":["string","null"],"description":"The ID of the compaction item."}},"title":"CompactionSummaryItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["compaction"]}}}],"description":"A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact)."},{"allOf":[{"description":"An image generation request made by the model.","type":"object","required":["id","status"],"properties":{"id":{"type":"string","description":"The unique ID of the image generation call."},"result":{"type":["string","null"],"description":"The generated image encoded in base64."},"status":{"description":"The status of the image generation call.","type":"string","enum":["in_progress","completed","generating","failed"],"title":"ImageGenToolCallStatus"}},"title":"ImageGenToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image_generation_call"]}}}],"description":"An image generation request made by the model."},{"allOf":[{"description":"A tool call to run code.","type":"object","required":["container_id","id","status"],"properties":{"code":{"type":["string","null"],"description":"The code to run, or null if not available."},"container_id":{"type":"string","description":"ID of the container used to run the code."},"id":{"type":"string","description":"The unique ID of the code interpreter tool call."},"outputs":{"type":["array","null"],"items":{"oneOf":[{"allOf":[{"description":"Code interpreter output logs","type":"object","required":["logs"],"properties":{"logs":{"type":"string","description":"The logs output from the code interpreter."}},"title":"CodeInterpreterOutputLogs"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["logs"]}}}],"description":"Code interpreter output logs"},{"allOf":[{"description":"Code interpreter output image","type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL of the image output from the code interpreter."}},"title":"CodeInterpreterOutputImage"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image"]}}}],"description":"Code interpreter output image"}],"description":"Individual result from a code interpreter: either logs or files.","title":"CodeInterpreterToolCallOutput"},"description":"The outputs generated by the code interpreter, such as logs or images.\nCan be null if no outputs are available."},"status":{"description":"The status of the code interpreter tool call.\nValid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`.","type":"string","enum":["in_progress","completed","incomplete","interpreting","failed"],"title":"CodeInterpreterToolCallStatus"}},"title":"CodeInterpreterToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["code_interpreter_call"]}}}],"description":"A tool call to run code."},{"allOf":[{"description":"A tool call to run a command on the local shell.","type":"object","required":["action","call_id","id","status"],"properties":{"action":{"description":"Execute a shell command on the server.","type":"object","required":["command","env"],"properties":{"command":{"type":"array","items":{"type":"string"},"description":"The command to run."},"env":{"type":"object","description":"Environment variables to set for the command.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"timeout_ms":{"type":["integer","null"],"format":"int64","description":"Optional timeout in milliseconds for the command.","minimum":0},"user":{"type":["string","null"],"description":"Optional user to run the command as."},"working_directory":{"type":["string","null"],"description":"Optional working directory to run the command in."}},"title":"LocalShellExecAction"},"call_id":{"type":"string","description":"The unique ID of the local shell tool call generated by the model."},"id":{"type":"string","description":"The unique ID of the local shell call."},"status":{"description":"The status of the local shell call.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"LocalShellToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["local_shell_call"]}}}],"description":"A tool call to run a command on the local shell."},{"allOf":[{"description":"The output of a local shell tool call.","type":"object","required":["id","output"],"properties":{"id":{"type":"string","description":"The unique ID of the local shell tool call generated by the model."},"output":{"type":"string","description":"A JSON string of the output of the local shell tool call."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"LocalShellToolCallOutput"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["local_shell_call_output"]}}}],"description":"The output of a local shell tool call."},{"allOf":[{"description":"A tool representing a request to execute one or more shell commands.","type":"object","required":["call_id","action"],"properties":{"action":{"description":"The shell commands and limits that describe how to run the tool call.","type":"object","required":["commands"],"properties":{"commands":{"type":"array","items":{"type":"string"},"description":"Ordered shell commands for the execution environment to run."},"max_output_length":{"type":["integer","null"],"format":"int64","description":"Maximum number of UTF-8 characters to capture from combined stdout and stderr output.","minimum":0},"timeout_ms":{"type":["integer","null"],"format":"int64","description":"Maximum wall-clock time in milliseconds to allow the shell commands to run.","minimum":0}},"title":"FunctionShellActionParam"},"call_id":{"type":"string","description":"The unique ID of the shell tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the shell tool call. Populated when this item is returned via API."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the shell call. One of `in_progress`, `completed`, or `incomplete`.","type":"string","enum":["in_progress","completed","incomplete"],"title":"FunctionShellCallItemStatus"}]}},"title":"FunctionShellCallItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["shell_call"]}}}],"description":"A tool representing a request to execute one or more shell commands."},{"allOf":[{"description":"The streamed output items emitted by a shell tool call.","type":"object","required":["call_id","output"],"properties":{"call_id":{"type":"string","description":"The unique ID of the shell tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the shell tool call output. Populated when this item is returned via API."},"max_output_length":{"type":["integer","null"],"format":"int64","description":"The maximum number of UTF-8 characters captured for this shell call's combined output.","minimum":0},"output":{"type":"array","items":{"type":"object","description":"Captured stdout and stderr for a portion of a shell tool call output.","required":["stdout","stderr","outcome"],"properties":{"outcome":{"description":"The exit or timeout outcome associated with this chunk.","oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["timeout"]}}},{"allOf":[{"type":"object","description":"Indicates that the shell commands finished and returned an exit code.","required":["exit_code"],"properties":{"exit_code":{"type":"integer","format":"int32","description":"The exit code returned by the shell process."}},"title":"FunctionShellCallOutputExitOutcomeParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["exit"]}}}]}],"title":"FunctionShellCallOutputOutcomeParam"},"stderr":{"type":"string","description":"Captured stderr output for this chunk of the shell call."},"stdout":{"type":"string","description":"Captured stdout output for this chunk of the shell call."}},"title":"FunctionShellCallOutputContentParam"},"description":"Captured chunks of stdout and stderr output, along with their associated outcomes."}},"title":"FunctionShellCallOutputItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["shell_call_output"]}}}],"description":"The streamed output items emitted by a shell tool call."},{"allOf":[{"description":"A tool call representing a request to create, delete, or update files using diff patches.","type":"object","required":["call_id","status","operation"],"properties":{"call_id":{"type":"string","description":"The unique ID of the apply patch tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the apply patch tool call. Populated when this item is returned via API."},"operation":{"description":"The specific create, delete, or update instruction for the apply_patch tool call.","oneOf":[{"allOf":[{"type":"object","description":"Instruction for creating a new file via the apply_patch tool.","required":["path","diff"],"properties":{"diff":{"type":"string","description":"Unified diff content to apply when creating the file."},"path":{"type":"string","description":"Path of the file to create relative to the workspace root."}},"title":"ApplyPatchCreateFileOperationParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["create_file"]}}}]},{"allOf":[{"type":"object","description":"Instruction for deleting an existing file via the apply_patch tool.","required":["path"],"properties":{"path":{"type":"string","description":"Path of the file to delete relative to the workspace root."}},"title":"ApplyPatchDeleteFileOperationParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["delete_file"]}}}]},{"allOf":[{"type":"object","description":"Instruction for updating an existing file via the apply_patch tool.","required":["path","diff"],"properties":{"diff":{"type":"string","description":"Unified diff content to apply to the existing file."},"path":{"type":"string","description":"Path of the file to update relative to the workspace root."}},"title":"ApplyPatchUpdateFileOperationParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["update_file"]}}}]}],"title":"ApplyPatchOperationParam"},"status":{"description":"The status of the apply patch tool call. One of `in_progress` or `completed`.","type":"string","enum":["in_progress","completed"],"title":"ApplyPatchCallStatusParam"}},"title":"ApplyPatchToolCallItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch_call"]}}}],"description":"A tool call representing a request to create, delete, or update files using diff patches."},{"allOf":[{"description":"The streamed output emitted by an apply patch tool call.","type":"object","required":["call_id","status"],"properties":{"call_id":{"type":"string","description":"The unique ID of the apply patch tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the apply patch tool call output. Populated when this item is returned via API."},"output":{"type":["string","null"],"description":"Optional human-readable log text from the apply patch tool (e.g., patch results or errors)."},"status":{"description":"The status of the apply patch tool call output. One of `completed` or `failed`.","type":"string","enum":["completed","failed"],"title":"ApplyPatchCallOutputStatusParam"}},"title":"ApplyPatchToolCallOutputItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch_call_output"]}}}],"description":"The streamed output emitted by an apply patch tool call."},{"allOf":[{"description":"A list of tools available on an MCP server.","type":"object","required":["id","server_label","tools"],"properties":{"error":{"type":["string","null"],"description":"Error message if listing failed."},"id":{"type":"string","description":"The unique ID of the list."},"server_label":{"type":"string","description":"The label of the MCP server."},"tools":{"type":"array","items":{"type":"object","required":["input_schema","name"],"properties":{"annotations":{"description":"Additional annotations about the tool."},"description":{"type":["string","null"],"description":"The description of the tool."},"input_schema":{"description":"The JSON schema describing the tool's input."},"name":{"type":"string","description":"The name of the tool."}},"title":"MCPListToolsTool"},"description":"The tools available on the server."}},"title":"MCPListTools"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_list_tools"]}}}],"description":"A list of tools available on an MCP server."},{"allOf":[{"description":"A request for human approval of a tool invocation.","type":"object","required":["arguments","id","name","server_label"],"properties":{"arguments":{"type":"string","description":"JSON string of arguments for the tool."},"id":{"type":"string","description":"The unique ID of the approval request."},"name":{"type":"string","description":"The name of the tool to run."},"server_label":{"type":"string","description":"The label of the MCP server making the request."}},"title":"MCPApprovalRequest"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_approval_request"]}}}],"description":"A request for human approval of a tool invocation."},{"allOf":[{"description":"A response to an MCP approval request.","type":"object","required":["approval_request_id","approve"],"properties":{"approval_request_id":{"type":"string","description":"The ID of the approval request being answered."},"approve":{"type":"boolean","description":"Whether the request was approved."},"id":{"type":["string","null"],"description":"The unique ID of the approval response"},"reason":{"type":["string","null"],"description":"Optional reason for the decision."}},"title":"MCPApprovalResponse"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_approval_response"]}}}],"description":"A response to an MCP approval request."},{"allOf":[{"description":"An invocation of a tool on an MCP server.","type":"object","required":["arguments","id","name","server_label"],"properties":{"approval_request_id":{"type":["string","null"],"description":"Unique identifier for the MCP tool call approval request. Include this value\nin a subsequent `mcp_approval_response` input to approve or reject the corresponding\ntool call."},"arguments":{"type":"string","description":"A JSON string of the arguments passed to the tool."},"error":{"type":["string","null"],"description":"Error message from the call, if any."},"id":{"type":"string","description":"The unique ID of the tool call."},"name":{"type":"string","description":"The name of the tool that was run."},"output":{"type":["string","null"],"description":"The output from the tool call."},"server_label":{"type":"string","description":"The label of the MCP server running the tool."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the tool call. One of `in_progress`, `completed`, `incomplete`,\n`calling`, or `failed`.","type":"string","enum":["in_progress","completed","incomplete","calling","failed"],"title":"MCPToolCallStatus"}]}},"title":"MCPToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_call"]}}}],"description":"An invocation of a tool on an MCP server."},{"allOf":[{"description":"The output of a custom tool call from your code, being sent back to the model.","type":"object","required":["call_id","output"],"properties":{"call_id":{"type":"string","description":"The call ID, used to map this custom tool call output to a custom tool call."},"id":{"type":["string","null"],"description":"The unique ID of the custom tool call output in the OpenAI platform."},"output":{"description":"The output from the custom tool call generated by your code.\nCan be a string or an list of output content.","oneOf":[{"type":"string","description":"A string of the output of the custom tool call."},{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"},"description":"Text, image, or file output of the custom tool call."}],"title":"CustomToolCallOutputOutput"}},"title":"CustomToolCallOutput"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom_tool_call_output"]}}}],"description":"The output of a custom tool call from your code, being sent back to the model."},{"allOf":[{"description":"A call to a custom tool created by the model.","type":"object","required":["call_id","input","name","id"],"properties":{"call_id":{"type":"string","description":"An identifier used to map this custom tool call to a tool call output."},"id":{"type":"string","description":"The unique ID of the custom tool call in the OpenAI platform."},"input":{"type":"string","description":"The input for the custom tool call generated by the model."},"name":{"type":"string","description":"The name of the custom tool being called."}},"title":"CustomToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom_tool_call"]}}}],"description":"A call to a custom tool created by the model."}],"title":"Item"},{"description":"A simple, user-friendly message input (EasyInputMessage).\nSupports string content and can include assistant role for previous responses.\nMust be tried last as it's the most flexible structure.\n\nA message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions.","type":"object","required":["type","role","content"],"properties":{"content":{"description":"Text, image, or audio input to the model, used to generate a response.\nCan also contain previous assistant responses.","oneOf":[{"type":"string","description":"A text input to the model."},{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"},"description":"A list of one or many input items to the model, containing different content types."}],"title":"EasyInputContent"},"role":{"description":"The role of the message input. One of `user`, `assistant`, `system`, or `developer`.","type":"string","enum":["user","assistant","system","developer"],"title":"Role"},"type":{"description":"The type of the message input. Always set to `message`.","type":"string","enum":["message"],"title":"MessageType"}},"title":"EasyInputMessage"}],"description":"Input item that can be used in the context for generating a response.\n\nThis represents the OpenAPI `InputItem` schema which is an `anyOf`:\n1. `EasyInputMessage` - Simple, user-friendly message input (can use string content)\n2. `Item` - Structured items with proper type discrimination (including InputMessage, OutputMessage, tool calls)\n3. `ItemReferenceParam` - Reference to an existing item by ID (type can be null)\n\nUses untagged deserialization because these types overlap in structure.\nOrder matters: more specific structures are tried first.\n\n# OpenAPI Specification\nCorresponds to the `InputItem` schema: `anyOf[EasyInputMessage, Item, ItemReferenceParam]`","title":"InputItem"},"description":"A list of one or many input items to the model, containing\ndifferent content types."}],"title":"InputParam"},"instructions":{"type":["string","null"],"description":"A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous\nresponse will not be carried over to the next response. This makes it simple\nto swap out system (or developer) messages in new responses."},"max_output_tokens":{"type":["integer","null"],"format":"int32","description":"An upper bound for the number of tokens that can be generated for a response, including\nvisible output tokens and [reasoning tokens](https://platform.openai.com/docs/guides/reasoning).","minimum":0},"max_tool_calls":{"type":["integer","null"],"format":"int32","description":"The maximum number of total calls to built-in tools that can be processed in a response. This\nmaximum number applies across all built-in tool calls, not per individual tool. Any further\nattempts to call a tool by the model will be ignored.","minimum":0},"metadata":{"type":["object","null"],"description":"Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are\nstrings with a maximum length of 512 characters.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"model":{"type":["string","null"],"description":"Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\noffers a wide range of models with different capabilities, performance\ncharacteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\nto browse and compare available models."},"parallel_tool_calls":{"type":["boolean","null"],"description":"Whether to allow the model to run tool calls in parallel."},"previous_response_id":{"type":["string","null"],"description":"The unique ID of the previous response to the model. Use this to create multi-turn conversations.\nLearn more about [conversation state](https://platform.openai.com/docs/guides/conversation-state).\nCannot be used in conjunction with `conversation`."},"prompt":{"oneOf":[{"type":"null"},{"description":"Reference to a prompt template and its variables.\n[Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts).","type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The unique identifier of the prompt template to use."},"variables":{"oneOf":[{"type":"null"},{"description":"Optional map of values to substitute in for variables in your\nprompt. The substitution values can either be strings, or other\nResponse input types like images or files.","oneOf":[{"type":"string"},{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"},{}],"title":"ResponsePromptVariables"}]},"version":{"type":["string","null"],"description":"Optional version of the prompt template."}},"title":"Prompt"}]},"prompt_cache_key":{"type":["string","null"],"description":"Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces\nthe `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)."},"prompt_cache_retention":{"oneOf":[{"type":"null"},{"description":"The retention policy for the prompt cache. Set to `24h` to enable extended prompt caching,\nwhich keeps cached prefixes active for longer, up to a maximum of 24 hours. [Learn\nmore](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).","type":"string","enum":["in-memory","24h"],"title":"PromptCacheRetention"}]},"reasoning":{"oneOf":[{"type":"null"},{"description":"**gpt-5 and o-series models only**\nConfiguration options for [reasoning models](https://platform.openai.com/docs/guides/reasoning).","type":"object","properties":{"effort":{"oneOf":[{"type":"null"},{"description":"Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `minimal`, `low`, `medium`, and `high`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\n\nNote: The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.","type":"string","enum":["none","minimal","low","medium","high","xhigh"],"title":"ReasoningEffort"}]},"summary":{"oneOf":[{"type":"null"},{"description":"A summary of the reasoning performed by the model. This can be\nuseful for debugging and understanding the model's reasoning process.\nOne of `auto`, `concise`, or `detailed`.\n\n`concise` is supported for `computer-use-preview` models and all reasoning models after\n`gpt-5`.","type":"string","enum":["auto","concise","detailed"],"title":"ReasoningSummary"}]}},"title":"Reasoning"}]},"safety_identifier":{"type":["string","null"],"description":"A stable identifier used to help detect users of your application that may be violating OpenAI's\nusage policies.\n\nThe IDs should be a string that uniquely identifies each user. We recommend hashing their username\nor email address, in order to avoid sending us any identifying information. [Learn\nmore](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)."},"service_tier":{"oneOf":[{"type":"null"},{"description":"Specifies the processing type used for serving the request.\n- If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'.\n- If set to 'default', then the request will be processed with the standard pricing and performance for the selected model.\n- If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or '[priority](https://openai.com/api-priority-processing/)', then the request will be processed with the corresponding service tier.\n- When not set, the default behavior is 'auto'.\n\nWhen the `service_tier` parameter is set, the response body will include the `service_tier` value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter.","type":"string","enum":["auto","default","flex","scale","priority"],"title":"ServiceTier"}]},"store":{"type":["boolean","null"],"description":"Whether to store the generated model response for later retrieval via API."},"stream":{"type":["boolean","null"],"description":"If set to true, the model response data will be streamed to the client\nas it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).\nSee the [Streaming section below](https://platform.openai.com/docs/api-reference/responses-streaming)\nfor more information."},"stream_options":{"oneOf":[{"type":"null"},{"description":"Options for streaming responses. Only set this when you set `stream: true`.","type":"object","properties":{"include_obfuscation":{"type":["boolean","null"],"description":"When true, stream obfuscation will be enabled. Stream obfuscation adds\nrandom characters to an `obfuscation` field on streaming delta events to\nnormalize payload sizes as a mitigation to certain side-channel attacks.\nThese obfuscation fields are included by default, but add a small amount\nof overhead to the data stream. You can set `include_obfuscation` to\nfalse to optimize for bandwidth if you trust the network links between\nyour application and the OpenAI API."}},"title":"ResponseStreamOptions"}]},"temperature":{"type":["number","null"],"format":"float","description":"What sampling temperature to use, between 0 and 2. Higher values like 0.8\nwill make the output more random, while lower values like 0.2 will make it\nmore focused and deterministic. We generally recommend altering this or\n`top_p` but not both."},"text":{"oneOf":[{"type":"null"},{"description":"Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)","type":"object","required":["format"],"properties":{"format":{"description":"An object specifying the format that the model must output.\n\nConfiguring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\nwhich ensures the model will match your supplied JSON schema. Learn more in the\n[Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nThe default format is `{ \"type\": \"text\" }` with no additional options.\n\n**Not recommended for gpt-4o and newer models:**\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it.","oneOf":[{"type":"object","description":"Default response format. Used to generate text responses.","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}},{"type":"object","description":"JSON object response format. An older method of generating JSON responses.\nUsing `json_schema` is recommended for models that support it.\nNote that the model will not generate JSON without a system or user message\ninstructing it to do so.","required":["type"],"properties":{"type":{"type":"string","enum":["json_object"]}}},{"allOf":[{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"],"description":"A description of what the response format is for, used by the model to determine how to respond in the format."},"name":{"type":"string","description":"The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."},"schema":{"description":"The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/)."},"strict":{"type":["boolean","null"],"description":"Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](https://platform.openai.com/docs/guides/structured-outputs)."}},"title":"ResponseFormatJsonSchema","description":"JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)."},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["json_schema"]}}}],"description":"JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)."}],"title":"TextResponseFormatConfiguration"},"verbosity":{"oneOf":[{"type":"null"},{"description":"Constrains the verbosity of the model's response. Lower values will result in\nmore concise responses, while higher values will result in more verbose responses.\n\nCurrently supported values are `low`, `medium`, and `high`.","type":"string","enum":["low","medium","high"],"title":"Verbosity"}]}},"title":"ResponseTextParam"}]},"tool_choice":{"oneOf":[{"type":"null"},{"description":"How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call.","oneOf":[{"allOf":[{"description":"Constrains the tools available to the model to a pre-defined set.","type":"object","required":["mode","tools"],"properties":{"mode":{"description":"Constrains the tools available to the model to a pre-defined set.\n\n`auto` allows the model to pick from among the allowed tools and generate a\nmessage.\n\n`required` requires the model to call one or more of the allowed tools.","type":"string","enum":["auto","required"],"title":"ToolChoiceAllowedMode"},"tools":{"type":"array","items":{},"description":"A list of tool definitions that the model should be allowed to call.\n\nFor the Responses API, the list of tool definitions might look like:\n```json\n[\n { \"type\": \"function\", \"name\": \"get_weather\" },\n { \"type\": \"mcp\", \"server_label\": \"deepwiki\" },\n { \"type\": \"image_generation\" }\n]\n```"}},"title":"ToolChoiceAllowed"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["allowed_tools"]}}}],"description":"Constrains the tools available to the model to a pre-defined set."},{"allOf":[{"description":"Use this option to force the model to call a specific function.","type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name of the function to call."}},"title":"ToolChoiceFunction"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function"]}}}],"description":"Use this option to force the model to call a specific function."},{"allOf":[{"description":"Use this option to force the model to call a specific tool on a remote MCP server.","type":"object","required":["name","server_label"],"properties":{"name":{"type":"string","description":"The name of the tool to call on the server."},"server_label":{"type":"string","description":"The label of the MCP server to use."}},"title":"ToolChoiceMCP"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp"]}}}],"description":"Use this option to force the model to call a specific tool on a remote MCP server."},{"allOf":[{"description":"Use this option to force the model to call a custom tool.","type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name of the custom tool to call."}},"title":"ToolChoiceCustom"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom"]}}}],"description":"Use this option to force the model to call a custom tool."},{"type":"object","description":"Forces the model to call the apply_patch tool when executing a tool call.","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch"]}}},{"type":"object","description":"Forces the model to call the function shell tool when a tool call is required.","required":["type"],"properties":{"type":{"type":"string","enum":["shell"]}}},{"allOf":[{"description":"Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).","oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_search"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_preview"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_use_preview"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["code_interpreter"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image_generation"]}}}],"title":"ToolChoiceTypes"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["hosted"]}}}],"description":"Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https://platform.openai.com/docs/guides/tools)."},{"allOf":[{"type":"string","enum":["none","auto","required"],"title":"ToolChoiceOptions","description":"Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools."},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mode"]}}}],"description":"Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools."}],"title":"ToolChoiceParam"}]},"tools":{"type":["array","null"],"items":{"oneOf":[{"allOf":[{"description":"Defines a function in your own code the model can choose to call. Learn more about [function\ncalling](https://platform.openai.com/docs/guides/tools).","type":"object","required":["name"],"properties":{"description":{"type":["string","null"],"description":"A description of the function. Used by the model to determine whether or not to call the\nfunction."},"name":{"type":"string","description":"The name of the function to call."},"parameters":{"description":"A JSON schema object describing the parameters of the function."},"strict":{"type":["boolean","null"],"description":"Whether to enforce strict parameter validation. Default `true`."}},"title":"FunctionTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function"]}}}],"description":"Defines a function in your own code the model can choose to call. Learn more about [function\ncalling](https://platform.openai.com/docs/guides/tools)."},{"allOf":[{"description":"A tool that searches for relevant content from uploaded files. Learn more about the [file search\ntool](https://platform.openai.com/docs/guides/tools-file-search).","type":"object","required":["vector_store_ids"],"properties":{"filters":{"oneOf":[{"type":"null"},{"description":"A filter to apply.","oneOf":[{"description":"A filter used to compare a specified attribute key to a given value using a defined\ncomparison operation.","type":"object","required":["type","key","value"],"properties":{"key":{"type":"string","description":"The key to compare against the value."},"type":{"description":"Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.\n- `eq`: equals\n- `ne`: not equal\n- `gt`: greater than\n- `gte`: greater than or equal\n- `lt`: less than\n- `lte`: less than or equal\n- `in`: in\n- `nin`: not in","type":"string","enum":["eq","ne","gt","gte","lt","lte","in","nin"],"title":"ComparisonType"},"value":{"description":"The value to compare against the attribute key; supports string, number, or boolean types."}},"title":"ComparisonFilter"},{"description":"Combine multiple filters using `and` or `or`.","type":"object","required":["type","filters"],"properties":{"filters":{"type":"array","items":{"oneOf":"circular()","description":"Filters for file search.","title":"Filter"},"description":"Array of filters to combine. Items can be ComparisonFilter or CompoundFilter."},"type":{"type":"string","enum":["and","or"],"description":"'Type of operation: `and` or `or`.'"}},"title":"CompoundFilter"}],"title":"Filter"}]},"max_num_results":{"type":["integer","null"],"format":"int32","description":"The maximum number of results to return. This number should be between 1 and 50 inclusive.","minimum":0},"ranking_options":{"oneOf":[{"type":"null"},{"description":"Ranking options for search.","type":"object","required":["ranker"],"properties":{"hybrid_search":{"oneOf":[{"type":"null"},{"description":"Weights that control how reciprocal rank fusion balances semantic embedding matches versus\nsparse keyword matches when hybrid search is enabled.","type":"object","required":["embedding_weight","text_weight"],"properties":{"embedding_weight":{"type":"number","format":"float","description":"The weight of the embedding in the reciprocal ranking fusion."},"text_weight":{"type":"number","format":"float","description":"The weight of the text in the reciprocal ranking fusion."}},"title":"HybridSearch"}]},"ranker":{"description":"The ranker to use for the file search.","type":"string","enum":["auto","default-2024-11-15"],"title":"RankVersionType"},"score_threshold":{"type":["number","null"],"format":"float","description":"The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will\nattempt to return only the most relevant results, but may return fewer results."}},"title":"RankingOptions"}]},"vector_store_ids":{"type":"array","items":{"type":"string"},"description":"The IDs of the vector stores to search."}},"title":"FileSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_search"]}}}],"description":"A tool that searches for relevant content from uploaded files. Learn more about the [file search\ntool](https://platform.openai.com/docs/guides/tools-file-search)."},{"allOf":[{"description":"A tool that controls a virtual computer. Learn more about the [computer\nuse tool](https://platform.openai.com/docs/guides/tools-computer-use).","type":"object","required":["environment","display_width","display_height"],"properties":{"display_height":{"type":"integer","format":"int32","description":"The height of the computer display.","minimum":0},"display_width":{"type":"integer","format":"int32","description":"The width of the computer display.","minimum":0},"environment":{"description":"The type of computer environment to control.","type":"string","enum":["windows","mac","linux","ubuntu","browser"],"title":"ComputerEnvironment"}},"title":"ComputerUsePreviewTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_use_preview"]}}}],"description":"A tool that controls a virtual computer. Learn more about the [computer\nuse tool](https://platform.openai.com/docs/guides/tools-computer-use)."},{"allOf":[{"description":"Search the Internet for sources related to the prompt. Learn more about the\n[web search tool](https://platform.openai.com/docs/guides/tools-web-search).","type":"object","properties":{"filters":{"oneOf":[{"type":"null"},{"description":"Filters for the search.","type":"object","properties":{"allowed_domains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`"}},"title":"WebSearchToolFilters"}]},"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchToolSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"The approximate location of the user.","type":"object","required":["type"],"properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`."},"type":{"description":"The type of location approximation. Always `approximate`.","type":"string","enum":["approximate"],"title":"WebSearchApproximateLocationType"}},"title":"WebSearchApproximateLocation"}]}},"title":"WebSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search"]}}}],"description":"Search the Internet for sources related to the prompt. Learn more about the\n[web search tool](https://platform.openai.com/docs/guides/tools-web-search)."},{"allOf":[{"description":"type: web_search_2025_08_26","type":"object","properties":{"filters":{"oneOf":[{"type":"null"},{"description":"Filters for the search.","type":"object","properties":{"allowed_domains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`"}},"title":"WebSearchToolFilters"}]},"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchToolSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"The approximate location of the user.","type":"object","required":["type"],"properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`."},"type":{"description":"The type of location approximation. Always `approximate`.","type":"string","enum":["approximate"],"title":"WebSearchApproximateLocationType"}},"title":"WebSearchApproximateLocation"}]}},"title":"WebSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_2025_08_26"]}}}],"description":"type: web_search_2025_08_26"},{"allOf":[{"description":"Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).","type":"object","required":["server_label"],"properties":{"allowed_tools":{"oneOf":[{"type":"null"},{"description":"List of allowed tool names or a filter object.","oneOf":[{"type":"array","items":{"type":"string"},"description":"A string array of allowed tool names"},{"description":"A filter object to specify which tools are allowed.","type":"object","properties":{"read_only":{"type":["boolean","null"],"description":"Indicates whether or not a tool modifies data or is read-only.\nIf an MCP server is annotated with [readOnlyHint](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\nit will match this filter."},"tool_names":{"type":["array","null"],"items":{"type":"string"},"description":"List of allowed tool names."}},"title":"MCPToolFilter"}],"title":"MCPToolAllowedTools"}]},"authorization":{"type":["string","null"],"description":"An OAuth access token that can be used with a remote MCP server, either with a custom MCP\nserver URL or a service connector. Your application must handle the OAuth authorization\nflow and provide the token here."},"connector_id":{"oneOf":[{"type":"null"},{"description":"Identifier for service connectors, like those available in ChatGPT. One of `server_url` or\n`connector_id` must be provided. Learn more about service connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).\n\nCurrently supported `connector_id` values are:\n- Dropbox: `connector_dropbox`\n- Gmail: `connector_gmail`\n- Google Calendar: `connector_googlecalendar`\n- Google Drive: `connector_googledrive`\n- Microsoft Teams: `connector_microsoftteams`\n- Outlook Calendar: `connector_outlookcalendar`\n- Outlook Email: `connector_outlookemail`\n- SharePoint: `connector_sharepoint`","type":"string","enum":["connector_dropbox","connector_gmail","connector_googlecalendar","connector_googledrive","connector_microsoftteams","connector_outlookcalendar","connector_outlookemail","connector_sharepoint"],"title":"McpToolConnectorId"}]},"headers":{"description":"Optional HTTP headers to send to the MCP server. Use for authentication or other purposes."},"require_approval":{"oneOf":[{"type":"null"},{"description":"Specify which of the MCP server's tools require approval.","oneOf":[{"description":"Specify which of the MCP server's tools require approval. Can be\n`always`, `never`, or a filter object associated with tools\nthat require approval.","type":"object","properties":{"always":{"oneOf":[{"type":"null"},{"description":"A list of tools that always require approval.","type":"object","properties":{"read_only":{"type":["boolean","null"],"description":"Indicates whether or not a tool modifies data or is read-only.\nIf an MCP server is annotated with [readOnlyHint](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\nit will match this filter."},"tool_names":{"type":["array","null"],"items":{"type":"string"},"description":"List of allowed tool names."}},"title":"MCPToolFilter"}]},"never":{"oneOf":[{"type":"null"},{"description":"A list of tools that never require approval.","type":"object","properties":{"read_only":{"type":["boolean","null"],"description":"Indicates whether or not a tool modifies data or is read-only.\nIf an MCP server is annotated with [readOnlyHint](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\nit will match this filter."},"tool_names":{"type":["array","null"],"items":{"type":"string"},"description":"List of allowed tool names."}},"title":"MCPToolFilter"}]}},"title":"MCPToolApprovalFilter"},{"description":"Specify a single approval policy for all tools. One of `always` or\n`never`. When set to `always`, all tools will require approval. When\nset to `never`, all tools will not require approval.","type":"string","enum":["always","never"],"title":"MCPToolApprovalSetting"}],"title":"MCPToolRequireApproval"}]},"server_description":{"type":["string","null"],"description":"Optional description of the MCP server, used to provide more context."},"server_label":{"type":"string","description":"A label for this MCP server, used to identify it in tool calls."},"server_url":{"type":["string","null"],"description":"The URL for the MCP server. One of `server_url` or `connector_id` must be provided."}},"title":"MCPTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp"]}}}],"description":"Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp)."},{"allOf":[{"description":"A tool that runs Python code to help generate a response to a prompt.","type":"object","required":["container"],"properties":{"container":{"description":"The code interpreter container. Can be a container ID or an object that\nspecifies uploaded file IDs to make available to your code, along with an\noptional `memory_limit` setting.","oneOf":[{"allOf":[{"description":"Configuration for a code interpreter container. Optionally specify the IDs of the\nfiles to run the code on.","type":"object","properties":{"file_ids":{"type":["array","null"],"items":{"type":"string"},"description":"An optional list of uploaded files to make available to your code."},"memory_limit":{"type":["integer","null"],"format":"int64","minimum":0}},"title":"CodeInterpreterContainerAuto"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["auto"]}}}],"description":"Configuration for a code interpreter container. Optionally specify the IDs of the\nfiles to run the code on."},{"type":"object","description":"The container ID.","required":["type"],"properties":{"type":{"type":"string","enum":["container_i_d"]}}}],"title":"CodeInterpreterToolContainer"}},"title":"CodeInterpreterTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["code_interpreter"]}}}],"description":"A tool that runs Python code to help generate a response to a prompt."},{"allOf":[{"description":"A tool that generates images using a model like `gpt-image-1`.","type":"object","properties":{"background":{"oneOf":[{"type":"null"},{"description":"Background type for the generated image. One of `transparent`,\n`opaque`, or `auto`. Default: `auto`.","type":"string","enum":["transparent","opaque","auto"],"title":"ImageGenToolBackground"}]},"input_fidelity":{"oneOf":[{"type":"null"},{"description":"Control how much effort the model will exert to match the style and features, especially facial features,\nof input images. This parameter is only supported for `gpt-image-1`. Unsupported\nfor `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`.","type":"string","enum":["high","low"],"title":"InputFidelity"}]},"input_image_mask":{"oneOf":[{"type":"null"},{"description":"Optional mask for inpainting. Contains `image_url`\n(string, optional) and `file_id` (string, optional).","type":"object","properties":{"file_id":{"type":["string","null"],"description":"File ID for the mask image."},"image_url":{"type":["string","null"],"description":"Base64-encoded mask image."}},"title":"ImageGenToolInputImageMask"}]},"model":{"type":["string","null"],"description":"The image generation model to use. Default: `gpt-image-1`."},"moderation":{"oneOf":[{"type":"null"},{"description":"Moderation level for the generated image. Default: `auto`.","type":"string","enum":["auto","low"],"title":"ImageGenToolModeration"}]},"output_compression":{"type":["integer","null"],"format":"int32","description":"Compression level for the output image. Default: 100.","minimum":0},"output_format":{"oneOf":[{"type":"null"},{"description":"The output format of the generated image. One of `png`, `webp`, or\n`jpeg`. Default: `png`.","type":"string","enum":["png","webp","jpeg"],"title":"ImageGenToolOutputFormat"}]},"partial_images":{"type":["integer","null"],"format":"int32","description":"Number of partial images to generate in streaming mode, from 0 (default value) to 3.","minimum":0},"quality":{"oneOf":[{"type":"null"},{"description":"The quality of the generated image. One of `low`, `medium`, `high`,\nor `auto`. Default: `auto`.","type":"string","enum":["low","medium","high","auto"],"title":"ImageGenToolQuality"}]},"size":{"oneOf":[{"type":"null"},{"description":"The size of the generated image. One of `1024x1024`, `1024x1536`,\n`1536x1024`, or `auto`. Default: `auto`.","type":"string","enum":["auto","1024x1024","1024x1536","1536x1024"],"title":"ImageGenToolSize"}]}},"title":"ImageGenTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image_generation"]}}}],"description":"A tool that generates images using a model like `gpt-image-1`."},{"type":"object","description":"A tool that allows the model to execute shell commands in a local environment.","required":["type"],"properties":{"type":{"type":"string","enum":["local_shell"]}}},{"type":"object","description":"A tool that allows the model to execute shell commands.","required":["type"],"properties":{"type":{"type":"string","enum":["shell"]}}},{"allOf":[{"description":"A custom tool that processes input using a specified format. Learn more about [custom\ntools](https://platform.openai.com/docs/guides/function-calling#custom-tools)","type":"object","required":["name","format"],"properties":{"description":{"type":["string","null"],"description":"Optional description of the custom tool, used to provide more context."},"format":{"description":"The input format for the custom tool. Default is unconstrained text.","oneOf":[{"type":"object","description":"Unconstrained free-form text.","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}},{"allOf":[{"type":"object","required":["definition","syntax"],"properties":{"definition":{"type":"string","description":"The grammar definition."},"syntax":{"description":"The syntax of the grammar definition. One of `lark` or `regex`.","type":"string","enum":["lark","regex"],"title":"GrammarSyntax"}},"title":"CustomGrammarFormatParam","description":"A grammar defined by the user."},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["grammar"]}}}],"description":"A grammar defined by the user."}],"title":"CustomToolParamFormat"},"name":{"type":"string","description":"The name of the custom tool, used to identify it in tool calls."}},"title":"CustomToolParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom"]}}}],"description":"A custom tool that processes input using a specified format. Learn more about [custom\ntools](https://platform.openai.com/docs/guides/function-calling#custom-tools)"},{"allOf":[{"description":" This tool searches the web for relevant results to use in a response. Learn more about the [web search\ntool](https://platform.openai.com/docs/guides/tools-web-search).","type":"object","properties":{"filters":{"oneOf":[{"type":"null"},{"description":"Filters for the search.","type":"object","properties":{"allowed_domains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`"}},"title":"WebSearchToolFilters"}]},"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchToolSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"The approximate location of the user.","type":"object","required":["type"],"properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`."},"type":{"description":"The type of location approximation. Always `approximate`.","type":"string","enum":["approximate"],"title":"WebSearchApproximateLocationType"}},"title":"WebSearchApproximateLocation"}]}},"title":"WebSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_preview"]}}}],"description":" This tool searches the web for relevant results to use in a response. Learn more about the [web search\ntool](https://platform.openai.com/docs/guides/tools-web-search)."},{"allOf":[{"description":"type: web_search_preview_2025_03_11","type":"object","properties":{"filters":{"oneOf":[{"type":"null"},{"description":"Filters for the search.","type":"object","properties":{"allowed_domains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`"}},"title":"WebSearchToolFilters"}]},"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchToolSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"The approximate location of the user.","type":"object","required":["type"],"properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`."},"type":{"description":"The type of location approximation. Always `approximate`.","type":"string","enum":["approximate"],"title":"WebSearchApproximateLocationType"}},"title":"WebSearchApproximateLocation"}]}},"title":"WebSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_preview_2025_03_11"]}}}],"description":"type: web_search_preview_2025_03_11"},{"type":"object","description":"Allows the assistant to create, delete, or update files using unified diffs.","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch"]}}}],"description":"Definitions for model-callable tools.","title":"Tool"},"description":"An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nWe support the following categories of tools:\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like [web search](https://platform.openai.com/docs/guides/tools-web-search)\n or [file search](https://platform.openai.com/docs/guides/tools-file-search). Learn more about\n [built-in tools](https://platform.openai.com/docs/guides/tools).\n- **MCP Tools**: Integrations with third-party systems via custom MCP servers\n or predefined connectors such as Google Drive and SharePoint. Learn more about\n [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code with strongly typed arguments\n and outputs. Learn more about\n [function calling](https://platform.openai.com/docs/guides/function-calling). You can also use\n custom tools to call your own code."},"top_logprobs":{"type":["integer","null"],"format":"int32","description":"An integer between 0 and 20 specifying the number of most likely tokens to return at each\ntoken position, each with an associated log probability.","minimum":0},"top_p":{"type":["number","null"],"format":"float","description":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both."},"truncation":{"oneOf":[{"type":"null"},{"description":"The truncation strategy to use for the model response.\n - `auto`: If the input to this Response exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping items from the beginning of the conversation.\n - `disabled` (default): If the input size will exceed the context window\n size for a model, the request will fail with a 400 error.","type":"string","enum":["auto","disabled"],"title":"Truncation"}]}},"title":"CreateResponse"},"example":{"model":"gpt-4o","input":"You are a helpful assistant.","stream":false}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-responses.StatusCodes.json b/website/docs/api/HTTP/post-responses.StatusCodes.json new file mode 100644 index 000000000..012bdec2a --- /dev/null +++ b/website/docs/api/HTTP/post-responses.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Response generated successfully","content":{"application/json":{"schema":{"type":"object","description":"The complete response returned by the Responses API.","required":["created_at","id","model","object","output","status"],"properties":{"background":{"type":["boolean","null"],"description":"Whether to run the model response in the background.\n[Learn more](https://platform.openai.com/docs/guides/background)."},"billing":{"oneOf":[{"type":"null"},{"description":"Billing information for the response.","type":"object","required":["payer"],"properties":{"payer":{"type":"string"}},"title":"Billing"}]},"conversation":{"oneOf":[{"type":"null"},{"description":"The conversation that this response belongs to. Input items and output\nitems from this response are automatically added to this conversation.","type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The unique ID of the conversation."}},"title":"Conversation"}]},"created_at":{"type":"integer","format":"int64","description":"Unix timestamp (in seconds) when this Response was created.","minimum":0},"error":{"oneOf":[{"type":"null"},{"description":"An error object returned when the model fails to generate a Response.","type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"The error code for the response."},"message":{"type":"string","description":"A human-readable description of the error."}},"title":"ErrorObject"}]},"id":{"type":"string","description":"Unique identifier for this response."},"incomplete_details":{"oneOf":[{"type":"null"},{"description":"Details about why the response is incomplete, if any.","type":"object","required":["reason"],"properties":{"reason":{"type":"string","description":"The reason why the response is incomplete."}},"title":"IncompleteDetails"}]},"instructions":{"oneOf":[{"type":"null"},{"description":"A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous response\nwill not be carried over to the next response. This makes it simple to swap out\nsystem (or developer) messages in new responses.","oneOf":[{"type":"string","description":"A text input to the model, equivalent to a text input with the `developer` role."},{"type":"array","items":{"oneOf":[{"description":"A reference to an existing item by ID.\nHas a required `id` field and optional `type` (can be \"item_reference\" or null).\nMust be tried first as it's the most minimal structure.","type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The ID of the item to reference."},"type":{"oneOf":[{"type":"null"},{"description":"The type of item to reference. Can be \"item_reference\" or null.","type":"string","enum":["item_reference"],"title":"ItemReferenceType"}]}},"title":"ItemReference"},{"description":"All structured items with proper type discrimination.\nIncludes InputMessage, OutputMessage, and all tool calls/outputs.\nUses the discriminated `Item` enum for efficient, type-safe deserialization.","oneOf":[{"allOf":[{"description":"A message (type: \"message\").\nCan represent InputMessage (user/system/developer) or OutputMessage (assistant).\n\nInputMessage:\n A message input to the model with a role indicating instruction following hierarchy.\n Instructions given with the developer or system role take precedence over instructions given with the user role.\nOutputMessage:\n A message output from the model.","oneOf":[{"description":"An output message from the model (role: assistant, has required id & status).\nThis must come first as it has the most specific structure (required id and status fields).","type":"object","required":["content","id","role","status"],"properties":{"content":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text output from the model.","type":"object","required":["annotations","text"],"properties":{"annotations":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A citation to a file.","type":"object","required":["file_id","filename","index"],"properties":{"file_id":{"type":"string","description":"The ID of the file."},"filename":{"type":"string","description":"The filename of the file cited."},"index":{"type":"integer","format":"int32","description":"The index of the file in the list of files.","minimum":0}},"title":"FileCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_citation"]}}}],"description":"A citation to a file."},{"allOf":[{"description":"A citation for a web resource used to generate a model response.","type":"object","required":["end_index","start_index","title","url"],"properties":{"end_index":{"type":"integer","format":"int32","description":"The index of the last character of the URL citation in the message.","minimum":0},"start_index":{"type":"integer","format":"int32","description":"The index of the first character of the URL citation in the message.","minimum":0},"title":{"type":"string","description":"The title of the web resource."},"url":{"type":"string","description":"The URL of the web resource."}},"title":"UrlCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["url_citation"]}}}],"description":"A citation for a web resource used to generate a model response."},{"allOf":[{"description":"A citation for a container file used to generate a model response.","type":"object","required":["container_id","end_index","file_id","filename","start_index"],"properties":{"container_id":{"type":"string","description":"The ID of the container file."},"end_index":{"type":"integer","format":"int32","description":"The index of the last character of the container file citation in the message.","minimum":0},"file_id":{"type":"string","description":"The ID of the file."},"filename":{"type":"string","description":"The filename of the container file cited."},"start_index":{"type":"integer","format":"int32","description":"The index of the first character of the container file citation in the message.","minimum":0}},"title":"ContainerFileCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["container_file_citation"]}}}],"description":"A citation for a container file used to generate a model response."},{"allOf":[{"description":"A path to a file.","type":"object","required":["file_id","index"],"properties":{"file_id":{"type":"string","description":"The ID of the file."},"index":{"type":"integer","format":"int32","description":"The index of the file in the list of files.","minimum":0}},"title":"FilePath"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_path"]}}}],"description":"A path to a file."}],"title":"Annotation"},"description":"The annotations of the text output."},"logprobs":{"type":["array","null"],"items":{"type":"object","required":["bytes","logprob","token","top_logprobs"],"properties":{"bytes":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"logprob":{"type":"number","format":"double"},"token":{"type":"string"},"top_logprobs":{"type":"array","items":{"type":"object","required":["bytes","logprob","token"],"properties":{"bytes":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"logprob":{"type":"number","format":"double"},"token":{"type":"string"}},"title":"TopLogProb"}}},"title":"LogProb"}},"text":{"type":"string","description":"The text output from the model."}},"title":"OutputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["output_text"]}}}],"description":"A text output from the model."},{"allOf":[{"description":"A refusal from the model.","type":"object","required":["refusal"],"properties":{"refusal":{"type":"string","description":"The refusal explanation from the model."}},"title":"RefusalContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["refusal"]}}}],"description":"A refusal from the model."}],"title":"OutputMessageContent"},"description":"The content of the output message."},"id":{"type":"string","description":"The unique ID of the output message."},"role":{"description":"The role of the output message. Always `assistant`.","type":"string","enum":["assistant"],"title":"AssistantRole"},"status":{"description":"The status of the message input. One of `in_progress`, `completed`, or\n`incomplete`. Populated when input items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"OutputMessage"},{"description":"A structured input message (role: user/system/developer, content is `Vec`).\nHas structured content list and optional id/status fields.\n\nA message input to the model with a role indicating instruction following hierarchy.\nInstructions given with the `developer` or `system` role take precedence over instructions\ngiven with the `user` role.","type":"object","required":["content","role"],"properties":{"content":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"},"description":"A list of one or many input items to the model, containing different content types."},"role":{"description":"The role of the message input. One of `user`, `system`, or `developer`.\nNote: `assistant` is NOT allowed here; use OutputMessage instead.","type":"string","enum":["user","system","developer"],"title":"InputRole"},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"InputMessage"}],"title":"MessageItem"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["message"]}}}],"description":"A message (type: \"message\").\nCan represent InputMessage (user/system/developer) or OutputMessage (assistant).\n\nInputMessage:\n A message input to the model with a role indicating instruction following hierarchy.\n Instructions given with the developer or system role take precedence over instructions given with the user role.\nOutputMessage:\n A message output from the model."},{"allOf":[{"description":"The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information.","type":"object","required":["id","queries","status"],"properties":{"id":{"type":"string","description":"The unique ID of the file search tool call."},"queries":{"type":"array","items":{"type":"string"},"description":"The queries used to search for files."},"results":{"type":["array","null"],"items":{"type":"object","description":"A single result from a file search.","required":["attributes","file_id","filename","score","text"],"properties":{"attributes":{"type":"object","description":"Set of 16 key-value pairs that can be attached to an object. This can be useful for storing\nadditional information about the object in a structured format, and querying for objects\nAPI or the dashboard. Keys are strings with a maximum length of 64 characters\n. Values are strings with a maximum length of 512 characters, booleans, or numbers.","additionalProperties":{},"propertyNames":{"type":"string"}},"file_id":{"type":"string","description":"The unique ID of the file."},"filename":{"type":"string","description":"The name of the file."},"score":{"type":"number","format":"float","description":"The relevance score of the file - a value between 0 and 1."},"text":{"type":"string","description":"The text that was retrieved from the file."}},"title":"FileSearchToolCallResult"},"description":"The results of the file search tool call."},"status":{"description":"The status of the file search tool call. One of `in_progress`, `searching`,\n`incomplete`,`failed`, or `completed`.","type":"string","enum":["in_progress","searching","incomplete","failed","completed"],"title":"FileSearchToolCallStatus"}},"title":"FileSearchToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_search_call"]}}}],"description":"The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information."},{"allOf":[{"description":"A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information.","type":"object","required":["action","call_id","id","pending_safety_checks","status"],"properties":{"action":{"oneOf":[{"allOf":[{"description":"A click action.","type":"object","required":["button","x","y"],"properties":{"button":{"description":"Indicates which mouse button was pressed during the click. One of `left`,\n`right`, `wheel`, `back`, or `forward`.","type":"string","enum":["left","right","wheel","back","forward"],"title":"ClickButtonType"},"x":{"type":"integer","format":"int32","description":"The x-coordinate where the click occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the click occurred."}},"title":"ClickParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["click"]}}}],"description":"A click action."},{"allOf":[{"description":"A double click action.","type":"object","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate where the double click occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the double click occurred."}},"title":"DoubleClickAction"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["double_click"]}}}],"description":"A double click action."},{"allOf":[{"description":"A drag action.","type":"object","required":["path"],"properties":{"path":{"type":"array","items":{"type":"object","description":"A point in 2D space.","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate."},"y":{"type":"integer","format":"int32","description":"The y-coordinate."}},"title":"DragPoint"},"description":"The path of points the cursor drags through."}},"title":"Drag"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["drag"]}}}],"description":"A drag action."},{"allOf":[{"description":"A collection of keypresses the model would like to perform.","type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The combination of keys the model is requesting to be pressed.\nThis is an array of strings, each representing a key."}},"title":"KeyPressAction"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["keypress"]}}}],"description":"A collection of keypresses the model would like to perform."},{"allOf":[{"description":"A mouse move action.","type":"object","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate to move to."},"y":{"type":"integer","format":"int32","description":"The y-coordinate to move to."}},"title":"Move"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["move"]}}}],"description":"A mouse move action."},{"type":"object","description":"A screenshot action.","required":["type"],"properties":{"type":{"type":"string","enum":["screenshot"]}}},{"allOf":[{"description":"A scroll action.","type":"object","required":["scroll_x","scroll_y","x","y"],"properties":{"scroll_x":{"type":"integer","format":"int32","description":"The horizontal scroll distance."},"scroll_y":{"type":"integer","format":"int32","description":"The vertical scroll distance."},"x":{"type":"integer","format":"int32","description":"The x-coordinate where the scroll occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the scroll occurred."}},"title":"Scroll"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["scroll"]}}}],"description":"A scroll action."},{"allOf":[{"description":"An action to type in text.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text to type."}},"title":"Type"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["type"]}}}],"description":"An action to type in text."},{"type":"object","description":"A wait action.","required":["type"],"properties":{"type":{"type":"string","enum":["wait"]}}}],"description":"Represents all user‐triggered actions.","title":"ComputerAction"},"call_id":{"type":"string","description":"An identifier used when responding to the tool call with output."},"id":{"type":"string","description":"The unique ID of the computer call."},"pending_safety_checks":{"type":"array","items":{"type":"object","required":["id"],"properties":{"code":{"type":["string","null"],"description":"The type of the pending safety check."},"id":{"type":"string","description":"The ID of the pending safety check."},"message":{"type":["string","null"],"description":"Details about the pending safety check."}},"title":"ComputerCallSafetyCheckParam"},"description":"The pending safety checks for the computer call."},"status":{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"ComputerToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_call"]}}}],"description":"A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information."},{"allOf":[{"description":"The output of a computer tool call.","type":"object","required":["call_id","output"],"properties":{"acknowledged_safety_checks":{"type":["array","null"],"items":{"type":"object","required":["id"],"properties":{"code":{"type":["string","null"],"description":"The type of the pending safety check."},"id":{"type":"string","description":"The ID of the pending safety check."},"message":{"type":["string","null"],"description":"Details about the pending safety check."}},"title":"ComputerCallSafetyCheckParam"},"description":"The safety checks reported by the API that have been acknowledged by the developer."},"call_id":{"type":"string","description":"The ID of the computer tool call that produced the output."},"id":{"type":["string","null"],"description":"The unique ID of the computer tool call output. Optional when creating."},"output":{"description":"A computer screenshot image used with the computer use tool.","type":"object","required":["type"],"properties":{"file_id":{"type":["string","null"],"description":"The identifier of an uploaded file that contains the screenshot."},"image_url":{"type":["string","null"],"description":"The URL of the screenshot image."},"type":{"description":"Specifies the event type. For a computer screenshot, this property is always\nset to `computer_screenshot`.","type":"string","enum":["computer_screenshot"],"title":"ComputerScreenshotImageType"}},"title":"ComputerScreenshotImage"},"status":{"oneOf":[{"type":"null"},{"description":"The status of the message input. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when input items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"ComputerCallOutputItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_call_output"]}}}],"description":"The output of a computer tool call."},{"allOf":[{"description":"The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information.","type":"object","required":["action","id","status"],"properties":{"action":{"description":"An object describing the specific action taken in this web search call. Includes\ndetails on how the model used the web (search, open_page, find).","oneOf":[{"allOf":[{"description":"Action type \"search\" - Performs a web search query.","type":"object","required":["query"],"properties":{"query":{"type":"string","description":"The search query."},"sources":{"type":["array","null"],"items":{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","description":"The type of source. Always `url`."},"url":{"type":"string","description":"The URL of the source."}},"title":"WebSearchActionSearchSource"},"description":"The sources used in the search."}},"title":"WebSearchActionSearch"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["search"]}}}],"description":"Action type \"search\" - Performs a web search query."},{"allOf":[{"description":"Action type \"open_page\" - Opens a specific URL from search results.","type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL opened by the model."}},"title":"WebSearchActionOpenPage"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["open_page"]}}}],"description":"Action type \"open_page\" - Opens a specific URL from search results."},{"allOf":[{"description":"Action type \"find\": Searches for a pattern within a loaded page.","type":"object","required":["url","pattern"],"properties":{"pattern":{"type":"string","description":"The pattern or text to search for within the page."},"url":{"type":"string","description":"The URL of the page searched for the pattern."}},"title":"WebSearchActionFind"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["find"]}}}],"description":"Action type \"find\": Searches for a pattern within a loaded page."}],"title":"WebSearchToolCallAction"},"id":{"type":"string","description":"The unique ID of the web search tool call."},"status":{"description":"The status of the web search tool call.","type":"string","enum":["in_progress","searching","completed","failed"],"title":"WebSearchToolCallStatus"}},"title":"WebSearchToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_call"]}}}],"description":"The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information."},{"allOf":[{"description":"A tool call to run a function. See the\n\n[function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information.","type":"object","required":["arguments","call_id","name"],"properties":{"arguments":{"type":"string","description":"A JSON string of the arguments to pass to the function."},"call_id":{"type":"string","description":"The unique ID of the function tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the function tool call."},"name":{"type":"string","description":"The name of the function to run."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"FunctionToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function_call"]}}}],"description":"A tool call to run a function. See the\n\n[function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information."},{"allOf":[{"description":"The output of a function tool call.","type":"object","required":["call_id","output"],"properties":{"call_id":{"type":"string","description":"The unique ID of the function tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the function tool call output.\nPopulated when this item is returned via API."},"output":{"description":"Text, image, or file output of the function tool call.","oneOf":[{"type":"string","description":"A JSON string of the output of the function tool call."},{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"}}],"title":"FunctionCallOutput"},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"FunctionCallOutputItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function_call_output"]}}}],"description":"The output of a function tool call."},{"allOf":[{"description":"A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state).","type":"object","required":["id","summary"],"properties":{"content":{"type":["array","null"],"items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The reasoning text from the model."}},"title":"ReasoningTextContent"},"description":"Reasoning text content."},"encrypted_content":{"type":["string","null"],"description":"The encrypted content of the reasoning item - populated when a response is generated with\n`reasoning.encrypted_content` in the `include` parameter."},"id":{"type":"string","description":"Unique identifier of the reasoning content."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]},"summary":{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","description":"A single summary text fragment from reasoning.","required":["text"],"properties":{"text":{"type":"string","description":"A summary of the reasoning output from the model so far."}},"title":"Summary"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["summary_text"]}}}]}],"title":"SummaryPart"},"description":"Reasoning summary content."}},"title":"ReasoningItem"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["reasoning"]}}}],"description":"A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state)."},{"allOf":[{"description":"A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact).","type":"object","required":["encrypted_content"],"properties":{"encrypted_content":{"type":"string","description":"The encrypted content."},"id":{"type":["string","null"],"description":"The ID of the compaction item."}},"title":"CompactionSummaryItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["compaction"]}}}],"description":"A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact)."},{"allOf":[{"description":"An image generation request made by the model.","type":"object","required":["id","status"],"properties":{"id":{"type":"string","description":"The unique ID of the image generation call."},"result":{"type":["string","null"],"description":"The generated image encoded in base64."},"status":{"description":"The status of the image generation call.","type":"string","enum":["in_progress","completed","generating","failed"],"title":"ImageGenToolCallStatus"}},"title":"ImageGenToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image_generation_call"]}}}],"description":"An image generation request made by the model."},{"allOf":[{"description":"A tool call to run code.","type":"object","required":["container_id","id","status"],"properties":{"code":{"type":["string","null"],"description":"The code to run, or null if not available."},"container_id":{"type":"string","description":"ID of the container used to run the code."},"id":{"type":"string","description":"The unique ID of the code interpreter tool call."},"outputs":{"type":["array","null"],"items":{"oneOf":[{"allOf":[{"description":"Code interpreter output logs","type":"object","required":["logs"],"properties":{"logs":{"type":"string","description":"The logs output from the code interpreter."}},"title":"CodeInterpreterOutputLogs"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["logs"]}}}],"description":"Code interpreter output logs"},{"allOf":[{"description":"Code interpreter output image","type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL of the image output from the code interpreter."}},"title":"CodeInterpreterOutputImage"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image"]}}}],"description":"Code interpreter output image"}],"description":"Individual result from a code interpreter: either logs or files.","title":"CodeInterpreterToolCallOutput"},"description":"The outputs generated by the code interpreter, such as logs or images.\nCan be null if no outputs are available."},"status":{"description":"The status of the code interpreter tool call.\nValid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`.","type":"string","enum":["in_progress","completed","incomplete","interpreting","failed"],"title":"CodeInterpreterToolCallStatus"}},"title":"CodeInterpreterToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["code_interpreter_call"]}}}],"description":"A tool call to run code."},{"allOf":[{"description":"A tool call to run a command on the local shell.","type":"object","required":["action","call_id","id","status"],"properties":{"action":{"description":"Execute a shell command on the server.","type":"object","required":["command","env"],"properties":{"command":{"type":"array","items":{"type":"string"},"description":"The command to run."},"env":{"type":"object","description":"Environment variables to set for the command.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"timeout_ms":{"type":["integer","null"],"format":"int64","description":"Optional timeout in milliseconds for the command.","minimum":0},"user":{"type":["string","null"],"description":"Optional user to run the command as."},"working_directory":{"type":["string","null"],"description":"Optional working directory to run the command in."}},"title":"LocalShellExecAction"},"call_id":{"type":"string","description":"The unique ID of the local shell tool call generated by the model."},"id":{"type":"string","description":"The unique ID of the local shell call."},"status":{"description":"The status of the local shell call.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"LocalShellToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["local_shell_call"]}}}],"description":"A tool call to run a command on the local shell."},{"allOf":[{"description":"The output of a local shell tool call.","type":"object","required":["id","output"],"properties":{"id":{"type":"string","description":"The unique ID of the local shell tool call generated by the model."},"output":{"type":"string","description":"A JSON string of the output of the local shell tool call."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"LocalShellToolCallOutput"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["local_shell_call_output"]}}}],"description":"The output of a local shell tool call."},{"allOf":[{"description":"A tool representing a request to execute one or more shell commands.","type":"object","required":["call_id","action"],"properties":{"action":{"description":"The shell commands and limits that describe how to run the tool call.","type":"object","required":["commands"],"properties":{"commands":{"type":"array","items":{"type":"string"},"description":"Ordered shell commands for the execution environment to run."},"max_output_length":{"type":["integer","null"],"format":"int64","description":"Maximum number of UTF-8 characters to capture from combined stdout and stderr output.","minimum":0},"timeout_ms":{"type":["integer","null"],"format":"int64","description":"Maximum wall-clock time in milliseconds to allow the shell commands to run.","minimum":0}},"title":"FunctionShellActionParam"},"call_id":{"type":"string","description":"The unique ID of the shell tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the shell tool call. Populated when this item is returned via API."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the shell call. One of `in_progress`, `completed`, or `incomplete`.","type":"string","enum":["in_progress","completed","incomplete"],"title":"FunctionShellCallItemStatus"}]}},"title":"FunctionShellCallItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["shell_call"]}}}],"description":"A tool representing a request to execute one or more shell commands."},{"allOf":[{"description":"The streamed output items emitted by a shell tool call.","type":"object","required":["call_id","output"],"properties":{"call_id":{"type":"string","description":"The unique ID of the shell tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the shell tool call output. Populated when this item is returned via API."},"max_output_length":{"type":["integer","null"],"format":"int64","description":"The maximum number of UTF-8 characters captured for this shell call's combined output.","minimum":0},"output":{"type":"array","items":{"type":"object","description":"Captured stdout and stderr for a portion of a shell tool call output.","required":["stdout","stderr","outcome"],"properties":{"outcome":{"description":"The exit or timeout outcome associated with this chunk.","oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["timeout"]}}},{"allOf":[{"type":"object","description":"Indicates that the shell commands finished and returned an exit code.","required":["exit_code"],"properties":{"exit_code":{"type":"integer","format":"int32","description":"The exit code returned by the shell process."}},"title":"FunctionShellCallOutputExitOutcomeParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["exit"]}}}]}],"title":"FunctionShellCallOutputOutcomeParam"},"stderr":{"type":"string","description":"Captured stderr output for this chunk of the shell call."},"stdout":{"type":"string","description":"Captured stdout output for this chunk of the shell call."}},"title":"FunctionShellCallOutputContentParam"},"description":"Captured chunks of stdout and stderr output, along with their associated outcomes."}},"title":"FunctionShellCallOutputItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["shell_call_output"]}}}],"description":"The streamed output items emitted by a shell tool call."},{"allOf":[{"description":"A tool call representing a request to create, delete, or update files using diff patches.","type":"object","required":["call_id","status","operation"],"properties":{"call_id":{"type":"string","description":"The unique ID of the apply patch tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the apply patch tool call. Populated when this item is returned via API."},"operation":{"description":"The specific create, delete, or update instruction for the apply_patch tool call.","oneOf":[{"allOf":[{"type":"object","description":"Instruction for creating a new file via the apply_patch tool.","required":["path","diff"],"properties":{"diff":{"type":"string","description":"Unified diff content to apply when creating the file."},"path":{"type":"string","description":"Path of the file to create relative to the workspace root."}},"title":"ApplyPatchCreateFileOperationParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["create_file"]}}}]},{"allOf":[{"type":"object","description":"Instruction for deleting an existing file via the apply_patch tool.","required":["path"],"properties":{"path":{"type":"string","description":"Path of the file to delete relative to the workspace root."}},"title":"ApplyPatchDeleteFileOperationParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["delete_file"]}}}]},{"allOf":[{"type":"object","description":"Instruction for updating an existing file via the apply_patch tool.","required":["path","diff"],"properties":{"diff":{"type":"string","description":"Unified diff content to apply to the existing file."},"path":{"type":"string","description":"Path of the file to update relative to the workspace root."}},"title":"ApplyPatchUpdateFileOperationParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["update_file"]}}}]}],"title":"ApplyPatchOperationParam"},"status":{"description":"The status of the apply patch tool call. One of `in_progress` or `completed`.","type":"string","enum":["in_progress","completed"],"title":"ApplyPatchCallStatusParam"}},"title":"ApplyPatchToolCallItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch_call"]}}}],"description":"A tool call representing a request to create, delete, or update files using diff patches."},{"allOf":[{"description":"The streamed output emitted by an apply patch tool call.","type":"object","required":["call_id","status"],"properties":{"call_id":{"type":"string","description":"The unique ID of the apply patch tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the apply patch tool call output. Populated when this item is returned via API."},"output":{"type":["string","null"],"description":"Optional human-readable log text from the apply patch tool (e.g., patch results or errors)."},"status":{"description":"The status of the apply patch tool call output. One of `completed` or `failed`.","type":"string","enum":["completed","failed"],"title":"ApplyPatchCallOutputStatusParam"}},"title":"ApplyPatchToolCallOutputItemParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch_call_output"]}}}],"description":"The streamed output emitted by an apply patch tool call."},{"allOf":[{"description":"A list of tools available on an MCP server.","type":"object","required":["id","server_label","tools"],"properties":{"error":{"type":["string","null"],"description":"Error message if listing failed."},"id":{"type":"string","description":"The unique ID of the list."},"server_label":{"type":"string","description":"The label of the MCP server."},"tools":{"type":"array","items":{"type":"object","required":["input_schema","name"],"properties":{"annotations":{"description":"Additional annotations about the tool."},"description":{"type":["string","null"],"description":"The description of the tool."},"input_schema":{"description":"The JSON schema describing the tool's input."},"name":{"type":"string","description":"The name of the tool."}},"title":"MCPListToolsTool"},"description":"The tools available on the server."}},"title":"MCPListTools"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_list_tools"]}}}],"description":"A list of tools available on an MCP server."},{"allOf":[{"description":"A request for human approval of a tool invocation.","type":"object","required":["arguments","id","name","server_label"],"properties":{"arguments":{"type":"string","description":"JSON string of arguments for the tool."},"id":{"type":"string","description":"The unique ID of the approval request."},"name":{"type":"string","description":"The name of the tool to run."},"server_label":{"type":"string","description":"The label of the MCP server making the request."}},"title":"MCPApprovalRequest"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_approval_request"]}}}],"description":"A request for human approval of a tool invocation."},{"allOf":[{"description":"A response to an MCP approval request.","type":"object","required":["approval_request_id","approve"],"properties":{"approval_request_id":{"type":"string","description":"The ID of the approval request being answered."},"approve":{"type":"boolean","description":"Whether the request was approved."},"id":{"type":["string","null"],"description":"The unique ID of the approval response"},"reason":{"type":["string","null"],"description":"Optional reason for the decision."}},"title":"MCPApprovalResponse"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_approval_response"]}}}],"description":"A response to an MCP approval request."},{"allOf":[{"description":"An invocation of a tool on an MCP server.","type":"object","required":["arguments","id","name","server_label"],"properties":{"approval_request_id":{"type":["string","null"],"description":"Unique identifier for the MCP tool call approval request. Include this value\nin a subsequent `mcp_approval_response` input to approve or reject the corresponding\ntool call."},"arguments":{"type":"string","description":"A JSON string of the arguments passed to the tool."},"error":{"type":["string","null"],"description":"Error message from the call, if any."},"id":{"type":"string","description":"The unique ID of the tool call."},"name":{"type":"string","description":"The name of the tool that was run."},"output":{"type":["string","null"],"description":"The output from the tool call."},"server_label":{"type":"string","description":"The label of the MCP server running the tool."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the tool call. One of `in_progress`, `completed`, `incomplete`,\n`calling`, or `failed`.","type":"string","enum":["in_progress","completed","incomplete","calling","failed"],"title":"MCPToolCallStatus"}]}},"title":"MCPToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_call"]}}}],"description":"An invocation of a tool on an MCP server."},{"allOf":[{"description":"The output of a custom tool call from your code, being sent back to the model.","type":"object","required":["call_id","output"],"properties":{"call_id":{"type":"string","description":"The call ID, used to map this custom tool call output to a custom tool call."},"id":{"type":["string","null"],"description":"The unique ID of the custom tool call output in the OpenAI platform."},"output":{"description":"The output from the custom tool call generated by your code.\nCan be a string or an list of output content.","oneOf":[{"type":"string","description":"A string of the output of the custom tool call."},{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"},"description":"Text, image, or file output of the custom tool call."}],"title":"CustomToolCallOutputOutput"}},"title":"CustomToolCallOutput"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom_tool_call_output"]}}}],"description":"The output of a custom tool call from your code, being sent back to the model."},{"allOf":[{"description":"A call to a custom tool created by the model.","type":"object","required":["call_id","input","name","id"],"properties":{"call_id":{"type":"string","description":"An identifier used to map this custom tool call to a tool call output."},"id":{"type":"string","description":"The unique ID of the custom tool call in the OpenAI platform."},"input":{"type":"string","description":"The input for the custom tool call generated by the model."},"name":{"type":"string","description":"The name of the custom tool being called."}},"title":"CustomToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom_tool_call"]}}}],"description":"A call to a custom tool created by the model."}],"title":"Item"},{"description":"A simple, user-friendly message input (EasyInputMessage).\nSupports string content and can include assistant role for previous responses.\nMust be tried last as it's the most flexible structure.\n\nA message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions.","type":"object","required":["type","role","content"],"properties":{"content":{"description":"Text, image, or audio input to the model, used to generate a response.\nCan also contain previous assistant responses.","oneOf":[{"type":"string","description":"A text input to the model."},{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"},"description":"A list of one or many input items to the model, containing different content types."}],"title":"EasyInputContent"},"role":{"description":"The role of the message input. One of `user`, `assistant`, `system`, or `developer`.","type":"string","enum":["user","assistant","system","developer"],"title":"Role"},"type":{"description":"The type of the message input. Always set to `message`.","type":"string","enum":["message"],"title":"MessageType"}},"title":"EasyInputMessage"}],"description":"Input item that can be used in the context for generating a response.\n\nThis represents the OpenAPI `InputItem` schema which is an `anyOf`:\n1. `EasyInputMessage` - Simple, user-friendly message input (can use string content)\n2. `Item` - Structured items with proper type discrimination (including InputMessage, OutputMessage, tool calls)\n3. `ItemReferenceParam` - Reference to an existing item by ID (type can be null)\n\nUses untagged deserialization because these types overlap in structure.\nOrder matters: more specific structures are tried first.\n\n# OpenAPI Specification\nCorresponds to the `InputItem` schema: `anyOf[EasyInputMessage, Item, ItemReferenceParam]`","title":"InputItem"},"description":"A list of one or many input items to the model, containing different content types."}],"title":"Instructions"}]},"max_output_tokens":{"type":["integer","null"],"format":"int32","description":"An upper bound for the number of tokens that can be generated for a response,\nincluding visible output tokens and\n[reasoning tokens](https://platform.openai.com/docs/guides/reasoning).","minimum":0},"metadata":{"type":["object","null"],"description":"Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"model":{"type":"string","description":"Model ID used to generate the response, like gpt-4o or o3. OpenAI offers a\nwide range of models with different capabilities, performance characteristics,\nand price points. Refer to the [model guide](https://platform.openai.com/docs/models) to browse and compare available models."},"object":{"type":"string","description":"The object type of this resource - always set to `response`."},"output":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"An output message from the model.","type":"object","required":["content","id","role","status"],"properties":{"content":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A text output from the model.","type":"object","required":["annotations","text"],"properties":{"annotations":{"type":"array","items":{"oneOf":[{"allOf":[{"description":"A citation to a file.","type":"object","required":["file_id","filename","index"],"properties":{"file_id":{"type":"string","description":"The ID of the file."},"filename":{"type":"string","description":"The filename of the file cited."},"index":{"type":"integer","format":"int32","description":"The index of the file in the list of files.","minimum":0}},"title":"FileCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_citation"]}}}],"description":"A citation to a file."},{"allOf":[{"description":"A citation for a web resource used to generate a model response.","type":"object","required":["end_index","start_index","title","url"],"properties":{"end_index":{"type":"integer","format":"int32","description":"The index of the last character of the URL citation in the message.","minimum":0},"start_index":{"type":"integer","format":"int32","description":"The index of the first character of the URL citation in the message.","minimum":0},"title":{"type":"string","description":"The title of the web resource."},"url":{"type":"string","description":"The URL of the web resource."}},"title":"UrlCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["url_citation"]}}}],"description":"A citation for a web resource used to generate a model response."},{"allOf":[{"description":"A citation for a container file used to generate a model response.","type":"object","required":["container_id","end_index","file_id","filename","start_index"],"properties":{"container_id":{"type":"string","description":"The ID of the container file."},"end_index":{"type":"integer","format":"int32","description":"The index of the last character of the container file citation in the message.","minimum":0},"file_id":{"type":"string","description":"The ID of the file."},"filename":{"type":"string","description":"The filename of the container file cited."},"start_index":{"type":"integer","format":"int32","description":"The index of the first character of the container file citation in the message.","minimum":0}},"title":"ContainerFileCitationBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["container_file_citation"]}}}],"description":"A citation for a container file used to generate a model response."},{"allOf":[{"description":"A path to a file.","type":"object","required":["file_id","index"],"properties":{"file_id":{"type":"string","description":"The ID of the file."},"index":{"type":"integer","format":"int32","description":"The index of the file in the list of files.","minimum":0}},"title":"FilePath"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_path"]}}}],"description":"A path to a file."}],"title":"Annotation"},"description":"The annotations of the text output."},"logprobs":{"type":["array","null"],"items":{"type":"object","required":["bytes","logprob","token","top_logprobs"],"properties":{"bytes":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"logprob":{"type":"number","format":"double"},"token":{"type":"string"},"top_logprobs":{"type":"array","items":{"type":"object","required":["bytes","logprob","token"],"properties":{"bytes":{"type":"array","items":{"type":"integer","format":"int32","minimum":0}},"logprob":{"type":"number","format":"double"},"token":{"type":"string"}},"title":"TopLogProb"}}},"title":"LogProb"}},"text":{"type":"string","description":"The text output from the model."}},"title":"OutputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["output_text"]}}}],"description":"A text output from the model."},{"allOf":[{"description":"A refusal from the model.","type":"object","required":["refusal"],"properties":{"refusal":{"type":"string","description":"The refusal explanation from the model."}},"title":"RefusalContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["refusal"]}}}],"description":"A refusal from the model."}],"title":"OutputMessageContent"},"description":"The content of the output message."},"id":{"type":"string","description":"The unique ID of the output message."},"role":{"description":"The role of the output message. Always `assistant`.","type":"string","enum":["assistant"],"title":"AssistantRole"},"status":{"description":"The status of the message input. One of `in_progress`, `completed`, or\n`incomplete`. Populated when input items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"OutputMessage"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["message"]}}}],"description":"An output message from the model."},{"allOf":[{"description":"The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search)\nfor more information.","type":"object","required":["id","queries","status"],"properties":{"id":{"type":"string","description":"The unique ID of the file search tool call."},"queries":{"type":"array","items":{"type":"string"},"description":"The queries used to search for files."},"results":{"type":["array","null"],"items":{"type":"object","description":"A single result from a file search.","required":["attributes","file_id","filename","score","text"],"properties":{"attributes":{"type":"object","description":"Set of 16 key-value pairs that can be attached to an object. This can be useful for storing\nadditional information about the object in a structured format, and querying for objects\nAPI or the dashboard. Keys are strings with a maximum length of 64 characters\n. Values are strings with a maximum length of 512 characters, booleans, or numbers.","additionalProperties":{},"propertyNames":{"type":"string"}},"file_id":{"type":"string","description":"The unique ID of the file."},"filename":{"type":"string","description":"The name of the file."},"score":{"type":"number","format":"float","description":"The relevance score of the file - a value between 0 and 1."},"text":{"type":"string","description":"The text that was retrieved from the file."}},"title":"FileSearchToolCallResult"},"description":"The results of the file search tool call."},"status":{"description":"The status of the file search tool call. One of `in_progress`, `searching`,\n`incomplete`,`failed`, or `completed`.","type":"string","enum":["in_progress","searching","incomplete","failed","completed"],"title":"FileSearchToolCallStatus"}},"title":"FileSearchToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_search_call"]}}}],"description":"The results of a file search tool call. See the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search)\nfor more information."},{"allOf":[{"description":"A tool call to run a function. See the\n[function calling guide](https://platform.openai.com/docs/guides/function-calling)\nfor more information.","type":"object","required":["arguments","call_id","name"],"properties":{"arguments":{"type":"string","description":"A JSON string of the arguments to pass to the function."},"call_id":{"type":"string","description":"The unique ID of the function tool call generated by the model."},"id":{"type":["string","null"],"description":"The unique ID of the function tool call."},"name":{"type":"string","description":"The name of the function to run."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]}},"title":"FunctionToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function_call"]}}}],"description":"A tool call to run a function. See the\n[function calling guide](https://platform.openai.com/docs/guides/function-calling)\nfor more information."},{"allOf":[{"description":"The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search)\nfor more information.","type":"object","required":["action","id","status"],"properties":{"action":{"description":"An object describing the specific action taken in this web search call. Includes\ndetails on how the model used the web (search, open_page, find).","oneOf":[{"allOf":[{"description":"Action type \"search\" - Performs a web search query.","type":"object","required":["query"],"properties":{"query":{"type":"string","description":"The search query."},"sources":{"type":["array","null"],"items":{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","description":"The type of source. Always `url`."},"url":{"type":"string","description":"The URL of the source."}},"title":"WebSearchActionSearchSource"},"description":"The sources used in the search."}},"title":"WebSearchActionSearch"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["search"]}}}],"description":"Action type \"search\" - Performs a web search query."},{"allOf":[{"description":"Action type \"open_page\" - Opens a specific URL from search results.","type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL opened by the model."}},"title":"WebSearchActionOpenPage"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["open_page"]}}}],"description":"Action type \"open_page\" - Opens a specific URL from search results."},{"allOf":[{"description":"Action type \"find\": Searches for a pattern within a loaded page.","type":"object","required":["url","pattern"],"properties":{"pattern":{"type":"string","description":"The pattern or text to search for within the page."},"url":{"type":"string","description":"The URL of the page searched for the pattern."}},"title":"WebSearchActionFind"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["find"]}}}],"description":"Action type \"find\": Searches for a pattern within a loaded page."}],"title":"WebSearchToolCallAction"},"id":{"type":"string","description":"The unique ID of the web search tool call."},"status":{"description":"The status of the web search tool call.","type":"string","enum":["in_progress","searching","completed","failed"],"title":"WebSearchToolCallStatus"}},"title":"WebSearchToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_call"]}}}],"description":"The results of a web search tool call. See the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search)\nfor more information."},{"allOf":[{"description":"A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use)\nfor more information.","type":"object","required":["action","call_id","id","pending_safety_checks","status"],"properties":{"action":{"oneOf":[{"allOf":[{"description":"A click action.","type":"object","required":["button","x","y"],"properties":{"button":{"description":"Indicates which mouse button was pressed during the click. One of `left`,\n`right`, `wheel`, `back`, or `forward`.","type":"string","enum":["left","right","wheel","back","forward"],"title":"ClickButtonType"},"x":{"type":"integer","format":"int32","description":"The x-coordinate where the click occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the click occurred."}},"title":"ClickParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["click"]}}}],"description":"A click action."},{"allOf":[{"description":"A double click action.","type":"object","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate where the double click occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the double click occurred."}},"title":"DoubleClickAction"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["double_click"]}}}],"description":"A double click action."},{"allOf":[{"description":"A drag action.","type":"object","required":["path"],"properties":{"path":{"type":"array","items":{"type":"object","description":"A point in 2D space.","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate."},"y":{"type":"integer","format":"int32","description":"The y-coordinate."}},"title":"DragPoint"},"description":"The path of points the cursor drags through."}},"title":"Drag"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["drag"]}}}],"description":"A drag action."},{"allOf":[{"description":"A collection of keypresses the model would like to perform.","type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"The combination of keys the model is requesting to be pressed.\nThis is an array of strings, each representing a key."}},"title":"KeyPressAction"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["keypress"]}}}],"description":"A collection of keypresses the model would like to perform."},{"allOf":[{"description":"A mouse move action.","type":"object","required":["x","y"],"properties":{"x":{"type":"integer","format":"int32","description":"The x-coordinate to move to."},"y":{"type":"integer","format":"int32","description":"The y-coordinate to move to."}},"title":"Move"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["move"]}}}],"description":"A mouse move action."},{"type":"object","description":"A screenshot action.","required":["type"],"properties":{"type":{"type":"string","enum":["screenshot"]}}},{"allOf":[{"description":"A scroll action.","type":"object","required":["scroll_x","scroll_y","x","y"],"properties":{"scroll_x":{"type":"integer","format":"int32","description":"The horizontal scroll distance."},"scroll_y":{"type":"integer","format":"int32","description":"The vertical scroll distance."},"x":{"type":"integer","format":"int32","description":"The x-coordinate where the scroll occurred."},"y":{"type":"integer","format":"int32","description":"The y-coordinate where the scroll occurred."}},"title":"Scroll"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["scroll"]}}}],"description":"A scroll action."},{"allOf":[{"description":"An action to type in text.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text to type."}},"title":"Type"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["type"]}}}],"description":"An action to type in text."},{"type":"object","description":"A wait action.","required":["type"],"properties":{"type":{"type":"string","enum":["wait"]}}}],"description":"Represents all user‐triggered actions.","title":"ComputerAction"},"call_id":{"type":"string","description":"An identifier used when responding to the tool call with output."},"id":{"type":"string","description":"The unique ID of the computer call."},"pending_safety_checks":{"type":"array","items":{"type":"object","required":["id"],"properties":{"code":{"type":["string","null"],"description":"The type of the pending safety check."},"id":{"type":"string","description":"The ID of the pending safety check."},"message":{"type":["string","null"],"description":"Details about the pending safety check."}},"title":"ComputerCallSafetyCheckParam"},"description":"The pending safety checks for the computer call."},"status":{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"ComputerToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_call"]}}}],"description":"A tool call to a computer use tool. See the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use)\nfor more information."},{"allOf":[{"description":"A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API for\nsubsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state).","type":"object","required":["id","summary"],"properties":{"content":{"type":["array","null"],"items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The reasoning text from the model."}},"title":"ReasoningTextContent"},"description":"Reasoning text content."},"encrypted_content":{"type":["string","null"],"description":"The encrypted content of the reasoning item - populated when a response is generated with\n`reasoning.encrypted_content` in the `include` parameter."},"id":{"type":"string","description":"Unique identifier of the reasoning content."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the item. One of `in_progress`, `completed`, or `incomplete`.\nPopulated when items are returned via API.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}]},"summary":{"type":"array","items":{"oneOf":[{"allOf":[{"type":"object","description":"A single summary text fragment from reasoning.","required":["text"],"properties":{"text":{"type":"string","description":"A summary of the reasoning output from the model so far."}},"title":"Summary"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["summary_text"]}}}]}],"title":"SummaryPart"},"description":"Reasoning summary content."}},"title":"ReasoningItem"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["reasoning"]}}}],"description":"A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API for\nsubsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state)."},{"allOf":[{"description":"A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact).","type":"object","required":["id","encrypted_content"],"properties":{"created_by":{"type":["string","null"],"description":"Created by model/user identifier."},"encrypted_content":{"type":"string","description":"The encrypted content."},"id":{"type":"string","description":"The unique ID of the compaction item."}},"title":"CompactionBody"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["compaction"]}}}],"description":"A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact)."},{"allOf":[{"description":"An image generation request made by the model.","type":"object","required":["id","status"],"properties":{"id":{"type":"string","description":"The unique ID of the image generation call."},"result":{"type":["string","null"],"description":"The generated image encoded in base64."},"status":{"description":"The status of the image generation call.","type":"string","enum":["in_progress","completed","generating","failed"],"title":"ImageGenToolCallStatus"}},"title":"ImageGenToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image_generation_call"]}}}],"description":"An image generation request made by the model."},{"allOf":[{"description":"A tool call to run code.","type":"object","required":["container_id","id","status"],"properties":{"code":{"type":["string","null"],"description":"The code to run, or null if not available."},"container_id":{"type":"string","description":"ID of the container used to run the code."},"id":{"type":"string","description":"The unique ID of the code interpreter tool call."},"outputs":{"type":["array","null"],"items":{"oneOf":[{"allOf":[{"description":"Code interpreter output logs","type":"object","required":["logs"],"properties":{"logs":{"type":"string","description":"The logs output from the code interpreter."}},"title":"CodeInterpreterOutputLogs"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["logs"]}}}],"description":"Code interpreter output logs"},{"allOf":[{"description":"Code interpreter output image","type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL of the image output from the code interpreter."}},"title":"CodeInterpreterOutputImage"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image"]}}}],"description":"Code interpreter output image"}],"description":"Individual result from a code interpreter: either logs or files.","title":"CodeInterpreterToolCallOutput"},"description":"The outputs generated by the code interpreter, such as logs or images.\nCan be null if no outputs are available."},"status":{"description":"The status of the code interpreter tool call.\nValid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`.","type":"string","enum":["in_progress","completed","incomplete","interpreting","failed"],"title":"CodeInterpreterToolCallStatus"}},"title":"CodeInterpreterToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["code_interpreter_call"]}}}],"description":"A tool call to run code."},{"allOf":[{"description":"A tool call to run a command on the local shell.","type":"object","required":["action","call_id","id","status"],"properties":{"action":{"description":"Execute a shell command on the server.","type":"object","required":["command","env"],"properties":{"command":{"type":"array","items":{"type":"string"},"description":"The command to run."},"env":{"type":"object","description":"Environment variables to set for the command.","additionalProperties":{"type":"string"},"propertyNames":{"type":"string"}},"timeout_ms":{"type":["integer","null"],"format":"int64","description":"Optional timeout in milliseconds for the command.","minimum":0},"user":{"type":["string","null"],"description":"Optional user to run the command as."},"working_directory":{"type":["string","null"],"description":"Optional working directory to run the command in."}},"title":"LocalShellExecAction"},"call_id":{"type":"string","description":"The unique ID of the local shell tool call generated by the model."},"id":{"type":"string","description":"The unique ID of the local shell call."},"status":{"description":"The status of the local shell call.","type":"string","enum":["in_progress","completed","incomplete"],"title":"OutputStatus"}},"title":"LocalShellToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["local_shell_call"]}}}],"description":"A tool call to run a command on the local shell."},{"allOf":[{"description":"A tool call that executes one or more shell commands in a managed environment.","type":"object","required":["id","call_id","action","status"],"properties":{"action":{"description":"The shell commands and limits that describe how to run the tool call.","type":"object","required":["commands"],"properties":{"commands":{"type":"array","items":{"type":"string"},"description":"A list of commands to run."},"max_output_length":{"type":["integer","null"],"format":"int64","description":"Optional maximum number of characters to return from each command.","minimum":0},"timeout_ms":{"type":["integer","null"],"format":"int64","description":"Optional timeout in milliseconds for the commands.","minimum":0}},"title":"FunctionShellAction"},"call_id":{"type":"string","description":"The unique ID of the function shell tool call generated by the model."},"created_by":{"type":["string","null"],"description":"The ID of the entity that created this tool call."},"id":{"type":"string","description":"The unique ID of the function shell tool call. Populated when this item is returned via API."},"status":{"description":"The status of the shell call. One of `in_progress`, `completed`, or `incomplete`.","type":"string","enum":["in_progress","completed","incomplete"],"title":"LocalShellCallStatus"}},"title":"FunctionShellCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["shell_call"]}}}],"description":"A tool call that executes one or more shell commands in a managed environment."},{"allOf":[{"description":"The output of a shell tool call.","type":"object","required":["id","call_id","output"],"properties":{"call_id":{"type":"string","description":"The unique ID of the shell tool call generated by the model."},"created_by":{"type":["string","null"]},"id":{"type":"string","description":"The unique ID of the shell call output. Populated when this item is returned via API."},"max_output_length":{"type":["integer","null"],"format":"int64","description":"The maximum length of the shell command output. This is generated by the model and should be\npassed back with the raw output.","minimum":0},"output":{"type":"array","items":{"allOf":[{"description":"Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.","oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["timeout"]}}},{"allOf":[{"type":"object","description":"Indicates that the shell commands finished and returned an exit code.","required":["exit_code"],"properties":{"exit_code":{"type":"integer","format":"int32","description":"Exit code from the shell process."}},"title":"FunctionShellCallOutputExitOutcome"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["exit"]}}}]}],"title":"FunctionShellCallOutputOutcome"},{"type":"object","required":["stdout","stderr"],"properties":{"created_by":{"type":["string","null"]},"stderr":{"type":"string"},"stdout":{"type":"string"}}}],"description":"The content of a shell call output.","title":"FunctionShellCallOutputContent"},"description":"An array of shell call output contents"}},"title":"FunctionShellCallOutput"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["shell_call_output"]}}}],"description":"The output of a shell tool call."},{"allOf":[{"description":"A tool call that applies file diffs by creating, deleting, or updating files.","type":"object","required":["id","call_id","status","operation"],"properties":{"call_id":{"type":"string","description":"The unique ID of the apply patch tool call generated by the model."},"created_by":{"type":["string","null"],"description":"The ID of the entity that created this tool call."},"id":{"type":"string","description":"The unique ID of the apply patch tool call. Populated when this item is returned via API."},"operation":{"description":"One of the create_file, delete_file, or update_file operations applied via apply_patch.","oneOf":[{"allOf":[{"type":"object","description":"Instruction describing how to create a file via the apply_patch tool.","required":["path","diff"],"properties":{"diff":{"type":"string","description":"Diff to apply."},"path":{"type":"string","description":"Path of the file to create."}},"title":"ApplyPatchCreateFileOperation"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["create_file"]}}}]},{"allOf":[{"type":"object","description":"Instruction describing how to delete a file via the apply_patch tool.","required":["path"],"properties":{"path":{"type":"string","description":"Path of the file to delete."}},"title":"ApplyPatchDeleteFileOperation"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["delete_file"]}}}]},{"allOf":[{"type":"object","description":"Instruction describing how to update a file via the apply_patch tool.","required":["path","diff"],"properties":{"diff":{"type":"string","description":"Diff to apply."},"path":{"type":"string","description":"Path of the file to update."}},"title":"ApplyPatchUpdateFileOperation"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["update_file"]}}}]}],"title":"ApplyPatchOperation"},"status":{"description":"The status of the apply patch tool call. One of `in_progress` or `completed`.","type":"string","enum":["in_progress","completed"],"title":"ApplyPatchCallStatus"}},"title":"ApplyPatchToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch_call"]}}}],"description":"A tool call that applies file diffs by creating, deleting, or updating files."},{"allOf":[{"description":"The output emitted by an apply patch tool call.","type":"object","required":["id","call_id","status"],"properties":{"call_id":{"type":"string","description":"The unique ID of the apply patch tool call generated by the model."},"created_by":{"type":["string","null"],"description":"The ID of the entity that created this tool call output."},"id":{"type":"string","description":"The unique ID of the apply patch tool call output. Populated when this item is returned via API."},"output":{"type":["string","null"],"description":"Optional textual output returned by the apply patch tool."},"status":{"description":"The status of the apply patch tool call output. One of `completed` or `failed`.","type":"string","enum":["completed","failed"],"title":"ApplyPatchCallOutputStatus"}},"title":"ApplyPatchToolCallOutput"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch_call_output"]}}}],"description":"The output emitted by an apply patch tool call."},{"allOf":[{"description":"An invocation of a tool on an MCP server.","type":"object","required":["arguments","id","name","server_label"],"properties":{"approval_request_id":{"type":["string","null"],"description":"Unique identifier for the MCP tool call approval request. Include this value\nin a subsequent `mcp_approval_response` input to approve or reject the corresponding\ntool call."},"arguments":{"type":"string","description":"A JSON string of the arguments passed to the tool."},"error":{"type":["string","null"],"description":"Error message from the call, if any."},"id":{"type":"string","description":"The unique ID of the tool call."},"name":{"type":"string","description":"The name of the tool that was run."},"output":{"type":["string","null"],"description":"The output from the tool call."},"server_label":{"type":"string","description":"The label of the MCP server running the tool."},"status":{"oneOf":[{"type":"null"},{"description":"The status of the tool call. One of `in_progress`, `completed`, `incomplete`,\n`calling`, or `failed`.","type":"string","enum":["in_progress","completed","incomplete","calling","failed"],"title":"MCPToolCallStatus"}]}},"title":"MCPToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_call"]}}}],"description":"An invocation of a tool on an MCP server."},{"allOf":[{"description":"A list of tools available on an MCP server.","type":"object","required":["id","server_label","tools"],"properties":{"error":{"type":["string","null"],"description":"Error message if listing failed."},"id":{"type":"string","description":"The unique ID of the list."},"server_label":{"type":"string","description":"The label of the MCP server."},"tools":{"type":"array","items":{"type":"object","required":["input_schema","name"],"properties":{"annotations":{"description":"Additional annotations about the tool."},"description":{"type":["string","null"],"description":"The description of the tool."},"input_schema":{"description":"The JSON schema describing the tool's input."},"name":{"type":"string","description":"The name of the tool."}},"title":"MCPListToolsTool"},"description":"The tools available on the server."}},"title":"MCPListTools"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_list_tools"]}}}],"description":"A list of tools available on an MCP server."},{"allOf":[{"description":"A request for human approval of a tool invocation.","type":"object","required":["arguments","id","name","server_label"],"properties":{"arguments":{"type":"string","description":"JSON string of arguments for the tool."},"id":{"type":"string","description":"The unique ID of the approval request."},"name":{"type":"string","description":"The name of the tool to run."},"server_label":{"type":"string","description":"The label of the MCP server making the request."}},"title":"MCPApprovalRequest"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp_approval_request"]}}}],"description":"A request for human approval of a tool invocation."},{"allOf":[{"description":"A call to a custom tool created by the model.","type":"object","required":["call_id","input","name","id"],"properties":{"call_id":{"type":"string","description":"An identifier used to map this custom tool call to a tool call output."},"id":{"type":"string","description":"The unique ID of the custom tool call in the OpenAI platform."},"input":{"type":"string","description":"The input for the custom tool call generated by the model."},"name":{"type":"string","description":"The name of the custom tool being called."}},"title":"CustomToolCall"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom_tool_call"]}}}],"description":"A call to a custom tool created by the model."}],"description":"Output item","title":"OutputItem"},"description":"An array of content items generated by the model.\n\n- The length and order of items in the output array is dependent on the model's response.\n- Rather than accessing the first item in the output array and assuming it's an assistant\n message with the content generated by the model, you might consider using\n the `output_text` property where supported in SDKs."},"parallel_tool_calls":{"type":["boolean","null"],"description":"SDK-only convenience property that contains the aggregated text output from all\n`output_text` items in the `output` array, if any are present.\nSupported in the Python and JavaScript SDKs.\nWhether to allow the model to run tool calls in parallel."},"previous_response_id":{"type":["string","null"],"description":"The unique ID of the previous response to the model. Use this to create multi-turn conversations.\nLearn more about [conversation state](https://platform.openai.com/docs/guides/conversation-state).\nCannot be used in conjunction with `conversation`."},"prompt":{"oneOf":[{"type":"null"},{"description":"Reference to a prompt template and its variables.\n[Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts).","type":"object","required":["id"],"properties":{"id":{"type":"string","description":"The unique identifier of the prompt template to use."},"variables":{"oneOf":[{"type":"null"},{"description":"Optional map of values to substitute in for variables in your\nprompt. The substitution values can either be strings, or other\nResponse input types like images or files.","oneOf":[{"type":"string"},{"oneOf":[{"allOf":[{"description":"A text input to the model.","type":"object","required":["text"],"properties":{"text":{"type":"string","description":"The text input to the model."}},"title":"InputTextContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_text"]}}}],"description":"A text input to the model."},{"allOf":[{"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision).","type":"object","required":["detail"],"properties":{"detail":{"description":"The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`.\nDefaults to `auto`.","type":"string","enum":["auto","low","high"],"title":"ImageDetail"},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"image_url":{"type":["string","null"],"description":"The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image\nin a data URL."}},"title":"InputImageContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_image"]}}}],"description":"An image input to the model. Learn about\n[image inputs](https://platform.openai.com/docs/guides/vision)."},{"allOf":[{"description":"A file input to the model.","type":"object","properties":{"file_data":{"type":["string","null"],"description":"The content of the file to be sent to the model."},"file_id":{"type":["string","null"],"description":"The ID of the file to be sent to the model."},"file_url":{"type":["string","null"],"description":"The URL of the file to be sent to the model."},"filename":{"type":["string","null"],"description":"The name of the file to be sent to the model."}},"title":"InputFileContent"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["input_file"]}}}],"description":"A file input to the model."}],"description":"Parts of a message: text, image, file, or audio.","title":"InputContent"},{}],"title":"ResponsePromptVariables"}]},"version":{"type":["string","null"],"description":"Optional version of the prompt template."}},"title":"Prompt"}]},"prompt_cache_key":{"type":["string","null"],"description":"Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces\nthe `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)."},"prompt_cache_retention":{"oneOf":[{"type":"null"},{"description":"The retention policy for the prompt cache. Set to `24h` to enable extended prompt caching,\nwhich keeps cached prefixes active for longer, up to a maximum of 24 hours. [Learn\nmore](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).","type":"string","enum":["in-memory","24h"],"title":"PromptCacheRetention"}]},"reasoning":{"oneOf":[{"type":"null"},{"description":"**gpt-5 and o-series models only**\nConfiguration options for [reasoning models](https://platform.openai.com/docs/guides/reasoning).","type":"object","properties":{"effort":{"oneOf":[{"type":"null"},{"description":"Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `minimal`, `low`, `medium`, and `high`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\n\nNote: The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.","type":"string","enum":["none","minimal","low","medium","high","xhigh"],"title":"ReasoningEffort"}]},"summary":{"oneOf":[{"type":"null"},{"description":"A summary of the reasoning performed by the model. This can be\nuseful for debugging and understanding the model's reasoning process.\nOne of `auto`, `concise`, or `detailed`.\n\n`concise` is supported for `computer-use-preview` models and all reasoning models after\n`gpt-5`.","type":"string","enum":["auto","concise","detailed"],"title":"ReasoningSummary"}]}},"title":"Reasoning"}]},"safety_identifier":{"type":["string","null"],"description":"A stable identifier used to help detect users of your application that may be violating OpenAI's\nusage policies.\n\nThe IDs should be a string that uniquely identifies each user. We recommend hashing their username\nor email address, in order to avoid sending us any identifying information. [Learn\nmore](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)."},"service_tier":{"oneOf":[{"type":"null"},{"description":"Specifies the processing type used for serving the request.\n- If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'.\n- If set to 'default', then the request will be processed with the standard pricing and performance for the selected model.\n- If set to '[flex](https://platform.openai.com/docs/guides/flex-processing)' or '[priority](https://openai.com/api-priority-processing/)', then the request will be processed with the corresponding service tier.\n- When not set, the default behavior is 'auto'.\n\nWhen the `service_tier` parameter is set, the response body will include the `service_tier` value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter.","type":"string","enum":["auto","default","flex","scale","priority"],"title":"ServiceTier"}]},"status":{"description":"The status of the response generation.\nOne of `completed`, `failed`, `in_progress`, `cancelled`, `queued`, or `incomplete`.","type":"string","enum":["completed","failed","in_progress","cancelled","queued","incomplete"],"title":"Status"},"temperature":{"type":["number","null"],"format":"float","description":"What sampling temperature was used, between 0 and 2. Higher values like 0.8 make\noutputs more random, lower values like 0.2 make output more focused and deterministic.\n\nWe generally recommend altering this or `top_p` but not both."},"text":{"oneOf":[{"type":"null"},{"description":"Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)","type":"object","required":["format"],"properties":{"format":{"description":"An object specifying the format that the model must output.\n\nConfiguring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\nwhich ensures the model will match your supplied JSON schema. Learn more in the\n[Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nThe default format is `{ \"type\": \"text\" }` with no additional options.\n\n**Not recommended for gpt-4o and newer models:**\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it.","oneOf":[{"type":"object","description":"Default response format. Used to generate text responses.","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}},{"type":"object","description":"JSON object response format. An older method of generating JSON responses.\nUsing `json_schema` is recommended for models that support it.\nNote that the model will not generate JSON without a system or user message\ninstructing it to do so.","required":["type"],"properties":{"type":{"type":"string","enum":["json_object"]}}},{"allOf":[{"type":"object","required":["name"],"properties":{"description":{"type":["string","null"],"description":"A description of what the response format is for, used by the model to determine how to respond in the format."},"name":{"type":"string","description":"The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."},"schema":{"description":"The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/)."},"strict":{"type":["boolean","null"],"description":"Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](https://platform.openai.com/docs/guides/structured-outputs)."}},"title":"ResponseFormatJsonSchema","description":"JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)."},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["json_schema"]}}}],"description":"JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)."}],"title":"TextResponseFormatConfiguration"},"verbosity":{"oneOf":[{"type":"null"},{"description":"Constrains the verbosity of the model's response. Lower values will result in\nmore concise responses, while higher values will result in more verbose responses.\n\nCurrently supported values are `low`, `medium`, and `high`.","type":"string","enum":["low","medium","high"],"title":"Verbosity"}]}},"title":"ResponseTextParam"}]},"tool_choice":{"oneOf":[{"type":"null"},{"description":"How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call.","oneOf":[{"allOf":[{"description":"Constrains the tools available to the model to a pre-defined set.","type":"object","required":["mode","tools"],"properties":{"mode":{"description":"Constrains the tools available to the model to a pre-defined set.\n\n`auto` allows the model to pick from among the allowed tools and generate a\nmessage.\n\n`required` requires the model to call one or more of the allowed tools.","type":"string","enum":["auto","required"],"title":"ToolChoiceAllowedMode"},"tools":{"type":"array","items":{},"description":"A list of tool definitions that the model should be allowed to call.\n\nFor the Responses API, the list of tool definitions might look like:\n```json\n[\n { \"type\": \"function\", \"name\": \"get_weather\" },\n { \"type\": \"mcp\", \"server_label\": \"deepwiki\" },\n { \"type\": \"image_generation\" }\n]\n```"}},"title":"ToolChoiceAllowed"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["allowed_tools"]}}}],"description":"Constrains the tools available to the model to a pre-defined set."},{"allOf":[{"description":"Use this option to force the model to call a specific function.","type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name of the function to call."}},"title":"ToolChoiceFunction"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function"]}}}],"description":"Use this option to force the model to call a specific function."},{"allOf":[{"description":"Use this option to force the model to call a specific tool on a remote MCP server.","type":"object","required":["name","server_label"],"properties":{"name":{"type":"string","description":"The name of the tool to call on the server."},"server_label":{"type":"string","description":"The label of the MCP server to use."}},"title":"ToolChoiceMCP"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp"]}}}],"description":"Use this option to force the model to call a specific tool on a remote MCP server."},{"allOf":[{"description":"Use this option to force the model to call a custom tool.","type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The name of the custom tool to call."}},"title":"ToolChoiceCustom"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom"]}}}],"description":"Use this option to force the model to call a custom tool."},{"type":"object","description":"Forces the model to call the apply_patch tool when executing a tool call.","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch"]}}},{"type":"object","description":"Forces the model to call the function shell tool when a tool call is required.","required":["type"],"properties":{"type":{"type":"string","enum":["shell"]}}},{"allOf":[{"description":"Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).","oneOf":[{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_search"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_preview"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_use_preview"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["code_interpreter"]}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image_generation"]}}}],"title":"ToolChoiceTypes"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["hosted"]}}}],"description":"Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https://platform.openai.com/docs/guides/tools)."},{"allOf":[{"type":"string","enum":["none","auto","required"],"title":"ToolChoiceOptions","description":"Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools."},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mode"]}}}],"description":"Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools."}],"title":"ToolChoiceParam"}]},"tools":{"type":["array","null"],"items":{"oneOf":[{"allOf":[{"description":"Defines a function in your own code the model can choose to call. Learn more about [function\ncalling](https://platform.openai.com/docs/guides/tools).","type":"object","required":["name"],"properties":{"description":{"type":["string","null"],"description":"A description of the function. Used by the model to determine whether or not to call the\nfunction."},"name":{"type":"string","description":"The name of the function to call."},"parameters":{"description":"A JSON schema object describing the parameters of the function."},"strict":{"type":["boolean","null"],"description":"Whether to enforce strict parameter validation. Default `true`."}},"title":"FunctionTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["function"]}}}],"description":"Defines a function in your own code the model can choose to call. Learn more about [function\ncalling](https://platform.openai.com/docs/guides/tools)."},{"allOf":[{"description":"A tool that searches for relevant content from uploaded files. Learn more about the [file search\ntool](https://platform.openai.com/docs/guides/tools-file-search).","type":"object","required":["vector_store_ids"],"properties":{"filters":{"oneOf":[{"type":"null"},{"description":"A filter to apply.","oneOf":[{"description":"A filter used to compare a specified attribute key to a given value using a defined\ncomparison operation.","type":"object","required":["type","key","value"],"properties":{"key":{"type":"string","description":"The key to compare against the value."},"type":{"description":"Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.\n- `eq`: equals\n- `ne`: not equal\n- `gt`: greater than\n- `gte`: greater than or equal\n- `lt`: less than\n- `lte`: less than or equal\n- `in`: in\n- `nin`: not in","type":"string","enum":["eq","ne","gt","gte","lt","lte","in","nin"],"title":"ComparisonType"},"value":{"description":"The value to compare against the attribute key; supports string, number, or boolean types."}},"title":"ComparisonFilter"},{"description":"Combine multiple filters using `and` or `or`.","type":"object","required":["type","filters"],"properties":{"filters":{"type":"array","items":{"oneOf":"circular()","description":"Filters for file search.","title":"Filter"},"description":"Array of filters to combine. Items can be ComparisonFilter or CompoundFilter."},"type":{"type":"string","enum":["and","or"],"description":"'Type of operation: `and` or `or`.'"}},"title":"CompoundFilter"}],"title":"Filter"}]},"max_num_results":{"type":["integer","null"],"format":"int32","description":"The maximum number of results to return. This number should be between 1 and 50 inclusive.","minimum":0},"ranking_options":{"oneOf":[{"type":"null"},{"description":"Ranking options for search.","type":"object","required":["ranker"],"properties":{"hybrid_search":{"oneOf":[{"type":"null"},{"description":"Weights that control how reciprocal rank fusion balances semantic embedding matches versus\nsparse keyword matches when hybrid search is enabled.","type":"object","required":["embedding_weight","text_weight"],"properties":{"embedding_weight":{"type":"number","format":"float","description":"The weight of the embedding in the reciprocal ranking fusion."},"text_weight":{"type":"number","format":"float","description":"The weight of the text in the reciprocal ranking fusion."}},"title":"HybridSearch"}]},"ranker":{"description":"The ranker to use for the file search.","type":"string","enum":["auto","default-2024-11-15"],"title":"RankVersionType"},"score_threshold":{"type":["number","null"],"format":"float","description":"The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will\nattempt to return only the most relevant results, but may return fewer results."}},"title":"RankingOptions"}]},"vector_store_ids":{"type":"array","items":{"type":"string"},"description":"The IDs of the vector stores to search."}},"title":"FileSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["file_search"]}}}],"description":"A tool that searches for relevant content from uploaded files. Learn more about the [file search\ntool](https://platform.openai.com/docs/guides/tools-file-search)."},{"allOf":[{"description":"A tool that controls a virtual computer. Learn more about the [computer\nuse tool](https://platform.openai.com/docs/guides/tools-computer-use).","type":"object","required":["environment","display_width","display_height"],"properties":{"display_height":{"type":"integer","format":"int32","description":"The height of the computer display.","minimum":0},"display_width":{"type":"integer","format":"int32","description":"The width of the computer display.","minimum":0},"environment":{"description":"The type of computer environment to control.","type":"string","enum":["windows","mac","linux","ubuntu","browser"],"title":"ComputerEnvironment"}},"title":"ComputerUsePreviewTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["computer_use_preview"]}}}],"description":"A tool that controls a virtual computer. Learn more about the [computer\nuse tool](https://platform.openai.com/docs/guides/tools-computer-use)."},{"allOf":[{"description":"Search the Internet for sources related to the prompt. Learn more about the\n[web search tool](https://platform.openai.com/docs/guides/tools-web-search).","type":"object","properties":{"filters":{"oneOf":[{"type":"null"},{"description":"Filters for the search.","type":"object","properties":{"allowed_domains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`"}},"title":"WebSearchToolFilters"}]},"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchToolSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"The approximate location of the user.","type":"object","required":["type"],"properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`."},"type":{"description":"The type of location approximation. Always `approximate`.","type":"string","enum":["approximate"],"title":"WebSearchApproximateLocationType"}},"title":"WebSearchApproximateLocation"}]}},"title":"WebSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search"]}}}],"description":"Search the Internet for sources related to the prompt. Learn more about the\n[web search tool](https://platform.openai.com/docs/guides/tools-web-search)."},{"allOf":[{"description":"type: web_search_2025_08_26","type":"object","properties":{"filters":{"oneOf":[{"type":"null"},{"description":"Filters for the search.","type":"object","properties":{"allowed_domains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`"}},"title":"WebSearchToolFilters"}]},"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchToolSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"The approximate location of the user.","type":"object","required":["type"],"properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`."},"type":{"description":"The type of location approximation. Always `approximate`.","type":"string","enum":["approximate"],"title":"WebSearchApproximateLocationType"}},"title":"WebSearchApproximateLocation"}]}},"title":"WebSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_2025_08_26"]}}}],"description":"type: web_search_2025_08_26"},{"allOf":[{"description":"Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).","type":"object","required":["server_label"],"properties":{"allowed_tools":{"oneOf":[{"type":"null"},{"description":"List of allowed tool names or a filter object.","oneOf":[{"type":"array","items":{"type":"string"},"description":"A string array of allowed tool names"},{"description":"A filter object to specify which tools are allowed.","type":"object","properties":{"read_only":{"type":["boolean","null"],"description":"Indicates whether or not a tool modifies data or is read-only.\nIf an MCP server is annotated with [readOnlyHint](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\nit will match this filter."},"tool_names":{"type":["array","null"],"items":{"type":"string"},"description":"List of allowed tool names."}},"title":"MCPToolFilter"}],"title":"MCPToolAllowedTools"}]},"authorization":{"type":["string","null"],"description":"An OAuth access token that can be used with a remote MCP server, either with a custom MCP\nserver URL or a service connector. Your application must handle the OAuth authorization\nflow and provide the token here."},"connector_id":{"oneOf":[{"type":"null"},{"description":"Identifier for service connectors, like those available in ChatGPT. One of `server_url` or\n`connector_id` must be provided. Learn more about service connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).\n\nCurrently supported `connector_id` values are:\n- Dropbox: `connector_dropbox`\n- Gmail: `connector_gmail`\n- Google Calendar: `connector_googlecalendar`\n- Google Drive: `connector_googledrive`\n- Microsoft Teams: `connector_microsoftteams`\n- Outlook Calendar: `connector_outlookcalendar`\n- Outlook Email: `connector_outlookemail`\n- SharePoint: `connector_sharepoint`","type":"string","enum":["connector_dropbox","connector_gmail","connector_googlecalendar","connector_googledrive","connector_microsoftteams","connector_outlookcalendar","connector_outlookemail","connector_sharepoint"],"title":"McpToolConnectorId"}]},"headers":{"description":"Optional HTTP headers to send to the MCP server. Use for authentication or other purposes."},"require_approval":{"oneOf":[{"type":"null"},{"description":"Specify which of the MCP server's tools require approval.","oneOf":[{"description":"Specify which of the MCP server's tools require approval. Can be\n`always`, `never`, or a filter object associated with tools\nthat require approval.","type":"object","properties":{"always":{"oneOf":[{"type":"null"},{"description":"A list of tools that always require approval.","type":"object","properties":{"read_only":{"type":["boolean","null"],"description":"Indicates whether or not a tool modifies data or is read-only.\nIf an MCP server is annotated with [readOnlyHint](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\nit will match this filter."},"tool_names":{"type":["array","null"],"items":{"type":"string"},"description":"List of allowed tool names."}},"title":"MCPToolFilter"}]},"never":{"oneOf":[{"type":"null"},{"description":"A list of tools that never require approval.","type":"object","properties":{"read_only":{"type":["boolean","null"],"description":"Indicates whether or not a tool modifies data or is read-only.\nIf an MCP server is annotated with [readOnlyHint](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\nit will match this filter."},"tool_names":{"type":["array","null"],"items":{"type":"string"},"description":"List of allowed tool names."}},"title":"MCPToolFilter"}]}},"title":"MCPToolApprovalFilter"},{"description":"Specify a single approval policy for all tools. One of `always` or\n`never`. When set to `always`, all tools will require approval. When\nset to `never`, all tools will not require approval.","type":"string","enum":["always","never"],"title":"MCPToolApprovalSetting"}],"title":"MCPToolRequireApproval"}]},"server_description":{"type":["string","null"],"description":"Optional description of the MCP server, used to provide more context."},"server_label":{"type":"string","description":"A label for this MCP server, used to identify it in tool calls."},"server_url":{"type":["string","null"],"description":"The URL for the MCP server. One of `server_url` or `connector_id` must be provided."}},"title":"MCPTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["mcp"]}}}],"description":"Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp)."},{"allOf":[{"description":"A tool that runs Python code to help generate a response to a prompt.","type":"object","required":["container"],"properties":{"container":{"description":"The code interpreter container. Can be a container ID or an object that\nspecifies uploaded file IDs to make available to your code, along with an\noptional `memory_limit` setting.","oneOf":[{"allOf":[{"description":"Configuration for a code interpreter container. Optionally specify the IDs of the\nfiles to run the code on.","type":"object","properties":{"file_ids":{"type":["array","null"],"items":{"type":"string"},"description":"An optional list of uploaded files to make available to your code."},"memory_limit":{"type":["integer","null"],"format":"int64","minimum":0}},"title":"CodeInterpreterContainerAuto"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["auto"]}}}],"description":"Configuration for a code interpreter container. Optionally specify the IDs of the\nfiles to run the code on."},{"type":"object","description":"The container ID.","required":["type"],"properties":{"type":{"type":"string","enum":["container_i_d"]}}}],"title":"CodeInterpreterToolContainer"}},"title":"CodeInterpreterTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["code_interpreter"]}}}],"description":"A tool that runs Python code to help generate a response to a prompt."},{"allOf":[{"description":"A tool that generates images using a model like `gpt-image-1`.","type":"object","properties":{"background":{"oneOf":[{"type":"null"},{"description":"Background type for the generated image. One of `transparent`,\n`opaque`, or `auto`. Default: `auto`.","type":"string","enum":["transparent","opaque","auto"],"title":"ImageGenToolBackground"}]},"input_fidelity":{"oneOf":[{"type":"null"},{"description":"Control how much effort the model will exert to match the style and features, especially facial features,\nof input images. This parameter is only supported for `gpt-image-1`. Unsupported\nfor `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`.","type":"string","enum":["high","low"],"title":"InputFidelity"}]},"input_image_mask":{"oneOf":[{"type":"null"},{"description":"Optional mask for inpainting. Contains `image_url`\n(string, optional) and `file_id` (string, optional).","type":"object","properties":{"file_id":{"type":["string","null"],"description":"File ID for the mask image."},"image_url":{"type":["string","null"],"description":"Base64-encoded mask image."}},"title":"ImageGenToolInputImageMask"}]},"model":{"type":["string","null"],"description":"The image generation model to use. Default: `gpt-image-1`."},"moderation":{"oneOf":[{"type":"null"},{"description":"Moderation level for the generated image. Default: `auto`.","type":"string","enum":["auto","low"],"title":"ImageGenToolModeration"}]},"output_compression":{"type":["integer","null"],"format":"int32","description":"Compression level for the output image. Default: 100.","minimum":0},"output_format":{"oneOf":[{"type":"null"},{"description":"The output format of the generated image. One of `png`, `webp`, or\n`jpeg`. Default: `png`.","type":"string","enum":["png","webp","jpeg"],"title":"ImageGenToolOutputFormat"}]},"partial_images":{"type":["integer","null"],"format":"int32","description":"Number of partial images to generate in streaming mode, from 0 (default value) to 3.","minimum":0},"quality":{"oneOf":[{"type":"null"},{"description":"The quality of the generated image. One of `low`, `medium`, `high`,\nor `auto`. Default: `auto`.","type":"string","enum":["low","medium","high","auto"],"title":"ImageGenToolQuality"}]},"size":{"oneOf":[{"type":"null"},{"description":"The size of the generated image. One of `1024x1024`, `1024x1536`,\n`1536x1024`, or `auto`. Default: `auto`.","type":"string","enum":["auto","1024x1024","1024x1536","1536x1024"],"title":"ImageGenToolSize"}]}},"title":"ImageGenTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["image_generation"]}}}],"description":"A tool that generates images using a model like `gpt-image-1`."},{"type":"object","description":"A tool that allows the model to execute shell commands in a local environment.","required":["type"],"properties":{"type":{"type":"string","enum":["local_shell"]}}},{"type":"object","description":"A tool that allows the model to execute shell commands.","required":["type"],"properties":{"type":{"type":"string","enum":["shell"]}}},{"allOf":[{"description":"A custom tool that processes input using a specified format. Learn more about [custom\ntools](https://platform.openai.com/docs/guides/function-calling#custom-tools)","type":"object","required":["name","format"],"properties":{"description":{"type":["string","null"],"description":"Optional description of the custom tool, used to provide more context."},"format":{"description":"The input format for the custom tool. Default is unconstrained text.","oneOf":[{"type":"object","description":"Unconstrained free-form text.","required":["type"],"properties":{"type":{"type":"string","enum":["text"]}}},{"allOf":[{"type":"object","required":["definition","syntax"],"properties":{"definition":{"type":"string","description":"The grammar definition."},"syntax":{"description":"The syntax of the grammar definition. One of `lark` or `regex`.","type":"string","enum":["lark","regex"],"title":"GrammarSyntax"}},"title":"CustomGrammarFormatParam","description":"A grammar defined by the user."},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["grammar"]}}}],"description":"A grammar defined by the user."}],"title":"CustomToolParamFormat"},"name":{"type":"string","description":"The name of the custom tool, used to identify it in tool calls."}},"title":"CustomToolParam"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["custom"]}}}],"description":"A custom tool that processes input using a specified format. Learn more about [custom\ntools](https://platform.openai.com/docs/guides/function-calling#custom-tools)"},{"allOf":[{"description":" This tool searches the web for relevant results to use in a response. Learn more about the [web search\ntool](https://platform.openai.com/docs/guides/tools-web-search).","type":"object","properties":{"filters":{"oneOf":[{"type":"null"},{"description":"Filters for the search.","type":"object","properties":{"allowed_domains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`"}},"title":"WebSearchToolFilters"}]},"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchToolSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"The approximate location of the user.","type":"object","required":["type"],"properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`."},"type":{"description":"The type of location approximation. Always `approximate`.","type":"string","enum":["approximate"],"title":"WebSearchApproximateLocationType"}},"title":"WebSearchApproximateLocation"}]}},"title":"WebSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_preview"]}}}],"description":" This tool searches the web for relevant results to use in a response. Learn more about the [web search\ntool](https://platform.openai.com/docs/guides/tools-web-search)."},{"allOf":[{"description":"type: web_search_preview_2025_03_11","type":"object","properties":{"filters":{"oneOf":[{"type":"null"},{"description":"Filters for the search.","type":"object","properties":{"allowed_domains":{"type":["array","null"],"items":{"type":"string"},"description":"Allowed domains for the search. If not provided, all domains are allowed.\nSubdomains of the provided domains are allowed as well.\n\nExample: `[\"pubmed.ncbi.nlm.nih.gov\"]`"}},"title":"WebSearchToolFilters"}]},"search_context_size":{"oneOf":[{"type":"null"},{"description":"High level guidance for the amount of context window space to use for the search. One of `low`,\n`medium`, or `high`. `medium` is the default.","type":"string","enum":["low","medium","high"],"title":"WebSearchToolSearchContextSize"}]},"user_location":{"oneOf":[{"type":"null"},{"description":"The approximate location of the user.","type":"object","required":["type"],"properties":{"city":{"type":["string","null"],"description":"Free text input for the city of the user, e.g. `San Francisco`."},"country":{"type":["string","null"],"description":"The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user,\ne.g. `US`."},"region":{"type":["string","null"],"description":"Free text input for the region of the user, e.g. `California`."},"timezone":{"type":["string","null"],"description":"The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g.\n`America/Los_Angeles`."},"type":{"description":"The type of location approximation. Always `approximate`.","type":"string","enum":["approximate"],"title":"WebSearchApproximateLocationType"}},"title":"WebSearchApproximateLocation"}]}},"title":"WebSearchTool"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["web_search_preview_2025_03_11"]}}}],"description":"type: web_search_preview_2025_03_11"},{"type":"object","description":"Allows the assistant to create, delete, or update files using unified diffs.","required":["type"],"properties":{"type":{"type":"string","enum":["apply_patch"]}}}],"description":"Definitions for model-callable tools.","title":"Tool"},"description":"An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nWe support the following categories of tools:\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like [web search](https://platform.openai.com/docs/guides/tools-web-search)\n or [file search](https://platform.openai.com/docs/guides/tools-file-search). Learn more about\n [built-in tools](https://platform.openai.com/docs/guides/tools).\n- **MCP Tools**: Integrations with third-party systems via custom MCP servers\n or predefined connectors such as Google Drive and SharePoint. Learn more about\n [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code with strongly typed arguments\n and outputs. Learn more about\n [function calling](https://platform.openai.com/docs/guides/function-calling). You can also use\n custom tools to call your own code."},"top_logprobs":{"type":["integer","null"],"format":"int32","description":"An integer between 0 and 20 specifying the number of most likely tokens to return at each\ntoken position, each with an associated log probability.","minimum":0},"top_p":{"type":["number","null"],"format":"float","description":"An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both."},"truncation":{"oneOf":[{"type":"null"},{"description":"The truncation strategy to use for the model response.\n - `auto`: If the input to this Response exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping items from the beginning of the conversation.\n - `disabled` (default): If the input size will exceed the context window\n size for a model, the request will fail with a 400 error.","type":"string","enum":["auto","disabled"],"title":"Truncation"}]},"usage":{"oneOf":[{"type":"null"},{"description":"Represents token usage details including input tokens, output tokens,\na breakdown of output tokens, and the total tokens used.","type":"object","required":["input_tokens","input_tokens_details","output_tokens","output_tokens_details","total_tokens"],"properties":{"input_tokens":{"type":"integer","format":"int32","description":"The number of input tokens.","minimum":0},"input_tokens_details":{"description":"A detailed breakdown of the input tokens.","type":"object","required":["cached_tokens"],"properties":{"cached_tokens":{"type":"integer","format":"int32","description":"The number of tokens that were retrieved from the cache.\n[More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching).","minimum":0}},"title":"InputTokenDetails"},"output_tokens":{"type":"integer","format":"int32","description":"The number of output tokens.","minimum":0},"output_tokens_details":{"description":"A detailed breakdown of the output tokens.","type":"object","required":["reasoning_tokens"],"properties":{"reasoning_tokens":{"type":"integer","format":"int32","description":"The number of reasoning tokens.","minimum":0}},"title":"OutputTokenDetails"},"total_tokens":{"type":"integer","format":"int32","description":"The total number of tokens used.","minimum":0}},"title":"ResponseUsage"}]}},"title":"Response"},"example":{"created_at":1755639134,"id":"resp_68a4ed5e2258819485ece563a803bbf2075163a5e5b1c982","metadata":{},"model":"test","object":"response","output":[{"type":"message","content":[{"type":"output_text","annotations":[],"text":"Thank you! How can I assist you today?"}],"id":"msg_68a4ed5eb7e88194bf0b2560d8b5c0c1075163a5e5b1c982","role":"assistant","status":"completed"}],"parallel_tool_calls":true,"reasoning":{},"store":true,"service_tier":"default","status":"completed","temperature":1,"text":{"format":{"type":"text"}},"tool_choice":"auto","tools":[],"top_p":1,"truncation":"disabled","usage":{"input_tokens":13,"input_tokens_details":{"audio_tokens":null,"cached_tokens":0},"output_tokens":11,"output_tokens_details":{"accepted_prediction_tokens":null,"audio_tokens":null,"reasoning_tokens":0,"rejected_prediction_tokens":null},"total_tokens":24}}}}},"404":{"description":"The specified model was not found"},"500":{"description":"An internal server error occurred while processing the response","content":{"application/json":{"schema":{},"example":{"error":"An internal server error occurred while processing the response."}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-responses.api.mdx b/website/docs/api/HTTP/post-responses.api.mdx new file mode 100644 index 000000000..15fce58aa --- /dev/null +++ b/website/docs/api/HTTP/post-responses.api.mdx @@ -0,0 +1,70 @@ +--- +id: post-responses +title: "post_responses" +description: "post_responses" +sidebar_label: "post_responses" +hide_title: true +hide_table_of_contents: true +api: eJzsvXtz40aWJ/pVMtix61IHpXK53Y652r17Q5bt7pp2uXRLVe3YW3SQSSBJYgQm2EhAEj1REfMR5jPOJ7lxHplIPAnwobJ79Y9dIoB8nDx58uR5/M6/jzK5NKPLj6Or16NfxqNko1KZRYl+HY4uR5vEZNNUmU2ijTKj8ShV/8iVyb5Nwu3o8t9HoTJBGm3g/dHl6DpVMlNCCvuFyE2klyJbKfF2o/TVa/HOtiWubl6LRZKuZXYh3q8iI5QON0mkM7FJk/soVEZIsU5SJRaxeozmsRJBou9VanB4ItKZShcygJ/XG5mqUGSJuF7JTFwn602s4C1zMRqPgkRnSmcwXrnZxFGADbz8NwOD/veRCVZqLeFf2XajRpejZP5vKshG48rsvs2jOFQpDFrIykSYLBdMoShVIZA00ps8A6puUqBrFikD/cxlcLdMk1yHRa8fR/MkiZXUo/FI53EMX5X7/3mlspVKYZZprpGo6yRUcUHtiH4tmr+Y6I8/KplqJOQvL1ZZtjGXL19uYpkB7S+SjdIyugiS9cswCczLZQ6Ef1m0cHYx+oQUdISHISdavV2MLj86kuGIP42rDPF+VVm0DJYng9V2g56rONFLI7LkQrzO1NqIRZqs6aXStzJVYpOqjdIhrvVEixkSeBrBZzNcmHLbdlkmeqJfw6sCXxVShyLJs+KHokv3LXQn8yxZyywKZBxvhQyp46axLTKVTnS5hYDYUCET1khmsjTSyxqXAclyHf0jV+L1dyJZ4Ir6fV0cTufRuMbqJa4N6ywbeax6yNA/jUdZlMXQyrXPVJ9+aX5wI1O5Hn365dN4FOkgzkPlbxmZpnLrbRhczKaBKp2v4YNFFKupUTINVlNY1ItUmTzOQLI9qHnPJzLAyZgkTwMUimtljFyqC+bGNf4b/jvN0xgF0HqTZyrFz6fEeBf8v/J7oZqiXNukyr7PL5LwlSbRkV5eKB2k202mwqkVbsUo6P1pph6zizhZbtJkbkYeeV8THb8HknyqruHtRgXRAnk9gp9kbDdKKDMJzM/LYIVNWQRdiOs8TZXO4q0w+WaTpJkKJ/pexjnI81RdwlY8F7Nums4uBY8S++BfLUs9qLmgb0WWJLHABrjdThIWzRpsiH+GdjfbbJVoAZ8L9aiCnM8Y/GWihfDaLHol6VH03WOZvanhbyJPYyd/SGZAG9g89Mvfcxdt/FslGFGHH1q6wcethOvk4R2Dxm+EbaHSYBM7eu3Zn8RDlK2ENCYymdSuNUfcDt73l1Vq4Z4LkCKwjMlCuM9FltwpbUSkgbrFz7CSliGcQiLnsTKVl0CCijmoNioEBlnncRadZ3mKDfrizoiHldKeDlTWGUwmMxUrY+KteBFHd4pehxdnJktSNRMbkH7IcpGB1o3KoPfZQsZGzcYiSekbqUWSLqWOfmXdCAafJnFMQ4Qmf1VpQnsYeFjja5s0WaZyTWc86So1ne69eszGtOrYHzIRvmvoKGQRMCaCZIlYKg0qpK8H4iIWisglrOhHaNm2VBzIpr+WAix1hk29Rqaktvp/j5My1MIPxbT6N7AJF+dAD27DP7dodfs35fPNOX7L48o1Skbcq5Fe9m9xwV+e85dnA5QQcSUytzqVZQZF4V7GSuMD6b+IWzhbqYme5UalM5EmsSJ9hfuzB7Y7qIsRlUdwJVK1UKnSgcJutFCPkcncTp1vxevvLib6r9Ign5H2ImZROBOLSMUhsdSGz7AZ9D8TLwKpYe9OcABT18VkBKwNWsTZxUS/yU0Gb2VppEKxiFKTCWlElH1hmBAmE+tIR2sZC5OleZDlqTqlVlWoUzh5uAHYoePepRaG6eXwBrRab1Fc76KSN9eailX+pqR4ZGr9zj54D59/+sVXCEvPG0Z9FXvkDlkYI88RVWlKYQTfrCNNKico/nw24A3gDZ0rY/EWxY37E9gFTnR3MJqX9jSY6A+GNQavceA2GPFMwMzx8qEWiyiIlM7GOJRzIxdKhMqoNJIxy+byXUDGcQv78/knXkBLl2Ji1bvJCFgUVihVm1QZ2If+xMQL2HovzdZkav0yVPcqBtqcwdKVpixeuMP2rLgg8cNLOG2EKIZRlwR8YOMeF5EO8VoN21PTGoHQWiRxnDzAr6tIpaB4bC+o5dfFW0Yso3ulnfQQbtAwZpoI9ZLJO7wCBipEwZDcw8nY0RKQgoTQRJcmX5sfK7lOpcEplteqskLafmObKH8rXkC/l4VGMxYraQpJFYXiv+MhkRsgPyocaxA8QbJWvtDBz5zYMaifR0GxEcQLv01gY2qVxKA52yWXigtEFMKjJFaj8YjaqEssz5ayW6S3czceGq007xqu1DrJSL2CN9Vjg33Ff+fAgQZRxjdqOOvgsN81QFTRkZTwLy3XQM5Ih+qxPlD77sBDgIbxyeuhVwP27dJ9IIgyFbICCGMsWoIbz1KlMBE009FPf/qqsW38uNQw651xZDL4HfUkoB0enHBUfOnLftC/rpnWaFz0lIZGMuOzGkHtQdh5/7drOvrl06dPNTNb85rDcHpwCdkG4YKaKrq1NqnFlTvzDoZSOpzS2uC2TDP3FxFvPALrQY0UxWfHWNJYgmhayVQGcB3hXz+8+7GYuzUI8L2vvNTloR+HydJDh8TM12fv4Ku+AcKuL24dWIBezcDomhvx9sKHNH6CrZCncf+dsB9fD9o0cLLISCu+Yh68bVx7JIz9XdQoon3+bDz2XGMDpXV5YsgvT7E3K/Tsuyc+75FUHzQfTk8kPfYiWtmmTd8/0XlW8OWwk23fLde9ozcS9O7hitKJtKPPrtDcyGx1SkUG6N221NW18B0sV04/rjsAYO6e/mwp4CnsSFvnWBjgjWmc/nyboQ+FGwSeAQMt/n8z9f0XFR8qfteh3e9e9PLC2QEUn+p8PS9/GSb5PFZoccFB1hboU2XYu8c3iCi/Fyp4++B9svkxWd5Am5/834sf+RbXTw3ruDf6rdNlHyzM13xhPc029JwbbRuxc8id4jRVi9zIeOAFmb+qz8U+6EVo27d63MRS86HRQfB39P5pqe2m1kzpNnr5oq9kBSpG2+xPh4dWAJaNPXS+7OsTb2gLzS515wusRFJcPCofiqv4QW6NmDkj06zLMuve8o2yV/bHdwntabb8NI6FLUs8mpJt8EK81TjOWaSn6FhSxszG5BWFKIgQ/VUTPYu0/Wl2IW6STR6jMRUdWZEfpJECG4JjDVx5kQSnWafhueiXfe7YLeoX9q9RjRVuabp14cE80mSHLlmhfd+nNfo1mmDHjqUiI2Z/V8H/ZP4DU/j/mp2xN8Nr276PKkfJnxGFL0tWPjTgnsZa22WpnbnJzcBWO6Mpz3paaye62pzvNeprtcSdc1I7ZZ2au0bXbJYceMw1dVtyl+gnOeIoIGDnCdc42q7jTXMoQcOHglzFcp7k2UR/jPby7t5H4Pvfaf4OVSajhtOSf28Ug/RMxMD8zjGHg6TQAMPOUW9GVjiuouUKpGKcPJD/fgYxZrOLif5OLSRGa4CDn37skuV5lqCC+DAaj6DRkqMNxvIdTaDpSv+xaK851LB+oWqdGR6ELoZpWBeeNWwH+a7EIocQvH/kMo4W4JbFb1Mxl0Z98zXEfCQQnIfNTHSkhaRghw/vfmzYNUigp9g2OJ6WffNkG6BbyywCOnaKuIbrORB54KpXFKud3HVy9sUODuLeXl2UrWK9uqh5a9r7qLI4GqCegMNhWG0HQytr1V++kSkFqkmrxFziueJCj6AtFJgyDyMKYfWn26rKXzmDTQIiOBVrqbclPbMc3sI2MdCCwmiBwQiZY1kghRmgr7doyKjmjJ26ROdAoUpdTPRPSaYufb0edMaf3r6HEIXkQYVipVL1P0DPrDj1Qb9SMuw6OqB3sHdj56h+cMflINFN3nAlGBJgUr4sAK173hFE6Yow0dU7wme4HfxS21/ueuB9w79BVMiJ9hwzVNuGew4a+S0EjXSdt2RbcWG5siUoV9wqRZF0H/0X8GQfECCZJLHBCMVzauAMDf+YVBNpsudxSNKOyLXx6B+5SiM0SraFhuxtDmkmAQge2+luA2dhf613yK04/wZ3teBoVhboHO6/jz27Zh6I9DK260zsUVroapqQzLI0mudk8212TgZJqtrjXYrvd47uVuFh+Oobcae25xiYLzYySg3ljHCApMwyGayIXBBcjG1xWDS/khu1yGOkIkQrR3o50V7WgMdfpMeSAQsbEqife4YOepWC8GC1trD7oWV630w0BExjeo8SoTSreSLT8EL8TW3pJKDlt0HkYi0fwaYtYqWX2Qrm+83XhbPPTPSF+LtLSdj98Z9ffeV9PRacqWXGFA8J9nH0BBXTv/HX55Nbr+1Pcq2a2Hao47VxD+3hf60qmORrRWbr8gAs4kTWWYtkW6zuJchZbKW0xc+FFMRwc5U9KKXFl7jiryiGdZh1BLn1ASPqIE73HrjIymGeScUbd4t7732SxNcyjt/h5mwWGL3yJobZSlvEfIs+RC9Gejkblw2m49lCRrHTkwq9qb/q49ouqz7jEbVcUo5+6aJgg+W0/tIp3Z9eHkyzQvTbPGy7r+NFbhE6b10+EKj68MwfbenhXsO1LZznRu2nHFDiFnANJD2ROx/+A2makV5OIQY6206DlQruurQHbqdvWGYcBXeCk8Z2jHCeZxmOEEJ/tg0+VHpe28SvST1VkMYTBSuxToDM9DZKHtCkQaUI89Rm+OC4im0dq0WGWziNlqsMdvbDSqkY/gEptryLF0n6INPuPQwtwbygHUhJhGZGY8wkJsEMLfj79RpG8i0OlkLtYf57xkI8ngdJkoYY9Q53sFQVkxVJEEDKH4XpbPftYtuzi0+VGXJ+6GmCa6CD1lCaEgd272lymA9i2hZePfYSlkZ20pVs68lb0O/wFVzWq4CjU06xrjSUaefyNi7ZjlVO5bLn6lLgTnXc+OuAiJFayA+iJ0RafPWdMBsZqOo945RMdTymqTBFKpc3MLFmVQ3DnCB/F16hPIkgT02S4nLAD2mSL1f1Nk/FW9B0G0/5DLIjNhZyN8kckizgpkZnjfEtKUkehwLzRrNEbFSKp/0OxrtT24azF3897I4dJOs5p1zxiP2xRsZCMVAGLtwf+fS0uS8R5u5i19AA38nGQklMZGarFXwuofXygv5NbW+guZOKDbsKrSfC3mvWzQukd6yTe/VbODuyhIYCMBJHOyZKjXrr+ia5V6eypELTbWbUOsWbBlEz+wSpUtqsksxbqMNHWjSL4+3kFRNA1ndPPqGXp5hXQv/ctmvJ7uU913uVpNGv4FuJ7SBDtCMH1ubAA9iz+XsYadDS+LG1Ju7jpPpSvQ9vX9ziwxPtDOq5bW9UOGxHiAe9hi4AyM2FEGrAgXiK8Bnus0w4vgqdgmz0VYunv40OfcTKg4yOK1CgweaRvrPnrMFcaPCE/Nd//GeWRsulAjstjcL43tdrtiC4o9cZAnYuFURAhHCoLyKyYbCDj9INQlYVMPrcGUXQRuvFoR+AS+QBrWBTzRaLPSO4m7L9IURlYABAxkn6MGIen6DxCRzfIBoUk29tyvoX+4+SwoyMZ+NvafxTnWfQiohvXcNL9i7fpOY3tGkY8KtpLfsbZn/ffukGop7Y8loCOWqNCPzNGTF3+WTZlYtWYjciz9i/IxrV2T6pnSbz5p1OHmIVLlXYJmH2zKB5FjVHFTVlEZMqwjADwBnoEfyQ6HpayXvwYwH4kre09jUXjXAx6ESsJo5W+ZC63qRJmAfgnHWMW1ucXkvefigWPXL74q0NPUdZFwDSJ4BxQb/M8zVhe1W0512NGEAMT3sbclEXELs0xEbZtV+koKeDwPbXIt/EiQwR+gfiR9AtTlFhxqrmPJljRb9WyVMC9WkC6IvYrKDubVjahfiBczprJB8TEqT1QaOpBRNHJtoCijmpXnzV6Y5oeL/kfODHt+4pRtyS9t2wOyvvHSvmbJ8ElV2H/GdLUPmlTazRaxB0dlJnSAO4YbvXdddxOihEqhHv0dMgvOd76Q8Pan5QfJRzgaIGsNvBWQcSoqgY+n1ufYkO6sdeHuWd4kz0yPhEIXpYmKuJDvmcTLRYJQ+e+ZECoBh74gV9PRZAm+mGg2wR8bcXQhUPCrSGCQcVTEbiXNyQVdOUFw6jenYREl+qU45+7nV4lnsDMcIgrYcqWfisBWmlbeu061iM+uHy9wBic28gkSYIkZ/VnOIwaJno37f4YovWwxCrFtWyQBHt0fCpDFHUePMdYy/267RWlVp0mwIbBfByaNFtSSA/hhuVkVZ3MXgj+wxb843ShZrZEPxfWSAY+Y1NYzz+Ejky9VmlfWnaf9VAfk1Gl4IooAzjXGxklqmUQnwx9JD1uw1jeexasvGIW2j02eKDXgtoxwFmCzZRerGoPDq811gdcB95AB9zuxRayb9i353M8kOkw5MFbOmwD4/stYJ+DL6bkrWDFIbJvW2FjQrIMDNTcxP7xOz5eiOH7HVNv8FSVHvnRGtewfjuGaP3+bW9AQF6UIhBCgu16w0TYgkr0L1Dh1sD8N1POU2X+Ros+qUQPYwQrquo7t3dtnvxr7dvf2I3vWVy9z16t6VxuVWOQIOtIfVAZ0vVYh0sXlHtWDyGSaTeHza8Z4h10RiwzsWxLrq/byN26WZrAa9PHUDM3fQ3Y/8WtvoQK3YT4x5qxf69b92imkKF7fFKjUjYGKpU5fwOI2cjPn6xDm0ipD8We6Ok3d1BP9D1Z+SLZ+SLZ+SLZ+SLZ+SLZ+SLvbj3GfniN4N84VtBrBZd+IeerxqtV42nc6KVbh2DnGhtKl5HOkrxt3Pvr2TEf0BSREbW/vkWK+jYGlccqb4CDmb1nHK7vSJv3yphoPSEVw4uWymjeE0jLbZJnnJ5xpndAqXyVxONmeP53EBiAOzqPNXGegz9Op8LaAz5ZC11DpUYJ/rjWmq5hOGiTH3MDqq01AsAweTrtWxyT9Wg5vZ1MR2oOnslzkAt7Ubr5FfLSnQtGrTUIM+TAcyr9QeHifeiRlvlTKwUZDsXm7LQ8GrLRsa7PoJhGPIsO6rEWbfWjFnWK6/WO7bpA90xyyEj5XH7ZHoWuFC40+6cjlDaphtpda+0oGxw65bp5RIskMT9BTcccatduR5rS9+IByNMIhYyrQTwM0lO5Dil1r2rq68bcN+gd3TteTvLgp+bBMgJsY4cXVvz6Z5PuP4n3K58w/WGw0xQ7tbsch9n969eukLgL/n9Gcyzx8DkJjp3JeHqzew8gOvHTUO5m9YTqevQrB1E+9keyyGUHiXr0aj0kDfhU0RtceBRa9biZ175XqYyu00TbRNJxVqGqmI17qPFHRu8qjY+5yIir+ZARirITw07845mg8/Q9Ibm4e1z3BeistHzjJalvyjd4XiuvnKq6zka5Yo5d/l4hjHYQM8wLN3AMkWdTLpHVD8WtKbhjG31TjhwNCSp3ssohhLH5JYdVOKoqbyRxVeDqWfc96FJWlhovKHytueT6Rfct9vncV3tjNW5OFmaHYuIr9SWC3/tNXF4s6Y9VidfPUpC9bp4SFr3j9DjaTYVTbFpD3XSrWvHtH1IpuOTR9L5AvIItLeR6yeTaMOoT5/U3wdUo/sozGVcwSesTvlSqChbqZSZMy0KHrWQwUr1wt7YZtIydS2j2vtYmDyAevCue6rWzTCmc+VJMtcqaNBlodb/oOwQNRP9dxlHIWHXUS9d9/ASXhv8xW0inBsC3lkQt4Ov3eOR33rjsdyySI0JhI1vnkwzDdXUo/ewQAx7tAwM1AqS9RrraHAprwQRA1Zqd2xEG8zZ0Gj/7x9VkGNpNey2OiKj0nuQNrt0BvwIqXnfpCbQ44MRXXBkXqgS9LYTh+h7fR+liUYrzL1MI9iLhkJdMz9jFxrvAM2sD7EHhmYWrVWSZ9N1SSco4BisVuDDMnzzdW0KLteN2wPtex3FcWRUkOjQNE2jVEQRIbb7K2quP4QeLmlQtAaSMGofkvQOMtTDKFVBlvgmtf59cCPCNdLUYVQJFP4RdsotcCww8B65/o3qnbf/hscE7d3THtG79c+fIKG7oPmJRTHOboqzGxoO1yVQhwSrNXJCrwt9W6ja0zFlERl2cCBXCxk+tyfhadyxdX53muRTcP0gd2zrQu1USCpQZtbYkCVCsWpg61RA9GdJSdiZXlToJtbm11ctQWYp9YWKahyto4yRwTk7UVFOYXFk9A8v5ZZbFZZDMOjepiEi1FQmYQ9qoi1Yd5SnnniqzVo+MgNMCff7IAXiDUOIE3I2sMyH9z+c/4sHIg59B3ID8Od0ASMAPZhBFoLKAeQ3WajS1KX416qXH0XZsWN9kHF8HsRJcIdqT03nASQPKMxAemqZzJaQrcVwOXoBdzdpDw6B4TAVYk/lYb+A4up+r1Yv3B1FfAwx7qkhn1mYl5YVBDa4MzpDbUpvntLx0VObOUwa79JwTJYquVahs8mg71CtoyyzXsmBKs+pQ/Q/53ZyUCODd9VxhTeMdb1bgLP0thmWkfE25hemkOct0rumNQ6E+7223dfPC06ZTFLrGa+xmTeoEiAkNoVWDWiIuCxImlLF7INGTUI9RhkmufL1mV8W0pgkiFy8DlEtWOX6rjEh4pjgfDSSOoBmN5ELCHhUgRpOvkWkIwN5tkB/x5xSEw2sA6jky36Msil6cuo+bPeomMogLEnXaTEU3rc07E2aBMqYSm2Mqmwmtfv7xyh7Swt3SkENQ67HqLSMqTIey6c7ZZ2/WQqNqti5yIMN5yv3kfS53lU3ZP8+dq8Fh+i1oFa5nrELQ/DJzUrkWMg40UuHvBSl/qbkfdqPP57uBN95M9vnnO1rO27XEBADS41FqEAvQkUr34SA4oqeEpEbW0QQ0tchmb3/6c564hgwE8gtfeyTXm428ZYG9lTnfWOXexz3BU2a77EWUKJ9gcrl5tJidNPq6FqwcHYdG+XmLVqakEKrB0oOgAk1dVs9LrAowHgEbNSQqgW/9glaxcQhZEVXyjLh9Sjhubl8C0JELRckaGn+hiH4/VQNIj1Ug5JZhMDehIKQpHdYmUCkSVIJKbyC0dwAHa7xY0jjeGtX+qQxUtidl84xTEMoLzXyGi41qgAEeD98wXfVhhiwFMT9ey7Fd/jxky0FjfVIS4F7/fClOOXe47Uoje7AnccSbr/l/oAfP9ly01j95f6laVS1sQzw3LScOU12k70rqjXWS/PEmXO38/gbSW9t3qdWqzye7+nsOa4GNNRm4mtxumU5h6pV/6Sq1P4GlKoxor83eZWvpT5PlQzBzw/BOpXso9pIX6iL5cWYf3HIP6lQaZqk5mygZ7abEHabF7uaCq7tDr/pRlkqb27fp9Vniz/N/am60QffonrtvO5rlC29jshLRWgWuIulFm+ub3oGvNDmxVensZxj6Ttss8GGAmw0gJO/h/cLpNgFjhnPYlz1A8MOIsOJYP7Y+4WEwqu2HZ9Sn+zUB5gOS7TE5GUTrNRatiNBaZ1keOY27MKrosqv954Hy026VNVOMUjiNeT2uFZLM2iUEeRoxxeqqKrQyheGIYH3R3Liwfi1iq5vfoxMBpvcwH+ao6oadoIf99XW4KmKIAWbKfDolDdTsyrQfxd3SwOrOYByjucGCJU0uZcxGalRrET6PgkGI5sVoGaVvXYIxlklXKNAN7Mmg4IjD1AdiABMmwM5soQrdiyRI9byzu6eYphlRr3iebyj5ydkV0uxKQ+ljWkHM9su3uWsYyqIDtSpr90Ofq2MnCM18NcmEdzweq9lbOcuMVd0HzYPytatsv0XTXN181rbP68UxoN7fIBlcLmF+lG5t2prB00kp1wqSN7cR0GlL92WDVWA4DAdHOx6fQIW5r5aebgH0+3Kn3Ms7vH9UP1rT1HbxcE7V7Ceam/XEMZd6Po1ilgkdLr3YNA+4yJ5ubizxoWYFZgtzNVwX0gVwrNTfGxaVKea6HKM3vHgMwE7k3KpSsfMYbptkdwi43gMqq7U28OOr2NgYtK5Be5VECb29Bp8I/Ui9NxEKyGURzsQ01xrX588WmjPDgtVV6LJRM8YPNJWFT9ajgm323gTfnN9U00p+aUiWU8cvQwbuTvBs58EHFQhKjcZ8JgTQshyiAgA3vcxH7SIVgUl2gdBKB45xgfH9/q7sUvPXMsNe6Srs+ApUs2uysNjVRhq6ZOxWQAU/uq1cOnkncibDTu+1nzJCucWqMgik04Gp8AQ9qrD7TpMgCFwnV0B3k1Ubb/GP+N0PuN0PuN0PuN0PuN0PuN0PuN0/rPgdNbIuBtBvEFt8FO88WnZu2RTpz51v3aqkBrsCq3Ke9SLO0y53gF0VRSl9btBR3bVU9tXTUf+KYwijfVYD6iJ3amy41Tqcd0Hga5U++jQzWnqvfqhXeYypzsV9bJo2s+u4PdAHAP9oJmydVM80XZoxeIawJy+AHAgfLWrSASXeLz6peeLNFI6jLflspjixffSbFFCvaHfzy4m+jbfQP6AsZcZeyJCQHEgtcPEk8ZEJpM6E2kSK1zdTaruoyQ3znoJmB1vcrQ+iywFzSiWJgNojyj7wvCcwFIfq8cI/EoUxpWncE2b6KvKeP3dTnHMkjqPKFgfsUNLoWCQtYbmulWkUij8swUboXvDiGV0r3RRjXbmqvdSuIDZmkytZ9QLVGGc6E2qAhUCpplIwCIUdTUH1KevLwTT2LjHEz1zROQuAGAEQm7yNe3+otRw8yaBDWqpDpplplLK89wZcIzPxiPodTQetWLreYh63UcXnnwN61QYH+wMPCBXvozL2CQWTKpgIo/BHDsNuo13Xv2eL97PF+/ni/fzxfv54v188X6+eP+fdvEuIptskrfU21KF97IOw8qJjWkGTNusiOnfbjC82ZO1TrH2RoCqVuPJgapfd+F6VCTHwlMYx047pROj0Fy7TgiEpxqPXDPgycdWUOPgFvxT4x2M+tPYrXuDWsKVrRtGz0WuAf4Lzi9+2jlAfqfkaKSf3sMXPkdXby+NkId2RcnPHJDrxy91zRjbeIEpcG7LSupEv19hADWHw5viVnzzWszo9MCLAkcePqyiYAUx11KLmdTbt4vZ5US/uhCz6qBn4lzc9rmrwdBzoyrXsrOJ/upCzKjzc3Fr708hszHeNWgH00KFEdBnHWlyi76g6xy06I9qLMhI5P50t3VzNtF/4h7fWXRnDGaG/t0vHLfi0ltwCeZbEMAvcBxBAeV4BgT+ANDpuc7kcgk5M8qoNJJx9CsNc64CCZMnIHbccHj7iuUG1tG/NiIcjFhj1WBzyegNNi/QvUhYjnQnXUSpyXCV/+DW9Ja/wO4n+toFfzjJUF/1S17qj9U1Hgt4jf5bptkvs6rI4gv90eTVRPcSWNi3S7Lx77QDDqcrQbJEvMB0OJYmZx4nG5UiwLX2h4uQCbgJcRF+hsQFyh/xMpZn9l7oInamEURCoJroX8EZ07S4FbtQqocojhH9eA7sl+La4xWeB6NBDBR1AHDLr+WdAmsF21Mg7keYB7kBc1v3bLFSAOR8erfXMmBFltypMn27ASsaMv+vtMg3sLfnSa6Lit8FdgX1URJ+hSWB0CLs+MbCyYKJBjVxXhijuRmwAX30is3gr/11T/flWQ0TA8jijGSH0aQZxCNLMskSDPWlPIqz80hzZLNPH0ZKoBNCVhhioitNQ3JEBOIkSBNjACep3DZ1OUa+26C5yIHwYvyQuNJbschTiK+caJBa603GGFEQ4sZWTN/mg3w8VyJa6gRjOau0VJmsauBOw2veubcKhcurb8Sd2p5j4JzYyCgtU0ZmmcTK8iTcqU3eKPTKROdGLfIYWctkCR5VBcynX9LWSxqghojcTkKHE36XgHP/kat0i8kZScofGJvIJGyEpzSreSLTEOXI39SWpDxJLWMthnYBCS8Gpv3N1x66y4X4uwP7neid3/751Vf+x0dGNcUFHyCB3yCDvP6ubnSj0F270+PoTonZcpOdf52QpTP50+yC7fwTncCJYaAiewSAIlIvUcPD0TAtvFNFbuQ8iiOY5xh4HJdNB2qiHWFACwgMreQmjQIlNkmkM3NBGoOVwB+JwfuWUKbxnKFQnqfJg1FkpYYCEz4eNA+c02tT8AXELdKmiIBuJrCLhPYh0WjUFhjPbXo0znJ31HfDEXZoVFXN5l6xGXwwHA1bpOav8ziLziEXsFSMBoz1ZGFAnYm258dSuRqsKHNYNRq0+PIhbNXwINH/Zovc0WHvfzlj2iXrTTYkxrKsiwpqQIB8jdEKDVi3IEMsUPHFRH8s5t9/lqC4/D9Q7AQo/n+70/4PqcoNNHxOPZs+teYOxTKtVyerThvyxA1lmruZD6Gqi64Hx2SysMjooBblc5NFWY4gGyimCwxoLpoE3hMYDpwZqvgA1p3bgWOEwefnTnLjBTehE/KdqwFHFgS8CqA4I5T4Elx9m68ApvVs6H829D8b+p8N/c+G/mdD/7Oh/5/G0P/vvlXLKgs3qHX83ek7WJsUFMxh2elO9+FPW3Ss8nJQ39QlvTgN4BY9vVNDijh84GqWHIqF9oHAu9NRarKJ1lEsU5sQh6dJssmidfSr4jg6/GoVZQKuhXgB28QyUGaivYiVRaTi8ELspQ/TJM+hIzL1VCcORV90xqQfkjHlPhSbJI6CrbN38QJg8xfilt0NX329wvKcSuMlUD1mSsMp4b0d6eV4oslaf6fUxlAb8I5aRI9o10EsJegJjJFQnijf0I3CGgOShfjqa7FKcjAeEMkm+hCa/cH7U527WZ91J3Sdr9UaCoOMR199XdIHiAOvobF3jvTIj0Wd1QEr8cc/gt3gz3iBSs7BTq+MNQ0kOt7+8Y9gL9eLaJlzWb1kw6bZJPXNh/TNvubD7tNJLRZJOui6eJ2AsUdG2gj6WGBBQDvYRZJO9HEGP9HXeQqmk3grDEXbqXKJKTTnybjQFGdrFUb52haRQjUStm6YB2iuLcbFY4d7FBf5gsuYNFDXqpAV0MpCPaAhAy27cBWf6NKMy9ZPsKj9lGTqEq9uaDr6M9xsZ2z9CD399QXVBSmmZ854zKI60C6W1olW1rYpY6fuEims3jsePVb1X1eh+Htigmol6r4c0VHuma1c1dDMVlNoqOb5ckkZ+KHIdahScL+GNpXU+kG8Hhivd6Lt3QEvBZgHqoPIKOf2zTjbE1bIPQTfY8FbC4tvlmcqPc8N2CTUfaQeZnbjYqmhOK6WSjZCLjK4dtOC97mT8AjwYpvVkkbd2rgy2KWcUfeYF00uVLadFlaNYc6oDOV+Q1D1SsUbuMaB1RkOPFQ98HhEcz6njKLpey23oHPdR0lMjmE6gL8wsL6gl+NRFKH5CNzEoHoCHniSx2EpyxBbIzNNvC0GZYSSwQpHcSF+Bh4DgGmlQ7GSZsX8EeHQU9AHJxoAs9ZwAZVhCPm74LcRCXo94Vi6T6IQVETkLQij1K63LW1rZ4Lf97SiZTmfK5OdbzDgNFDmD/xrQW6L6KXS+yhQ04zXr+/2YxesMvaIh/2ABAH/MS4lqjzQfAWjZKLPxeuFjTv4AjjzC3QVav8150gpPD4ucpcHLWDQcGXB06wIGrhJE3RZGJUBU5gL8UHHyhiyUj1ERnkfjUufYKfgy/6CReYX1eHa3weOGOSJTMm+biWNZ413ypJRsQpAKpDMqnT+EWKx+7MCvH1erM3ZFyCUvvi4SaMkjbJt0ZD3PdhK7Qvety/PBs64hMhQWjGcFPqRwdJsVEZLwIQVc7WS9xEUljTMHIXjGZVgn2VnaMNfY2HIyBSNOXv7PAm3NEyvXHy1DXKpgbnCVczyOBpWAjRNLADvpBSmp5f4WnAYCvdMjbKEKhwyLiWansPKMtu6mfSQ40wsSP2P1SPECQUSY8Xt0vli/ZYm+x62OEnuLEnVno4V/BbHW7iqSclwM0d1XJJOA0EcAAJSLrYCgHZD+i+2QJbmauz5dVynaFGy/Ogg8/hqG8SR0tlEY24DMEoxdopl+EhoA+d4e1f3EEVU7A4XPnCxTn6N4lheJOnypdLnH25pu/2s5i+vbl6/vC0amVIjLz9A81NTe/CH7+F/UxrolIQ+JngoIu7HW3xCeyfgMJs4edi/tPu5sS2eofOWHEn+gVOszZQvBcN9D3zTdYMv4ivEW9Q5YRlhnyAC5jbJ8ZcZfXCJyzvbfYHgvTxN5ovcBA5zfAA7a+Yk6lh4DTkmoptpeCFu6+/IMITgFalDKBFVqh4FQWXeq3xdF+igs1QJVZxJ5jORJROtYRFisANs5DZOZChM9CtcBcDPu46yaMlaTyIClWIqholCdR6spNYqJuf/Hag57zEIyx8r9k93F6YbKsYsQsZiDgUJwhCUoTVGNayTHDYLxDPdq3SlpNtHuMloGhfifyc5atO4gA0rMsOZLWRMbk9n6VigaViHD1GYrQDuBrggSyETiQJ9MgBFFnEENRPmKntQSk90TQHEGqhF+hsJl0918xKtHnMnyT+wBcH2z8tSkIJGmmJZFnEi68DWP4PSaOR6E6OKUzTKfryxHb34Ekf71YX4a7QEOcrXSfSMfXnxLxONPAfhTBRyQXE9uEGJx8YQtIg4rg+1z78SxddRRuqiWCQBnlTQL+jSKVzUwM+PeiyJPzjOCo1WxhAKgLpaBI66iZ5lyWa6mSGDoFM4yVaEc8nOsgG39xaDgyQHVXF02NORr2yMBrKJZaQnFApK4sUGUiJcE7CltcvD7C9Bw/j43rm+6AbF1aiH+Y7PsCkvcvPt0FaKwZ7zCM52uL2Y7WpGX8uODe46DtKhUMqtKxiAHxQ1cujIXMNO44TUiS7MQfDV7N/FBMc2GV2KyejfTKIZ0HMyEp9mLBONqBPEWeqUNhjCWQmJWiNCLe5iuPrGkV08at5fPlaIJrqB7r3DT9qp7+6CVuNkMkWmOn1gAJo3qrU68aOlmI2xtT/+8ackK/YSX34oggd5T6M5h27tl2CDg5M+o8oOSSPVaUXLVEfZEMNdEim3xqxrpPpEl8jOIZ3FElh9xwiCXouI+BCBgsvuLfRsoiODJlaV2jJabG5ARmLDhYia4XdaigCwB7WkJK5lhiEwlVgoXyCYKvT/fu4Q5yFvcLY0YIvybqqNFTYakn+tslUSgl3CC0rHT/3k2gbaEtJ3mU1aiEsWvermdWGyjl7YLfAnFhayYa8JGSUsK4DblcNwMd4bKB4mwiTHoa/HsbtLefndNaMc7wdPfFUFJ36wpKssJCzCIkk5+bUUvYl1Oei0LAqq0jXWXtOYGfZPgK+xlU3Clue/jsXV+f83Fl+e/19oQLRpt2STDJKUrcMQSwnxfB1Bk6TNd2AxczKENTxURjV2dWVDUkKRzW7pG44ttRFpTCeIrC3JdCM+rpRvugI2OWd5D1coCyqfRkG253WU3UfUhp2TDFccXIa3DG+PFtrVxUS33ypxl0nKj6E8dXyoHmXRSagWUEcQAxrIpsBbnN1zeN1hbEt0qPsULBmAYZATPaM5oIiY0T1IvE9E7I7FMdh/Q3c7rByME32Ek7FRgf4BGeJfTaJvLTh5g8zkie2W71XlzZeY9QjHI2teFyfyt3syvtnh/vuikWc8Ai26zAklbX5Evvp5YsDotJ9HD61htg2XrOacLjbC/0f/7oM71PnQ+NLD3o2CXPbatCpdu8rfEimpf1Wi9G5XYIf/r8OG1+Qp8yj+d0fOqvuFhgYrwslAv3DRgWmwSqJADaH/X0vh0ewSIeszJ8hRVRA4HiAL44wvtVWROtF+FoY1X83wG986iyZTd6byRcXriUMcaDhgVugq89bJSlU4/BIwCUcbq3MW33AC7ApDhC/bC1usuS7okceEDkP0KlIsuyl/sImCO86mWid8sOF7KEkSdhoWqB4TzZogNWynNxP8r0rzBFrklVi2UMh+Fz3s1I6MvkQBUB/k1ytqDfIi+pTP6Ei8Q15F8kVkXKiozZ7Lz82AOAzI8QPrQO+cC/7q5jXpA60drKPlKhNxktyhHeZyomczVPUn+uNEC1G+0i04gn4yGosJ6o30+1Jl0wclMXp6JD6N61+ugw195MMk06NQqc1DdBe1fEmRn3anQt/i00T/ggMtHfS1BTlV5RtqvauoxeFbuSug0qVb0N0dWlgkaaAaeF8Waal27XaJiea7zH53BNunY9OWBbM1YE+0YnYYzYt1KDmPv1QOQlqkag235/5Q+r2Q8w+rAMJC1bmwuWrQ8fDPXfpII6+8ub45HdT3MTmkcxWPxjQelNtT7mwfQW7H5iYMvJNi3x1h2Up03G1g+wEaatI2sqZav6hsqkcV5Iz7UCoueNRibP3sg53Dd1Lbq2qNM/ChINECSOM+zhyws7rZrYq1gSB8qk0zAs1eVpKjW2HhPtbuoOWM7QEuFrxadBuSj3CMQRKBUQAx2LbKh3fyoObcx5Tj907Xl40WnOZGPUVvoZoifOEGwp3T0/VUVVmteKrLRsCbOVX1tVVisGhsk2j8je+jRst7W+xurzuadZw3aOpZCto5XeFfUNmaM67fZRjUtRyBi1dP6Hwm1krqmo8Q/Bp0qugtNYR5wNpkYPgsfFguD8W/JVdbBBsC3pKtE76EH2RdZGBkpzIqfN1lUxJdcCt35WoX6EmtXZX5bnwiVQvuym1Xp+cF6VyQRv6uWNJKeAPWAGG9EANwSL/DOylQxikFnGYtkgeNgNkV0gSrJKFIGSo0VLfzOiOCZgrtc85+Nm+cryCxybvd9fbAHp4kRR70lKyJ9i+Qx7teE/gE2iqbSquWSpeyf5g9ZNavVHxfm+4R3FykgLOfqzCroi+f48Wtj529R6VbhTUUcAXUpzcW/EY3RHf+bVEDjTQ7TuRLVazupYfZhYbYfAOBewhZBggH9fGi5w7zLqk1qlM3cMzn0MA5NbBzQ9+rIEvSKcbsTqOwwXq9iGLL8f0zb+gjQdX44m1ZfW952cZNO/wXe98HB3OWpdEcsCnu1JbseoTVTTHSDDdWeFypjchgMBmrij0htSGvE8A14ryBw0tJn12yhIfp5rIEi2VWhHVftIMylhMnajNJ0ksxU/8Ar5KGLKLZMqP/4h9xRv9VVGUO34r0DCPq4atLoSAL3+DfWs0uUXrib/jTMptdiiUCzYDFW2r+VVV+xrrv7qsYvsIECvdJjJ+438rvR3p2iU65cxoejSLSHe4C9Q+QgrBAywz/A//E+PYY/4kf60j7Ouq1ox2BT9plbYx2IE5qWbMS//0PlxfHyUFjRhPDiAyW2Q6l71PTeH5Alm90eq7ncLwhyM8mVrw5DLP4TOqQAZ/SxijoBoa2G7hrZ7f4U+ymHQVRGuSxTF+c1e0dPMCFLYBCksfP8XazrW596A6OQjtJoj4Q4ALRFm0ynqhSDkgAvwFsHv1S2lCtxhyNxfnS+kn6xXuGQXXi4rJC7C9qS1l0XtIc3U+Mi6fz9ZR8yacAxuOWKQwJQKE4y4TfKNxaVqd+hRr6n7+kUG8T3asaAl0qNdSN3ifG/x19Wgrh9Riig1uhU8KuLXPpajtPo9AaZwYM5WcFDjgLgUd3H/QupyqIIHsHKs9KfScWOaIBzGUMiVaQI7SWOosCodZzFWJ2EsamKoPIAQBKaTYyNSgMHpI0dI/RlEcD5lnDvcqmCewggOtt+oAjH1EYtf2rRpja+5ceRThOfUd8OrAUfWwV0mLKkU3kKhELc6lzY1VWf4DH6J7BiHb27O3EvyK5b4k9KC2eOKkZqxmf2UgFG9pWlVu9UqvOv/ryq6/PX706f/XnUoqs1Hd/J4AJe+pgXN40W6XKrJK4hIUyNKOA4vIowYqba5rFWEgrAcoZBq8uxE/4uxFBnBgixSu8yzv4ykKWUBZ4Zuu8OK2WhQ5lhkACG79OOen8tBIrRktYyrKoKZ8dJ1F5TeqluDhzl/mIWqZUNEI348Ut3XiiWBHfnPLOU7EsNyFw/ebvEH3vQIG1MElxH6WQDymsIbptpPY55tuLfYbqJ8bvvO8ofR+liYZi3bC3IrOJ5XaKiUbe36sWkVt5Xix7cZj3OMRXJZFnhy+48dppXB7knn1SKlXfLn0qdYLGu5a8L0iLQ0boEqYPkQ6TBzAbr2UAanykc8hTzee5zvLReESQoGlVoYfuvvfGV9XK4PkHwAxCn8cJd3ari6Vzi/8WtkjXdiaBiB2/BoeOVoStb5Ic/ZqpijErlgNtLCBk08gn+uODmltFaJ9xP6h5lyHjYEOFf3ehmIs2TbXclY1TCpM13BF7WYR3HGAcWCW4yeqQIMcfMajT5D4KAZQArJ32ZbyuUgNYAm5uHxQIV/hV0wcQvP+gOM7t+0dIVlSXYvZxMtrk87UKL3Qwjy50vL7Q0epimdxPRr+Uo8N+VvPiGGWScho5eTsZHn4KGauDIlCj5YpxGoEtSjAIlINKMojS/kigCLORgaoqeJaKFowFw3InuojLhVsew/LYH0F192AHDojXLRGI/nVNg74FiiCpIBdnGidFqvIQZC252aTJY7QG/6Ftw649QpP0sRTUi8dxwHZPe/4PqSphn7qCkV7MNgxmLNTF8kLMbqUWP6QSArKDhFCCA1jTdEineBg9JOexgoIR4uPr27eCW0GLcSFxlL6AUMiNCiPKLYG/Xr6+fTv906tvvjl/dVYa40TTID/c0shStRzm3WijBjXURI9rAMdMUh1J6jKL1upX8MMOo8bH11c/XQn7cTF/+EVuoosoAUGbw9mJfPIyklqe2/fNWX1oEz27Wqs0CuTLHxMzvdJLFSsz6zBh+iqC48eCSdEXwcVlZh7vduMTFe817q2r4vmP3GWt5EzXy5VY+tKePZEGUQSENOsNv92zuEuDgNleCi/Y5asvv/rz9Mt/mX71zfMZ/nyGP5/hz2f48xn+fIb/053h/jnXeJx3HYxdB+pfons/8kEGAXpVS1gTlAcDGFo2Ih7fZREF6HVZEiTxRL94c31zxrHypgQRzMrCm+uboaoBdXm+DjY77W/d2RPl/J8BAvRHTsLys88wngcLSkgbYsBp6U3BxEMNzlcWGFJaJ2a9767QCI4Qas50LCkDOzUZSPqegqV+SOhQEaZaiaTiSPR1ElIQAiI6EdgedHQOHVFqvNR+aglWS9RJhhopwg4A3G4ISe5/jXRW8BRyMR/4G+ZLkGjGr9n3EvbG+ZffnL/6l5cUU/UHGBb3AC6Ec2gdBrOKdHY2nugo83FkMDth4bmGIQlWl0s17a/ptfNb2cXw5vqmUKhKXmJ+wirje2R4VCJknq2SlCsnDgmn0+LtVQ5oD1Y+3CldL5vJgBC1vJmxrdvCL3DSxpvrm4nmFeaiDdJhNQaJ1uhoQaivMvgWBlqupA5jkl08Nn9yE70A3AQqKoXKLSdDwcABn4H1Ce6Eqwj0FQmvC9xYhzPqj9lwGa1sBTFkRQZhpMX1SmZ/uXlfqJostfI0nhHulT+oGc11XqjoDVewevdV6IuhovYPRVNnranolYEWmekIgPVdmmzmyeOl/1pIv83g+V8Ap7b0dAm/0LMkWcZKXMtYAW5p+S18FvAj//Xv0uheNbwbwu/44psIKvEli0y8V3JtSu+u7bMMHuHrb/MMM2wbx5HQw9JA7Aff1+bGbys3xduVTNUNFDorvWfgZ6x/NutQdWoUHfmsjHQs/1KiWcMjJFHp9zI5So8qM296pmpDKCZWKt8bbDAW2r72OiQ5Bah/jZGwrszCX9+/vxH8GvlgtbNVeAl7WOMMod5ygI/NrASxRaPEJk83iS3AycrEFFXJexkPEQm3pZO2lh35heHTl/sQto+u8MW922TkOgiGRy2aAvrusU50XWcR0pgkiIrD1SEiyKxxvLuMH9DlsJhOP9Gdo2oYAGd4/88qy+9GZYEQemDLg5kFW3nmlX9qXqk/u+J1bo14tQJUCohwjQvO8KvESE6WNYVOxlKT9DESnBcEGm7r1Tu56r62wD5VUfwz4mvZ76wUrnymk05J2wBmgTLWbp8G3Z8bYZzHpuvBO+rPvmktsqiN7pd1407nhuQb/zZgo/GtZm7hk7DO93BQgiuGJCATWmQa+7J1DhCC2y/F6ne4X6kva7rz9Y5m7b6qM9eU+6Yd8NSwCb8vk1Df8LE010bcbLNVYtN9uNZHQ3KsXxV2l9GJQRKboouLR40GUByFl9gs3PsOeVgWv2HZurSorY2zgmBhm9BRCt7DeMUsIVjmEoINVfpC7FYJVav4Tq4nOrG7d0bVoqZxtI6ymS1k0RsNywNbJpDlrolakQE3SxbWWSnccqIxGNGVULaEa865aahDWIr9PMD/ZqGjZewUkHK85A56o5zxKds/YP+br8tBdKWotFC9Lkh7bSl7BeHEJwJSgqbbkoCfbvF3o2XYkpJ2/xwH8MK1OI2mYRUioLIcfLllKdCxbicNJWzAT+gMI9xfVPYVxh4gNFVmtkl2dOQUJejx8fmrHkUZ5jK4W6aQNjPkMvGt+4r8UfYoLyp04AiK8zxLJSZoKJ2hgzjZyH/kqlSw12bCXvYo1us1B+IVG7PYCNWyvX9RmD9bDJk0NltsM1TxcBBMl7eyzgE8nQrEVdLw1aNKMxJuWWALCm1jxZXisOaAGQuFWxg380LCP4pnWM2B3Jy03pxHVKqe4xeFs3XJSiwgPmj3mGqI+M/PQT7OLsStTZ/jqnIIignufLcuVEcZf+pYGa4gB557fyGogCrT2qM/YYespbkbsgJexXRzh1OO9EZGGs9bwZLDiJkrozyb6Bc2L9AeR2c0Rz7sZqL+Qu+Tcoj/mrQMt2NwBrRZ9i38/C1WbD63FZtLLX5q3gxFzeY3QHrKiwPWHajGUx3lAvqlQAUASDNvR5eFEveWDg7KeOO+4viVVsEzQJh4lb9bZEfRLZGKQHenEMIN5eIqt73BWYTXRTuVaXFNkeqcXn35ZS0/gMdUlJsYEujC/TDSOl89W4X5Ri/BMvqg5huU4BM9+7eNWpZEOLzTRfQN/gVNjMYj+LqN9gSOTCDGXPJXplkkY5Idh+Vv/uRyNrlRe7D66D+RXwSIyjdg2s+X4oUtRoFOHATb/VNtYbDC+rATBpaEP9u5GFU0Y5LfYyxquMfJ2lwQtOtg/X95fmQHGRiKhrlzUF9o1zRfffnV14/wH5gi/fHnP32DugT8wz7ab9IsAVwf7t9//hPER7oO2khgw81apO2pyoW34G4dVX/cfV3wO2gCPSYgQMXwelBFQ+rQUC3cGFNJvUSl49w1sNlpCWLvFHN4QiTAqzIEJYzTlm80rCLatSwQOixSfc14JMRHao4SEQdAllnwlnPGbvkDtXNOyCz90FrbKiUd33jq0ayH9bStUhMqOto7H10Epgei6XB8IiNyHVhEZOgS2+9fdOdD6etFqtQ59OvaOW5hnX4VXwoMbUDb3epMPjatn3upFx7LMpVQsNgD6CabMjXfXP4En7nDot5AcSzK9I5Mx6laqsfuM0+mdzjhpXr0RfxfqP1bGlDJDIErz89JNyFIsrpgKQ2ygM+i8OHTHAzcZdt50D2iX6qzhBMMJ2d1sH3xuxp3Y5d/oUZwN5TPAK/7O5HAXYcIWQ9w/C6rPUO8h3k5u90DMIFo/3LZ+paM2CKVZb/s9ue80ueclOeclOeclOeclOeclH/unJROXIrfzxk9KN+U58zpNX+avnr1fMY/n/HPZ/zzGf98xj+f8f+0Z7x/3vXLP234sIf5ujBZS2Mik0mG/EJ0YKgKHCv4P9SX3oQgVSg+iAwWuSZjRRgtFkeyaVcr9DQDi3NRPldOG00aHABmKxV60P+NwWUu1dNGtbuqAnJL8PNUTLRUtqDQk/53kgMOuW7I+LRnznxrQ/mw9ZlXutMrlYnH7c/K1QJH8EcsQgwfQtj7Mkkh3tAOFbO9/vjHb0u1Q/74x0vx3svlSL2zfr4VbzdKX72mZ+oxw9wdiPYSrvBqIDdyHsURLBQn03la3wH6HnSSpCUUw4PwC2saKnTw8cBKKkRSiCd+b6kJwWJL8o8ZztJZRWl4Dv7eLdddp4jcIrvSxt3ynDepsqZSL1XQQOSPNKUsOowoKVLUWibpxjccMs72TkG8NF1bJIDMpuKFZ6Y0Z0AC+4LHVJ7pd5vkWIYSEXEtk5erZJXx/pGIJksTvQQg0u0GdM50iScQkgyIwGWJWyiw8Ic8qAJA1fp5hlsYs2llbHDDQg8+DZqnwRkam2mcLDdpMj8sjuBKC/6mgu361ZdWsljSFjDRiN8KWxTICAm2HmK0gB0u6Z4GqbcbqC0cJXqMv9rgYz8DLU6WICvmtP3r+JEw140/yaEwtyBs4S6gZYaR7okwcLmIbCw04NSCiM2h6DnXrdF5EKvcuDfHE/0AKbZ+0YhEm4jSEamgPd5qXRFGJAtn122mG3+KE72WxlyI20R8efGKy8o4dFz+FGN0ImOpnyUb8erL/+Y3AwFTZqIleQNxLHjtQnFOxwYE56UK3L4gcpEK1GCEWAYzb+ozxN+Fq908yVbEZWmu97sHFF/ChoMzZFu9CRERvfJU4pwDHi7hjpk53yUmeUbGlcsV6jFQKsQdW7QER0jl/hX9qsbV2EYemLLHTymudRFlHHJcami+FZB2u0Ega5S6GEUDb87VMtIaMcotGqoGAUyqJc0pjAxCds9c1M1ZZYYYR8KhlzC1hkHgWPE9irLGKY2Z8/6RK8MJXQsZxTbr/usvvxQqTZO0RwSJHWSpKlex/GWV9Bq1M7sewCmKrusjLlAdjy5HEI3xdTLieMnR5QjEHZXigNjiRR4XKh8MkCKVRpcLGRsFLl5Pm4MKM/gDF0yGfr768su6vu94pAjHMTnmsyzyON5ShnLGSLQewsBLKKUMv1H+nKchdoaaw5yzooo7i8DCM1mq8FxVUEnHDacosSKoJUCkGxd90mGExJFZ3lB1oRwEbQXkgEo/Nsq+vBstanrRfLl8XP9jr2gBDW+jeYSn36CQbfpERJrkvE01YKlL4mOHXWEjt00JO/Rz3Sbm8Tr3TrYRf3cPFYn+t7aaH+aJMsnnCrJz4CS9EK8pdBplTaGUQNqmJ338j3Ff5VkC5AlQ6sswtGB+kSmLpR20isI6ofxI4S6vea6jf+QYJtwkDysJER4tibrFhtgFTI0JMtXok+gRrQ0mk+uNeAHBjypIdGjOqJRC+RB5kIZvmWEdsRqE5qAUZU2C1qZqOTnAHdv9BdK5HKIp3Yh2552FCm17WLiuKfks7BnaQENFlbi+jz4VXfTIw1zla6kxuxhvvw2RTHwA+Sv/Pfz0luZIEfU9uOsDcVZUBmIp7QKKQ9dWLE9DlQG9hyzkd/QJux4eVtsSdcAQW7Q/FlTzcGctEiXhcKktGP/ea8no3R0DqkTNu995UjZ7wWRpTteqYVn4dOUULxIIwLlXMczlzBVSjADYB8NfNaNyVNQyUkxhP3C0SZGMOEPbUZKbqZ0Y5DWMWUMqxkuSD7KP6HVHh4l2SdVzJQKZpmAWSrhIOV5eQJUqrCfoq4LcPQPhOyYCQuHF4EFuBF72OmeLQaBaPbgWTWOcXOu28cyxPrHGUNUqugeclYzyrLwX2QSgxMyNZybSJFalYKy2oksNcZmpWqhUafJRSKh7HZnM6rigwbz+7mKi/yoN2p2In8UMEk4WkYpDOphcCin0PxMvGB1qggOYui4mI4RMyOMYLv9vOAs6w2VaRKkBSBIRZV9YO5jJBEpkGQta/jzdKSAPObeKAwsnj7dZHnrJujzoDsR253qLNtu3nUpdGnv5m1Jkd6bW7+wDsjmXQ7v95017PPbIHbL+gXxHVKUphRF8s460veS8htpPoTKktryhLTIWlP/g/pR4AY29QLmX1tYy0R8Me4u9xoHbYMQzATNHca8WiyiIlM7GOJRzIxd46Kg0kjEDgfVLW75ygusFWbIn9tibjIBFYYVSBcktsBf9iYkX4JB4SfLhpScbkrQ8ZfHC3W8IU8tv5RIvdOLKk59VaeDQ1RIEEkMIEtKDnUT0DLWrSKVgoAS8EWj5tS83qbyhkyBu0DBmFnTYSwbZzJtUBSpEwYASNOpoCUhBQmiiS5Ovzc8m6tibM1UE7irlqO03tonyt+IF9HtZXCLHYiWLYvciCsV/F3RvAvKTxMeCvcla+UIHP3NixyKrFBtBvPDbBDamVkkM7i5za2+cfMmDUXfc6Lz76W6R3pF6CwdHK827huvBxnDRsAZoTe+dAwcaRBlfiRKCqdop523qIhYjVByaH+lQNUR219Ic+x0CNIxPXg+9GrBv+83ABBHnw45xz5o7+HGpYb6jW2wCKuHUihsA6ZvXTOtvk3B7ygpVdk1b45Eb1nxHDon9gqxf4BhKFSHXu4Bs705VsS3uLOMUTmltcFummfuLiDceQVprvWSe++wYSxpLEE0rmcogIyt7xmgzbu684Lb2efXW6g/9OEyWHjokZr4+ewdftX3464tbp5RX3NUMwoo2NuLthQ9p/ARbIU/j/jthP74etGkKZAwUHwdvGw8XI8RpF7uoUUT7/NkOnbOHtC5PDPnlKfZmhZ5998TnPZLqg+bD6Ymkx15EK1sN6fsnOs8Kvhx2su275bp39EaiO3GwonQi7eizKzQ3MludUpEBerctdXUt/PyzK6cfNxcX9fTnUrFaUtiRtk3e/V0hvY3Tn28zZUauQeAZcDCPKkEEddcSfre7iGrHopcXzg6g+LRe2jdM8nmsKMIBBtkUrtwc+9A6vkFE+b1Q4ZMfYLb5MVneQJuf/N+LH/kW108N67g3+q3TZf+9esyu+cJ6mm3I4CAu8bcJJaBryJ3iNFWL3ABu0aALMn/VZNCnBz0t+tS3etzEUvOh0UHwd/T+aantptZM6TZ6+aKvZAUqRtuC1Ka0A20pG3vofNnX69jQFppdmqt4J8XFo/JhERtsjUzdkcH2Ld8oe2V/fJfQnmbLT3OaOFmWeDQl22CRMxDp6SZNlgC8A5gi1s0TWkibwiM0uxA3ySanwm7oi4x8z3LqRSxAICEHKbQanot+MZCCux35TrdRjRVuabp14cE80uxr8qzQ2rcBstGv0QQ7diwVGTH7uwr+J/MfmML/1+yMvRle2/Z9VDlK/owofFmy8qEB9zTW2i5Lre/rgXgtmvKsp7V2oqvNAd2s16iv1RJ3zkntlHVq7swTaTRLDjzmmrote1Cf5IgjPLmdJ1zjaLuON80gZw0fcnArx7V+9N4bENp7HwHu107zN3nhm0A38PdGMUjPOOPKOuZwkFkCjjPDDlJvRlY4EoiURZcqUJUmuoQGOARbrZ5HhRhJ5FYfNV3pe+XHlC9UrTPbF1yvYg3bQb4rgQFyBN6FSRVcoGeOGH3CYvRhMxONSZuIdv/h3Y8NuwYJ9BTbBsfTsm+ebAN0a5l8t+0j4hqu50DkgateUax2ctfJ2Rc7OIh7e3VRtor16qLmrWnvo8riaIB6Ag6HYbUdDK2sVX/5RqYUnS6tEnOJ58qYNskY26JiMXkYJX4KE063VZUvynMkIIJTsZZ6W9IzyyEubBMDLQjytiAYIXMsC6QwA/T1Fg0Z1ZyxU5foHChUqYuJ/inJILm40OtBZ/zp7XuXjAzB/v8DA9bLTn3Qr5QMu44O6B3RpqBzVD+44xqwbP1KMAh+sHRZAFr3vCOI0hVhoqt3hM9wO/iltr/c9cAvZEG/QVTIqYok2PDK5g33HDTyWwga6Tpv35dzccg665cqx9ijC3GrOAfETwzE7P7BZfT89EDOCU2VH67eI3IN0FYVpFl2hIbsbQ5pJsHoU9HpbgNnG1wEIb5iK86/wV0BKdiIT8kbsCh72bNr5gEq7kNN2qhQb5bVVAuZZWk0z8nm2+ycDJJUtce7FN/vHN2twsPw1TfiTm3PEV9XbGSUmlL5TJllMlgRuVyJD45LLSpsQpIM1pvMEqD+RHsVWfx0iAIphQPQUT/3DB30KgXhwWphUt/CBaybib66eS04GDyUZjVPZBpeiL+pLZ0EtPzGipe1fASbtoiVXmZYqe6brwtnn5noC/F3Vx5y98d/fvWV9/VYcAKLGVM8JNjH0RNUTP/GX59Pbr22P5WrVvkG80HersY9tIf/tapgkq8Vma3LA9CcyEiyDWF0AiWwldIWPxeSAJ0ruZyvKIZ1mHUEufUBI+ogTvceIT1ZDvNMKt64AqbgWsbxO9yczQKjkizZLp/620pbxHyLPkQvRgAHXjaYjmeQo+H0pEJv6q/6uLbLqs94RC2XlKNfuijYYDmtv3RK96dFzZFxi0vgt3nY9ihKElAkMrro15scAhRyoxgQtxht6eFew7UtnOdG7accSFSigGtkHLM7H/6zUTqM9HIKMdDZdhqsVHDXpT1wO33DMuMouBP0za4RzvMswxFC6M+2wYdKz2ub2C+rCNgV6wRRK/BtlDxYWwDwPfLUpkHjuDz4JLWgsixptFxliO2/UiqGf0DmIe/iRZI+yLR7D0NLMC9oB/D9oZnRGBMsSTBDC/5+vYaRfIuDpVB7mP+esRCP50GSpCFGvYsiz5wWIQkCKMZMYTrbfbvY9uziU2WGJ0WthQ5aQ2lKHNi9p8lhPohpW3j12EtYGtlJV7KtJ29Bv8NXcFmvAo5OOcW60lCmncvbuGQ7VjmVy56rS4E79XTfbDUkYqQW8gPYKKBbf/UdobtV7xmnZKrjMU2FKVK5RNCXZlUNw5ygzAi8QnkSQZ4aSItLJaQrr9IkX67qbZ6Kt6DpNp7yGWRHbGwSx4rMIckCbmp01vg4TA9JHoeERATg+yrF034H492pbcPZi78edscOkvWcU654xP5YI2NhIPCgTKjGKJ6eNvcFaw4XqFN8J2NYFme1IpipO7UtL+jf1PYGmjup2LCr0Hoi7L1m3bxAesc6ARikz392QN21BGFqjnhMlBr1K84m9+pUllRous2MWqd4n1InJkiV0mYFlbfdQh2hjolrdncxExOkSRz35BN6eYp5JfTPbbuW7F7ec71XSRr9Cr6V2A4yRDtyYG0OPIA9m7+HkQYtjR9ba+I+Tqov1fvw9sUtPjzRzqCe2/ZGhcN2hHjQa+gCgNxcCKHmaisnD5/hPsuE46vQKchGX7V4+tvo0EesPMjouAIFGmwe6Tt7zhrMhQZPyH/9x39mabRcAngXj6IEIHnNFgR39DpDwG58Du3jZaB1Hh18lG4QsqpA6GLWKII2Wi8O/QDkF7adOGNes8Vizwjupmz/MgRKP8heTtKHEfP4BI1P4PgG0aCYfGtTNWyVnaMsQ5J0NP6pzjNoRcS3ruEle5dvUvMb2iywv+tr2d8w+/v2SzcQ9cSWV0vrDrPrb9GIucsny65ctBK7EXnG/h3RqM72yZBoDebNO508xCpcqrBNwuyZQfMsao4qasoiJlVc/5kh88APia6nlbwHP5aCs71YWvuai0a4GHQiVhNHq3zoymOFecA4jC1nYa8lbz8Uix65feHKAaKsQ2gyKAo9chVy68L2qmjPuxpRMCOd9jbkoi4g9gLi3y9S0NNBYPtrkW/iRIYI/QPxI+gWt6WvWTXnyRwr+rVKng7I+FuugUZDUfc2LO1C/MA5nTWSjwmHzPqg0dSCiSMTbRQqyjMn1YuvOt0RDe+XnA/8+NY9xYjbGs58y3vHijnbJ0Fl1yH/2RJUfmkTa/QaBJ2d1Bnin/tTe8y1eV13HaeDQqQKnPVmp633fC/9wUNjP8wFihrAbgdnHUiIomLo97n1JTqoH3t5lHeKM9Ej4xOF6GFhriaagQVFosUqefDMjxQAxdgTL+jrsQDaTDccZItAqL0QqnhQoDVMOKhgMhLn4oasmqa8cBjVs4uQ+FKdcvRzr8Oz3BuIEQSrOFzJwmctSCttW6ddx2LUD5e/l6fxbG8gkSYIkaKABy4T/fsWX2zReohOxCKc6W6D1XY2fCpDFDXefMfYi/06rVWlFt2mwEahPoQpCpAGSH4MN+L2WV7tYvBG9hm25hvlATg3BP9XFghGfmPTGI+/RI5MfVZpX5r2XzWQX5PRpbi1Fd4I52IjoegRhfhyeXTU7zaM5bFrycYjbqHRZ4sPei2gHQeYLdhE6cWi8ujwXmN1wH3kAXxsa9yFzkbCfXcyyw+RDk8WsKXDPjyy1wp+aqshBupRYZjc21bYqIAMMzM1N7FPzJ6vN3LIXtf0GyxFtXdOX7ZpQIze59f2BgToAT69FLZ4ijdMiCWsFGMZOtxaSZb9lFNbQaYUoocRwnUV1b2723Yv/vX27U/sprdM7r5H77Y0LrfKEWiwNaQe6GypWqxDUUyhciwewyRS7+9i/0rtXmPAOhfHuuj+vo3YpZutLap06gBi7qa/Gfu3sNWHWLGbGPdQK/bvfetaa2aN7fFKjUjYGKpU5fwOI+d7P0mVM4q8dWgTIUPg2Bsk7e4O+oGuPyNfPCNfPCNfPCNfPCNfPCNf7MW9z8gXvxnkC98KYrXowj/0fNVovWo8nROtdOsY5ERrU/E60lGKv517fyUj/gOSIjKy9s+3WEEHKjiBhsmR6pXizhPtV3f+Fuoxp7gpI3I7QftG8ZpGmmrCznAHzOwWKJUbnGjMHM/nBhIDYFfnqTbWY+jVoosW0BjyyVrqHKrHTfTHtdRyiRWgqXxT/8PBb/wceFvt1JTIr5ev17LJPVWDmtvXxXSg6lwsIaql3Wid/GpZia5Fg5Ya5HkygHmQbjdQDa9h9j3Eu/u+eiYWk8Db2LnYlIWGLBUXK66PYBiGPEv7+UVthDPr1poxy/pFxvuah+tl3mrj9sn0LHChppvdOR2htE030upeaUHZ4NYt08slWCCJ+wtuOOJWu3I91pa+EQ9GmEQsZKXG4C2T5ESOU2rdu7r6ugH3DXpH1563syz4uUmAnBDryNG1NZ/u+YTrf8LtyjdcbzjMBOVuzS73cXb/6qUrJ/iS35/BPHsMTG6ic1cSrt7MzgO4ftw0lLtpPZE6i41WD6L9bI/lEEqPkvVoVHrIm/AporY48Kg1a/Ezr3wvU5ndpol29cTXMlQVq3EfLe7Y4FW18TkXEXk1BzJSQX5q2Jl3NBt8hqY3NA9vn+O+EJWNnme0LP1F6Q7Hc/WVU13P0ShXzLnLxzOMwQZ6hmHpBpYp6mTSPaL6sYwyDWdsq3fCgQO1aOW9jGIojExu2UEljprKG1l8NVu0naZ/WJJWCGaUTKWbVNVCSNkn0y+4b7fP47raGatzcbI0OxYRX6ktF/7aa+LwZk17rE6+epSE6nXxkLTuH6HH02wqmmLTHuqkW9eOafuQTMcnj6TzBeQRaG8j108m0YZRnz6pvw+oRvdRmMu4gk9YnfKlUFG2UikzZ1oUPGohg5Xqhb2xzaRl6lpGtfexMHmwggqotnuckGEY07nyJJlrFTToslDrf1B2iJqJ/ruMo5Cw66iXrnt4Ca8N/uI2Ec4NAe8siNvB1+7xyG+98VhuWaTGBMLGN0+mmYZq6tF7WCCGPVoGBmoFyXqNdTS4lFeCiAErtTs2og3mbGi0//ePKsixtBp2Wx2RUek9SJtdOgN+hNS8b1IT6PHBiC44Mi9UCXrbiUP0vb6P0kSjFeZephHsRUOhrpmfsQuNd4Bm1ofYA0Mzi9YqybPpuqQTFHAMVivwYRm++bo2BZfrxu2B9r2O4jgyKkh0aJqmUSqiiBDb/RU11x9CD5c0KFoDSRi1D0l6BxnqYZSqIEt8k1r/PrgR4Rpp6jCqBAr/CDvlFjgWGHiPXP9G9c7bf8NjgvbuaY/o3frnT5DQXdD8xKIYZzfF2Q0Nh+sSqEOC1Ro5odeFvi1U7emYsogMOziQq4UMn9uT8DTu2Dq/O03yKbh+kDu2daF2KiQVKDNrbMgSoVg1sHUqIPqzpCTsTC8qdBNr8+urliCzlPpCRTWO1lHGyOCcnagop7A4MvqHl3LLrQrLIRh0b9MQEWoqk7AHNdEWrDvKU0881WYtH5kBpoT7fZAC8YYhxAk5G1jmw/sfzv/FAxGHvgO5AfhzuoARgB7MIAtB5QDymyxUaepS/GvVy4+i7NixPsg4Pg/iJLhDtaem8wCSBxRmID21TGZLyNZiuBy9gLubtAeHwHCYCrGn8rBfQHF1v1erF+6OIj6GGPfUkM8szEvLCgIb3BmdoTalN0/p+OipzRwmjXdpOCZLlVyr0Nlk0Heo1lGWWa/kQJXn1CH6n3M7OaiRwbvquMIbxrreLcBZetsMy8h4G/MLU8jzFuld0xoHwv1e2+7r5wWnTCap9YzX2MwbVAkQEptCqwY0RFwWJE2pYvZBoyahHqMMk1z5+swvC2lMEkQuXoeoFqxyfdeYEHFMcD4aSR1As5vIBQQ8qkANJ98i0pGBPFugv2NOqYkG1gFU8mU/RtkUPTl1H7Z7VExlEJak67QYCu9bGvYmTQJlTKU2RlU2k9r9/WOUvaWFO6WghiHXY1RaxlQZj+XTnbLO3yyFRlXsXOTBhvOV+0j6XO+qG7J/H7vXgkP0WlCrXM/YhSH45GYlcixknOilQ16KUn9T8j7txx9Pd4LvvJntc872tR23awiIgaXGIlSgF6GilW9CQHFFT4nIjS0iCOnrkMze/3RnPXEMmAnklj72SS83m3hLA3uq876xyz2O+4ImzfdYCyjRvkDlcnNpMbppdXQtWDi7jo1y8xYtTUih1QMlB8CEmrqtHhdYFGA8AjZqSNWCX/sErWLiELKiK2WZ8HqU8NxcvgUhopYLErQ0f8MQ/H6qBpEeqkHJLEJgb0JBSNI7rEwg0iSphBRewWhugA7X+DGkcby1K33SGCnszkvnGKYhlJcaeQ2XGlUAArwfvuC7akMMWAri/j2X4jv8+MmWgsZ6pKXAvX74Upxy7/FalEZ34M5jCbffcn/Aj59suWms/nL/0jSq2lgGeG5azpwmu8neFdUa66V54sy523n8jaS3Nu9Tq1Uez/d09hxXAxpqM/G1ON2ynEPVqn9SVWp/A0rVGNHfm7zK11Kfp0qG4OeHYJ1K9lFtpC/UxfJizL845J9UqDRNUnM20DPbTQi7zYtdTQXXdoffdKMslTe379Pqs8Wf5v5U3eiDb1G9dl73NcqWXkfkpSI0C9zFUos31zc9A15o8+Kr01jOsfQdttlgQwE2GsDJ38P7BVLsAseMZzGu+oFhB5HhRDB/7P1CQuFV245PqU926gNMhyVaYvKyCVZqLduRoLROMjxzG3bhVVHl13vPg+UmXapqpxgk8Rpye1yrpRk0yghytOMLVVRVaOULw5DA+yM58WD8WkXXNz9GJoNNbuA/zVFVDTvBj/tqa/BURZCCzRR4dMqbqVkV6L+Lu6WB1RxAOcdzA4RKmtzLmIzUKFYifZ8Eg5HNClCzyl47BOOsEq5RoJtZk0HBkQeoDkQAps2BHFnCFTuWyBFreWd3TzHMMqNe8Tze0fMTsqul2JSH0sa0g5ltF+9y1jEVRAfq1NduB79WRs6RGvhrkwhueL3XMrZzl5grug+bB2XrVtn+i6a5unmt7Z9XCuPBPT7AMrjcQv2o3Fu1tYMmklMuFSRv7qOg0pduy4YqQHCYDg52vT4BC3NfrTzcg+l25c85Fvf4fqj+taeo7eLgnStYT7W3awjjLnT9GkUsEjrdezBon3GRvFzcWeNCzArMFuZquC+kCuHZKT42LapTTXQ5Ru948JmAnUm5VKVj5jDdtkhukXE8BlVX6u1hx9cxMDHp3AL3KggTe3oNvpF6EXpuopUQyqMdiGmuta9PHi20Z4eFqivRZKJnDB5pq4ofLceE2228Cb+5vqmmlPxSkawnjl6Gjdyd4NlPAg6qEJWbDHjMCSFkOUQEAO/7mA9aRKuCEu2DIBSPHOOD43v93dilZ67lhj3S1VnwFKlmV+XhsSoMtfTJ2CwACn/1Wrh08k7kzYYdX2u+ZIVzC1RkkUkng1NgCHvV4XYdJsAQuM6uAO8mqrZf459xOp9xOp9xOp9xOp9xOp9xOp9xOv9ZcDprZNyNIN6gNvgp3vi07F2yqVOful87VUgNdoVW5T3qxR2mXO8AuiqK0vrdoCO76qntq6Yj/xRGkcZ6rAfUxO5U2XEq9bjug0BXqn106OY09V790C5zmdOdinpZNO1nV/B7II6BftBM2bopnmg7tGJxDWBOXwA4EL7aVSSCSzxe/dLzRRopHcbbcllM8eJ7abYood7Q72cXE32bbyB/wNjLjD0RIaA4kNph4kljIpNJnYk0iRWu7iZV91GSG2e9BMyONzlan0WWgmYUS5MBtEeUfWF4TmCpj9VjBH4lCuPKU7imTfRVZbz+bqc4ZkmdRxSsj9ihpVAwyFpDc90qUikU/tmCjdC9YcQyule6qEY7c9V7KVzAbE2m1jPqBaowTvQmVYEKAdNMJGARirqaA+rT1xeCaWzc44meOSJyFwAwAiE3+Zp2f1FquHmTwAa1VAfNMlMp5XnuDDjGZ+MR9Doaj1qx9TxEve6jC0++hnUqjA92Bh6QK1/GZWwSCyZVMJHHYI6dBt3GO69+zxfv54v388X7+eL9fPF+vng/X7z/T7t4F5FNNslb6m2pwntZh2HlxMY0A6ZtVsT0bzcY3uzJWqdYeyNAVavx5EDVr7twPSqSY+EpjGOnndKJUWiuXScEwlONR64Z8ORjK6hxcAv+qfEORv1p7Na9QS3hytYNo+ci1wD/BecXP+0cIL9TcjTST+/hC5+jq7eXRshDu6LkZw7I9eOXumaMbbzAFDi3ZSV1ot+vMICaw+FNcSu+eS1mdHrgRYEjDx9WUbCCmGupxUzq7dvF7HKiX12IWXXQM3Eubvvc1WDouVGVa9nZRH91IWbU+bm4tfenkNkY7xq0g2mhwgjos440uUVf0HUOWvRHNRZkJHJ/utu6OZvoP3GP7yy6MwYzQ//uF45bcektuATzLQjgFziOoIByPAMCfwDo9FxncrmEnBllVBrJOPqVhjlXgYTJExA7bji8fcVyA+voXxsRDkassWqwuWT0BpsX6F4kLEe6ky6i1GS4yn9wa3rLX2D3E33tgj+cZKiv+iUv9cfqGo8FvEb/LdPsl1lVZPGF/onllX8npsoNHrBCltwpPQBppiFD/UqLfAM8OE9yXVSmLjAWqI/SJi1uvIRqYPfjGDQ5y7SgzswLoyk3I3U40R+9qij4c38lyX15VgNvWKtMVtUbd3w2n9m3Clfu1TfiTm3PMSpJbGSUlqcrs0xi2W7aOdTmhUDBQ69MdG7UIo+RHiZLUA4UGIp+vVAvIpsaEhQF5cTDhN8lVNJ/5CrdYuR7kvIHxmaJCBs+J81qnsg0xJ3yN7WlLUTiyFhzjEXPIDAOmPY3X3vQGRfi7wWSKn860a3f/vnVV/7HR4aMxL2y++r9Bg0tr7+rGzIoHJK5UsTRnRLLTXb+dQI0S/50Ye2mCexAIyTMFAAapF7iiYkDYNJ521Ru5DyKI5jaWGxUiisFMtWRAoRqYMYTDYu3SaNAiU0S6cxckAS20uAjGYn6lqSl8ZyhPpkmD0aR0Q/w+n14XR43RWgQ6/eyXzAnFvoCHqkmydNAiXMhy8qCC8xrRtrbx3CjrZioxcX1M/uzLseBkGw6a0dsr9ai2N/W1FhdZmfkppfIMW4xPlWSPQ4ZaBBRQ2TFpnTW7gHaK5x3EQK3Qqge6wOtXff6hUG7rNr6VaurAft26ZYVRJmNdMYx7gnUgh+XGmZF1J7wDmy7BVANrnBM62+T8FSFhJDgdk1bvRYNa77DCWe/oDP9Qc0LEdBgKCb55TTxnbViwimtDW7LNHN/EfHGzdjxxWfHWFL0cDhJbX8Fs4CbOy84S6GaiuEP/ThMlh46JGa+XlZqeNX24a8vbp19cPorjXh74UMaP8FWyNO4/07Yj68HbZqi7AaKj4O3TaUOib+LGkW0z5+Nx17/WiLVAkr+xBh3/PR7s0LPvnvi8x5J9UHz4fRE0mMvopVKDvD3T3SeFXw57GTbd8t172gA+dhHUTqRdvTZFRqAMzmlIkPIOs1LXV2LEhKJ04+bc3r9JGibyFEo7EjbOFlu0mTer1RR1/Tn20yZkWsQ8+DvlMb/b6aumxqB6LvdKeMdi15eODuA4lOy4/hfhkk+Z8MxDrLpil4a9p4p7W1E+b1QwdsH75PNj8nyBtr8VAZHtz+OhwYLtNwb/dbJznv6gAFrS9wVMdA25B0puovcyHjgBZm/qs/FPuhFaNu3etzEkq3q3QWY8f3TUttNrS27tJlen2pw/WzBbo9grbtuyzaWwwISG9rq50arfGg9UZ7/rDOOwrnH/LPA/mhdYv2halqcep3Q3RNdwu6uIvv4tv+nretcEx7O/XaaJD/rEGwJl9hh0tuV2+dgiBasAAijIFDQT8i8VYri9T76L/S1qrJPASE0zqGBc2rgjKoEo4PKM933AsQBg32EB9/Rq5o20wD43Xa6+xBtK9UAHXIrTofmrhZFmTlXQHU/nakeCYvFwssl77xZVqH/ZJal0TwnvaL5AhwkqWq3qRbf7xzdsVxDou4Zmug9XUNil2doohvdQmJPn9BEN3mF2j8uO4XGgkErDBc5BR2sy1XUzzc06EbVuIf2uONXTc50n0dm69IyF3Ei66xFwi1W9+g6wlZKW/xcSEJIEHOVPUCI8Ze44q8IZ2qYolkk8Svwqd8DF1lBzDOp3Phuce/Z6Pt3VDC5UWB4ErpbPvU/j1vkfMu5TC9ien35UB7bTPvx3gCSru1q5j3n27dATNYp2HA611865RWbZtKR5PAbPW0HV5JcMCh6aaT8m2DAhKHDtd+f8/d76gY+WEuRpNSC83Y0yJIsQdQS63R29Dm8xI8j6xNha9b7OyALyWusQOb6nLXcJrp6h/gMt4fG2kCnlk/czdASh591pw+6uIC/qUuSes/3EqQPan7YrcUV0d2rdO6VVXqrkI4usE/yVpN3in0QkfGpQgRheCgz0ZSsYQAMZsWFzciCT9cS9jq+oK/HAogz3XDIsQ7P2ooDVIbNg4KAlwkf9ZOROBc3FNRjyiuHuvYuQuJLdcrRz71kVLk3EEropjzcQI3PWnzsbVu0PZyY/b3OcpOn8WxvF3KT8/hnNSftiJaJ/n2LLzYrokynUvSwvULubPhUpVKo8WaZthf7depDpRbdpsBGIdYNWnRbEsiPlwBunwXWLgZvZJ9ha75Ruq4ftC8QjPzmdAYsR6Y+q7QvTfuvGsivyehSEAWUsTXDMGCaclfRIBAnEnKnNuzF3bVkWLgAWmgsYIEPei2gHQeYF/BmWbIQ8egyfHG5f0gJfMztqiIcmfvuZJYfIh2e7Bqlwz48stcK+qZ9NyWrdxVVvfdW1Rs1kGG38uYm9rlJd0O416bfcHeuvXOiNX9Q8z1uzr8BdW/AtRlrhW/yjFAtCDbRG2zp4V7DtS2c50Ydqp962B7wn41CvM+pkQuVbafBSgV3XWb3QoPtFTMbR8Ed6667RjjPswxHCHFZDRogP6/ts6KQISUlrROgM72NJjvIaQKNJsxTq1bjuIo7ZqwWGdq+0mi5wsyzh5VSMfwDUFgs6mSSPsi02/gFLcG8oJ3ReITNjMYjaIUsmtCCv1evYSTf4mAp/wvmv2egyuN5kCRpCKlPCi7AqSomK5IgyFOLjLzdt4ttzy4+VWZ40iJX0EFrnFOJA7s3NUUzDGLaFl499hKWRnbSlWzryVvQ7/AVXFZ3rp5iXWko087lbVyyHaucymXP1e1Vr2xgcdsrymSB+9VX3wmsW1V10J2SqY7HNBWmSOXyBibWfLXccDkvyuJhEKPUQFW5VC7hhzTJl6t6m6fiLWi6jad8BtkRuJzEsSLdNVmAi5POGuPZWx6SPA4pdwrsyHQz3cV4d2rbcPbir4c5p6l0s/RG7I8V85UQaZySCsHxyqfnBacIU8ovdk3FWNGZORZK4m2tVE7rTm3LC/o3tb2B5k4qNuwqtJ4Ie69ZNy+Q3rEGYPXfwNkByGoJ1sg74jFRatRHwoYqCyeKjsECEs0r2UDxpkHU4iWCVCltVknmLdQRLFWu2Xop7oYhJIDv34tP6OUpJv3QP7ftWrJ7ec/1XiVp9CsEg8d2kCEGhQXWWc8D2LP5exhp0NL4sbUm7uOk+lK9D29f3OLDU1lGqfGWvVHhsB2YVNa7kJAJBixQ6nFn1Zej4H1xn2XC8VXoFGSjr1pi7dro0EesPMjouAIFGmwe6bsCpwNMEACr8V//8Z9ZGi2XUPxG+BB5Lh2FTAiFJewQ3E70rhbVQvxqHmQVweCmoyB2WuOJs7c1Wyz2DK9vBDRNwqGIRZkHEcPjEzQ+geMbRINi8q1N2ZjR/qP8jv2BRXBcS+Of6jyDJkR86xpecqVqG9T8hjaLmmL1texvO/19BwU0EPXUuKzcTf+QgN+GFXPH3b342wmIFYBq4h9wg8xIQEFhT1Hgo7Bav4J4qwIDaaI9ECTxrRImT1HJjVyVJUDjIYaJNOE0zzAwfWZFnq2pZRBKZAFh7V4pJuAvNmkHib5XqeEkwgU0hky4ljqXcbyd6I9rqeXSYR89Zv0J7Dd+DhtH7USApDiFfL2WTe72GrjDvi7zA1UED+KmVHq3Me+EXy3n+tSOzlKDrgoKpuIG6XaTqXDaMPseh4D7vpowUkwCUaLOxaYskQouhOt1EQAGhygYpe3nF7URzqybfsYsOxMbkM4q43Kqfc6cejWy2rh9Mj2HeAF8lN05HXpHk4Nk592UYvm5dcv0cgmBiMT9BTcccatduR5rS9+YryZMIhayUtT1lklyousOte4l2PkeX+4b8BS79rydZcHPTQLEYY4ffxaOrq3Gx+cTrv8Jt8s4u97whQ7lbi2y9uPs/tVLh739kt+fwTx7DExuovPUgt3Vm+l3ANfPnPpRTBj50/l2wHl0XQDrI2e8hDuiJ+J3HXhdZ3LtnDv8huctU/0KQg9PCp1gO2m3GX9mVuqFKW73faJdEdu1DNWg0h+d4at7r3FtfO4GSGEfAzWtgvzUsMPB1oyMPfRy2Ty8ffSHQvY2huYgBPdflO6IzKm+ciocY0QvL+a8o9DkAAYbmHCCRQuHIfh0Muke5hv4hIfDSXZQGmYhNLgILCogpXsMQv9pQv6xaaEw9Yz7PlSAhnCJzlS6SUHxr8SnkQLXL/p5d0zPdbUz1g/jZGl2LCK+Ulsu/LXXxOHNelXMyniqx0eoXhcP///2vv25bSNb81/BMrXlyEXKkvwYR1tbtzTOy/fGsTeyJ3XXTJEg0SR7BHYzaECyksr/vnUe/QLAByjKk8xqfshYBNDvPn3O6e98h9T4H6DG+9lU1MW2PbRx3DbtmHUfEsf+vUONQwF5gLFH4XafEq3b6NMnbbTambyWWUWp2oOw6nqXzxMhMXM8Lc7CcwGtGYZGjrKWgecd29Qy6rX3E1NNF5BuyFaPHTI+B6yXZK7UiOq040G5QdQM1T/SXGYUcku17JzgGf7iMinJM8TpHjDLc1h667G8ZpJa3betb96bZpqJUTDe3QK87NHSMf5zqpdLmADNLFca72sXIt/OyLoGZNo1HOqbT2JaIesYVltvkU1rvU1nwI9wNK/b1AR6fGc8DbYsCIGE2raiwL5R17LQCt0612khYS8aigUow/sSKPzQtNClXApdlaNlpBNspjx/8azRhbcralDC5YH2vZR5Lo2YIo98SzcifkFM1bC7oubqQ1M20qBoDlKi1rjRxRXcD2ayENNSF13MZlcHF5K4QtoqlLVIih9gp1zCioUFvMdNa6t6F+y/7mHCe9e0xxVd8/PPcJ3mx/yeRTH2boS96xpmu0mg7iydgYBCkFw0LkkC5n4IRaQhshP0s4ksEV7M7GT4e7ntRHlX2Y3rIm4S9D2XS1ky6wvHuAqKTPX7qi0oZpNobzX++Mn+Yt2nonAdCKR7kDaCGFsOI0MtC4xPGOEZYLB6vNwgLRShluuE6r9IuG+iv+SAcNykhxKKLkq9g1zcy5EaAzLAfVreMncRu1gxEjs2uQ/erQY7GlaKrkjE7NZvvjrJ7UBi73Mld0Ap74X5OsaXcC3do7DvJObvLpm3USGEKaTrK6ObWLfJqvdO4ty6bA+9Ce+yhfxqtviz7nvnsEIemtlk+Srr56RrrsXZr8mIC6+aBSLUIWUOMNPAK5At3OXlLdIbh76rHRDbE42sW4kB6pCdHpQACzlNp3opki+J04x/BfPzCHPXuVPEvkgBvY2pSqaLSl21JsE9JAKUGtNEaW822XycIe74xvwZYM6QBuKtYYrcwgqHo35nDw9G6LBuJm1wj/YALH9jK/TOOmrrqtBTYczxZqlK2jYU8pYm7J7ELPSxeZe/pjm7NsWUmcac9abMRFHseaH6h/u+TWPkOlrM6/bg5gAQ1LLsQ3fhms6vT/QYBuM09xN9tuUQdb7I+z1KR/bwWTdKG4+5ToZSulrlwMGJBGuQecqADMWJl2reTzKRC/qXLpJqlVFKRO+73f1AZTWrD8QWBTPuH/Zwhb7cQgBdGAz/F9dzW/u0x0HtB72h57ImizYK9mBEuVRx6u0fdvbp78QVZ3gFUW3Y2hG2dh0v0rajw2UfDAme2Pyl5lm+QKjQDdHID1H96MAo1H4PFndLGm/4devUfC1nM0T+QlWErY9DW9d89y71KozNz0udiM+VCyj3HfSA4CjA1/jWzdg9ecz9XPPJ0umI3zRPtHL2mqdtMcQdBppasW6gv8ann2Ogg3106IGmLfkX3xDUiXXz9AGffo55CuRbU9XyDQqb0cF3sEaQt7kR9qaQbSWIDWRLu6vAv3DPjuFgXXbxGNxJRdnRYSCWsmQVAYK2W+dqL3Xn/wsV5yDxa+1d29szUbfed7/RArgt4Bl4abjSeWzr7ezoQ9zcTSsO/O4nQp3tF/ybia5iIbD2jqgpCu7V4qkLhF3tnp126zYgqLrWU0fvkNKXwImvkjev3u14cx6yLHuCZWAgg69HeToRLbiidLUq9HWajxgaOOpEV9wMQrE3DNBuv6RsLRaA6DhPafMg+gTyZ4MJ6VHq4+V0NQoayJl3OckInfgF8AjoIikEZfFFs73wQa5DFRs/h+OXZhdeEERLQIKi0F0uyL+B95t5QqDBfcAAper2brLsEKTRWIZn0+dbtc5iLdg2rqM1Wr5wse6GL4RXbTv9boFGKksc1iIa94+C2s7MvxYxNVRj5le25GQHA0txua0C982rd3VsVMR3HTy/Lz6Q6WoLUnk3CbjZnWRvgDFwNUgM3lWSks4UrkTIlKbzFg3qbrtdzrDNqCLirN0RCSJNedhdREk3sOv7huqDrB6Z6UIs0/Wk/3G+79q8+nwxYV5DHxLvdnf0XSeh1BK/5UqNetCqVNExgS/UmcChlEeGM2zdTf7WyHtevftBmhL2rYH/tAPdWnZCCMVbV+A9SgFYoyPeTO0W1+67eFv2PYp1AI1kUS1JOSMtxIsYL3fuSb3aXd2oKRte0bAqlV+RdzBrYjXsrhpBkELiYAf3Mr2yu8c3M16oF9yPn+j5PS7Xunq8PnVhx8W2JQjSsztUpgRNCZUOHx64c2RYgOkFGeTXbSuHyh3IZYBlLF2RPh812nXlsCZ6ow6OqQdy8ovXiYvacyJ8t3rItnA4qXolG7wb++2jsIaJwCDbNM8bbKz41n3D1rESFM4bXWJdFmfz+7ccwwHR2nWkKIdwb7gstVeyFPu8ZjaGaqgGCcoYAm4gTqPICKLnwqZLb41Q+dIkmQAyHLz0Vb7ER8bHY0PRP6UIpCgXsM+ncDVvJRalJSdnUEsNBHg21ZJoJR4RLaPN4DlUiVMNHSjE9ri9r32M114CcTG8aWSG+xEN34Q4JoIUt+PEAs2ZC81Uq5UuSgrCvPz6vwy7zwtYg7lfChEskTPbrVWoLr/+r4FW+S2FlisJ4bG+YnLdUWAdsTem83kh5uTKq+faTfN8qOIuRPPHj8Y0vtZgxjgWhr0cD9Vl2Ev46t1tuUB1Ikv+M71OL7Hx1P+h+nkhaHY11B5lYbGoVysOsBl2tGjoCnEtdWWct6KbP6VV0tkyPd8I+xxotScfjLA+UHsruazyUg4QfBqG4EP3fhBpoQjpRir0x4gBAIP07xbgj2FMEIQ5ES4pyVSrf1qUJC7tcfjlmMdOL1dlF+P8Jxt9TeKICkhKsYRmC5xfgC+7UI3jofro+9+BCUl8Kv8Dwr1hxP+3i/T+ohCVgYIHVLPZhT3gruHZTcKXerfhGstQjJjreZdRDeDNK6iDY8MgzKWamFKWEOQjFR6SPgqGeSiGippzjPLXfQDzzuVAalBGok2Ep6KFRJ7w41D95Gh1yM93uxKGaF0pTi4K2Gt0ysF9duO6R4njHIo7q1UHIVFsqzaKKVefJQc6GbhbU6C3tnYXgoOWDxPahSiAhupj8J7ZfVdeSyO12rrnKKdWy+Uy/d5q0dOzJBfX3kShRhK9skESlahH1he4kPMF+P1yfcNOvrQqNXAgfS1mKSbLKLX9cVOy76rUvX4v1ze9fg8KbRASEDlgry0tbMdbNXv73dozVKCRdiCKQd6pikYw8trhu0hmVZ7fJr9WaQ7SLaNvC6aG8GQRUAxfFWRpmcJrLbsGB+hzbJsN4cufbwNsNiZxdncTcfEI4LKCQe446zUita2r696XL1Zwp9W7UxWxBbhTFfXcyhvqqC9xgKF8jhXuMSjNg2Ht0mq+DCRfTDnFNs45nit92iT9xGH70iqTOkTXYneDroZYGKssvEOt4x9O30G6N1AwuzmDne7Dn67RseLpoLqpSnpxNIXM6KMr0QXp8IEJwtiDAdo8lOLUfvIEGrmUeVpYjxOeJnpVyqX8TRATGH21kGUC9qI5Tn4SqzydQn5JNJkgEneczKTIs+NkL32YOjmAiiBXaKC9c8ch7F1ZP3yXqzb3YbLSuZze+iRoNAFYPBCc4oIbnz1bIOOZUOgiFp9KsN6z8G0A4wwVJRm6EmJlqAx4R8zkJyA9mJbymqIbcq3mQNBQrciisAEgepacPUsWuiqMHbKhusuYfRH8KQau10ebbwIHS7GE0Oh+7+xZpA/QCnwFhf3khh7Xo6eu6zATjx/PV+XgOflNBkYUAHnCnQ2hUvnt48dD9UqrmZxXTCykV3QrA4P4scZv1+FEc1+2anW1q7fZTBedzMVXGgCM6HegjxOkRLKNRZK8wzR+qF4Bsbwq89vAxxKSbGB0T5p7TXG8FJmslpZGA9VI2LpZNUVvjm8Xtx3sKKY5AWMsNcDs4WUFlDITN+jIuIJ8jWCKD1XUYxmymKLb7EddinM03ca4BMCyHbP3Iwv01y8pMtp3zxxxm5N6QzctaaWVsKFOae7UXRoKq/f2e5/q+q8jffyGFkGd3HPXFbGBQZPzh9R9ixTnNUWelqGqjJhVOa76TEyqObIkwtBUKhMFOPUy6xn0jkRXA0f1DJW1HdAoQACBmkoj2H4gYwRgAjBD7iG4K/3amlmcpuVqHqDbSNyM7cZF32Oe19knTZLOSjC7acJ3sUm4BWjYlg20gZsbxyz6SytfJ08a8cF7r0aHA/MCvFUg91vuIhYiX4EZB6AgOPBQ9cDjESGcjDVAZ+QyvQWd61rqnOCadAA/MjC/oJfjUSTRfQT5dED1ND6YDzBLdGuHpZGbJr/1jTIU+w2tOE5+hjUGsWdCZckiNQteHxKbXoA+OFS6SMQSDNA0ywD40YedSg5sOJautcxARcS1VRn0eHJtt7StPTX3nqcVTctgIkw5WEFEu5wK8wX/6ofbHLnLPzkVo5Lnb9ftd0kJZDmLD+8HHBBg5sepRJUHiq9dCYIb/vUMiVdKnTyClfmoD2+o8LXkRuY55UPCspme2V2CS3AdwrKZ8mkW+IgLjYgyI0pYFOY4+aByYQx5qW6kEcFH/egTrBQI1x+xyHxUb679vWOLQZ6kBagucmolDcspSMfilCUjIFeSyNx9SFT5x1kuPnVIDZ+LTwM/N0ePQCg9+rgqpC5keesLCr4HX6l9Ifj2yVHHHkdQvmjGsFM/Q1HgaTaipCnggU0mYpFeS6DWMrw4cPP+bOseh0s2oN9GoWoLc/72ic5uqZkBA2+9DDzd0V3hOEOCFQ0zAZomcuo6KYVX3tG6pvPF1UyFsoQCvDn4uwP0HD2HmXX5hx2R+FY5zoMFmLFcUKKiNBeoaNHUhWL9kjr7HrY4Se6dYcauN56JMjj0IrQcA+L6TUwdLPCcn/1aiaorq0ELJrlfB9fZOnr9HlWxlvPA4uj6PTAJoVNVEdn+RAnSFm4+y3XajK35Gc4Oky5XObHcu0IRcQnrpZ9MRHkjhEpOcOOfHSffyzm40VmvRBf5yfFLQFDAIcLMcXjVU6Qq08t+kuubxgdn+IG9dsPXZ3qKSxTqgUO0AA3NlHJKu8jOJCxlf5qleSn4HJTopB+XejVajSGrK+7SiS4XhChjP3kHxX2NrZGSb9qtsFqqgYQJ9VZ5KtVQ0fVikVAYE0p7RN2Aj8u65KD/5yBcPr53Xm9SnnhAu10bHWFRl77Ct11L8Y0dcAuOtni8eak1/D12CbZ46qkczuh+626z8QMfOU92wLIy9pIWl4OdHfhq/HsyxLZBJvBh759GK4bODXvJH2M21E3SHBBnpAsFdOdRYj+QvEvE1KMGB1ovhnkGwLtw+lgWDlXLuHdNgtIy+k4NtIcND5M09e7DAqB+44mmdOIZ4ewyxtIeP/5Rl34rsd4DCvkzjWtPoSVHCvs5mN9DdUmKCfpBWkadZjQedcQj5KBG4shBcX3KvzxU0bAzCMFPgUUfIMXFNVJGQhFw+YzTHkz0eKgkpm+eCcitllDGGLQ0cCGxzZLIcjNlRC3Ij8fa73QcdLz9xqPUtjAWCOYwSb3c5djWjGI4sLybGm2FjYbDvxTlQmdw/HnmaZoT3/ChahlbCjGKl8mawSVjvr55cS+BMHbjhdXC+gQwQJqYWwPoFU32iF0KcOPCwZ+IXMGYVp0YfZjxDVbsdoKPsLp2PPF+QOBGGocbO3S1iYRJmGlwE5o6zQuG+tJ56YnSSIO1Ghovhv0hY41l9QYEMhiig9/6ycXg//aTk8FXqBwxzobdEVNdsGMoS81CmD6JpbSF58aSsW9APTPg2doctVb1HV8cIJ6SlJbZJX1DU+nAKDxOk0rmkUw3yUdAKXlhDctkwPJeF/MnbH2WhZxGYSjbEEoBxIc9x1SG7VOaLRhXggF+wR71iK7jofI2VVlUol/fZWl+k97CSnEoIvEp9ZVkYiYVuOQslMlucfbMvwXvGsdD4V1aOIKR7wcaOVRj6gOKiDE0aHycvNdJ7o7FPrh+Mqyr5WAcqgOcjLXMLLQivsUF8Z9Gq0sbBtAiM7lj2+V7XXkLJWYT3HRgzas9qeSBBCDvtta7tr/WGAWWEmjR8UqItPkeXdNNtAF7cz9nfkkpaqkMKyUbwM3kh9D2wR3q3OfkHkvYsemHq8+5eRaRoRV/S0NJ9YtopLffAmxw/W8wZduc5MGI/8MNZ93zSk2DGeFskL9weM9outByKrqM//cRMpK9oeR4IpWSYJJfaqIbN0eMS6uL1DjZEWcuBNNR5yZ0zKC3xJ2pbKgENfHtJjUH/PM2Tn6X7AjRUqoHnoQ32xZoKAYsvuEE2IZAgi/Xh5AtmS3swG3CuwK8UCAYq4k/WMnpFUNsl5oPNnwPJYnm+wInUNKhYk2QCrbdGyf8r1rxBPMPWBVtBEpYxQ4uKjeMoUQBGDyu1wsq7Q2M4A6BahtIY3Gt4vBJci7U1ObA2+96YBn0h+pb1oGipFt9F5PXWgFhtnOtr9APcz5U4zGq+kP1EbDbsUlnKUaHvX4yRL2Rfp+LcnQjEI4Opl6/+eVyuqKPwggdepQJsbqRV3LNl/VcM/DaUP2CDY3zPtcn5L5C9Kn0TeFjd9/Km7BUDmlNtjuUMNPFVLSs/ZRFlJw6ethtYqLdltnPRnCUtHaZrpkwyyp3TzNmm9E+WXcdzsNPlQs7TgqxBOt596DhncIB7xZrx0I1DuE8ZOidQ463rpU3r97dX6TdIVfIxlk82KIJgp8+584OY662bG6KGrvXaLEDTFs0jtsdbN9CQW3aRtnCNkbKJtE844VpTKF0UNaY3fyDG5vfRiTOuYaDOEdjda7sMH3Aypput608upFmBJp9ii6cciCVW55egQxxRh8bNmj0YZcrFjQt7pt7GPHDRqTF+lm+eyU3YsJ1jBi6c391uTzzlRGfo7Y4H9L91VRXWa14asrG9xBVdE+icaEN8t61icY/+T5q9byvg+3tZKMRoto0BCHguQvQzsmE/5IiN484Ut5wGHQzsHcMlY+TpUhV444Q7jXoVFG3VBAl/DElOD79HZaDoIdWcr1E8CGglWyv3QM3sCsAnexEvcPmLruSyMCt2cr1KvAmtWEqs218T6oW0pavMZ0eJmTjhLSu75on7VAZO79GmxRGxikFNtO3vlGc+zT2dy20pthgIqdq+nmdE0HxCO1zzv7LbuNCBYld3uuv3m74hgfSwuoyVLKGKjQgD2deU9g8+irbSIwikiC+H65xBfnvG909wDUXKeB8z+XdqniXz1BRe8fOt0et9PPMNfT5nQV/0g2xA8E9XcyjZscxPIXIxXWqHNM/OWKrVa5TvNTH4OZme/HmDkOuqDTiNuzY5gEUMKACtm7oa0yjNzKlLiBCr8V7PZO5XfG7g+7po4CzOVTf17xsIZOYXb0Q3t6HC+ayLOQEwtKvxC359ebyWnDIOfFhJMGNK5UhDYLJLCJxW8Q3POv3IKQL4urzqmWFR/Fem2QJN9P1ZQ4ey9IjOgklx/tlE2a60RNdnCdj8SvcKinM0Tov6b/4R17Sfzl7K74l1RjBtPDVeSIgANfg30qMz1F64m/407wcnydz5Jgg+hP+VdR+Brnrv8rhK8ROu09y/MT9Fr8v1fgcL+UG1DxqhVQbrgvEryAFYYLmJf4H/onQ1pxzycJzqeL0sXbswBggugSY1la0A62kNXMWrb//5UJiOC6gz/nhEJHBMptYDeqpl217vsUl33rpuZzA8Yb8Hqtc8OYwvMTHqWKSXl2Md1zQdgNv2tlr7lPspu1NZTGt8rT48qjp7+AGzpi0gUVXlDzF9ra+9S3pj+0kjT4MwHHyGllgKA4nqY8cDAH8piuV0S/RhlrrzMG8s7ponqSPYIVAU5y4OK8N9qPGVPrKI83R/cQZq1S1HNFdcofcfy3Jg8J8VT4fIZfskxEywJzf8NdaVqc+RQ39+Qkh3Y28Fo1cVEWqMFUrAxg7EbbQpxGEN1gQG1YrVCpa0gItbieFzKxzpkNTfhZwAWc8H1Ghc7xdLsRUAnAfaPJSdZXMKgwEnqQ5wMMhPGCZqlJOE7GciAwDExCbKgwGDVdmqMwqLQwKgxtdZO4xuvKowdxrsKsIgZRtGwBX2+gGW94jGLX9q8lMWn//PBgRxqZvwaTDkqKPHf2667K0MRzRYGEYJY6Xw3kfsnrmIdlac7ATv8fhvqTlQRGxtJJapTw9s0gFC22ry62doioGZydnzwanp4PT51F0XKqu/kGx5fbUQVzeqFwUwix0HtEgdI0iIFwe2qy2uLZe9JPUSoA4puD0OPkRfzfJNNecsfkUbfmhSksISyiDxKYYAEpKtym9VstCp4/Af4hdsXlQEcTMT2tYMZpC6yzi6P2a8rmdgnZddlgbtMfriEpOsGTO302TG1k8Mhe0bu7T5ql5ltdloPhT2xC72kBT62FKk2tZYF4D64he11L7HENtk32aGsbEbrV3gvyemJTGrPL0dnQjM05SQ38v1ojc2nM/7TtnAIR1uohEnm1+woU3TuO4kXvWiR/vXGU4Sq1itGRtyZUUfEFaHC6ETcL0RqpM34DbeJlOQY2XqoIQtWpSqbLq9XuTQt8Y0ghCrQuq+yZoX10rg+cfgC4E7zzucWevvWLZuMX/DFtk03YmgYgVv4YLHSWILNXoCu81C0GJURhoY7ng2lo+VB9vxMQqQvu0+0ZMNjky7uyoCG0Xwlys01RrpM+MU8r0EmzEnTzCWw4wBlYlXGS9SRDeCzYyUA7LDGIFwdtpX0ZzlQpANsyJfeDJbfCrtg8AvH8jGOf2zScIUBTnyfjjsLeqJkuRHavpRB6rfHms5OJ4rq+HvV9idNjPYuKPUR5SjiCl2048wD6VIyN/64ZAlfMFU7TBsogioNOlrlTpGGM/QZQxCJTErNKpqCt4dhRtSCrCcofK43LBymNGDvsjqO5BxPEd8LrRANG/XlGjL2FEcKggFmeUM3t0V1IdpKL+JJdwf5gHaRag+chKsIunoEkWzYDtHf353xYioj10FMsBZhsa00/E8fw4GV+mKvm2SAGQPdVEEDqFOS26Jo8qb/QgFyUcQx9fX75NuBT0GHuJI9QxQCFXIpMUWwJ/PXl9+Xb09PTFi8HpUdTGoaJGfriklhVi3u12Y91oUEFt4/EKePF0oWRKVUI+5N/gHrbbaHx8ffHjRWI/9v2HX9KVPJYaBC0yz+M6eSJTlQ7s++ao2bShGl8sRSGn6ZMftBldqLnIhRlvcGGGKoJbj36R4l3EBQXPjIO1u5maxL/Xurcu/PMfuEqyv9okVcvLNSx9tGfvSYPwgJB2veHPexZv0iCgt+dJAHY5Ozl7Pjp5OTp78XCGP5zhD2f4wxn+cIY/nOH/dmd4eM61HuebDsZNB+p38jpEPlA+CrwE91wTFAcDKUktIh7fZREFxFWlnup8qL588+rdEWPlTcQOysrCm1fvuqoGVOVgOV1t9b9tSaYUxf90EKA/cBBWGH2GeB6kqUktxIDD0tvAxF0dzheWE85lLmnWvQkawQih9kjHSBnYqslA0PcIPPVdoEMeplpDUjESfakzAiEgBzfxbEFFmPiDQuOjZF3wnLO3WX4vYNrMIMj9e6lKv6ZwFfOBv+J1CRLNRneQRIO9MTh5MTh9+YQwVV9As4L8cAMoHRqzkKo86g+VLEMeGYxOmAVXwxAES7NyAE1v/XprpLLyClV0S8xPWGXkpGygRKRVudCF/M0pEbvC6VTy9qICtgcrH64E8x/yJXrlmNda4mb6NmUDv8BBG29evRsqnmHma08dTdtUK4UXLcfJf9eJFxFouUhVlpPs4raFnRuqGfAmIMcdKbccDAUNB34G1ie4EiYQ31UkvI5T1jbabPpEj1UuAEPmIwilSl4t0vK7d++9qslSqyryMeJNx2GjxtTXiVfRW0ywZvV16ouuovYLX9TR2lD0WkN9ZDoSYH1d6NVEfzoPX8votzE8/w4oKqOnc/iFnmk9z0XyKs0FUBbGb+GzKT8KX/+6kNei5d0MfscX38hpoY2elcl7kS5N9O7SPivhEb7+tioxwra1HZoeRg2xH3zT6Bu/LVwXLxdpId5pqcroPQM/r+Dn8UY2utqI9sKljOMY/xKNWcsjHKLo93g4oke1nrc9E40m+I5FuWWnK8RC29deZySnFiLNWpGwjmH9+/fv3yX8Gt3BKuerCAL2ML0RUr1VwBxZWgli88Ukq6pYaWR6+sMpEy5vXxeRcBmdtI3oyEeGT1+uw2X42wRf3LtMZq4DMDxq0QTouxYFWbI1nQVyiOmp9IerY0RIy9b2bnN+QJXdMJ1x2k6smAlwutf/oLL8ZVQWgNDDsrzzYsFSHtbKv/VaaT6zmVzXIl6tAE0TQLjmQQ7bIEFEysGyxutkLDVJHyPBeUx8wUzZ5eWq+9oS+9RF8c/Ir2W/s1K49pnSGyVtC5kFyli7fVp0fy6EeR7bzIOfqD77pvXIoja6X9SNO51bgm9Ca8Ci8a1mbumTYFnvQUpwwZQE5EKTprUuS3EO9IMyzMIYVrhflh/rugv1jnbtvq4zN5T7th3wuWkT/louoV3hY0WljE3dSeE+TPPfEhwbJoTcmiKZSBLb0MX+UasDFFsRBDYn7n3HPJz63zBjVQEHh/XuLNISwMI2oCMC7yFeEZMqX4mYwYaS/CB3awoJa9gmV0Ol7e4dU6KYUS6XshxbDvud2bACsmUiWd7UUSsywLJkYV1GcMuhQjCiy55qB6495qYlBVmE/bzD/Zuljk5zp4DEeMkt441yJhzZ3QH7L57FILoIlZaJ135oX9mRvQA48T0RKUHR64KAP9/kb2fLsNnk7P45DOGFK3EkR1mdIqA2HWzcshTYMG/3CiVs4U/YCCPcX1TuKowDQmhKymqD7OjIQd8ZZpTBx4PT1nCkeBgm6fRqXkDYTBdj4u/uK7qPske5z5eNLfDneVmkGKAhVIkXxHqV/lqJKFenjYQ93yFPZ1AciFcszHIj1DN2ficwftY3mTQ2m2cvE3l3EkwXt7KsgDydckPVwvDFJ1GUJNzKqc0lcpsLThKFeQZMPxG4hXEzz1L4h382VJA5Ha85ab45jihKnBHmg7IpiaIlkHxQ7vFQ1Z8PQD6Oj5NLGz7HCaWQFBOu8928UApV/GnDzHDyKLi5DyeCcifyWAfjT9why9RcdZmBIFmyucIuS7VKpcLzNnll85yPXQbV8VB9aeMC7XF0RH3kw26cNF/Y+aTscn9NWobbMdgD2iz75nz9OyZrHdhkrVGJf7RvBp+u9Q0MPcXFwdLtqMZTClVP/eJZAYDSLNjRsVDi2orOoIw37ivGr6wVPB2ESZD0d43s8NXSUBHp7ggg3JDFpGbtdY4ifOXLqXWL04PU+3R6ctKID+A2+XQTXYAuXA8zrbPpuVaYr9QcPKM3YrJCCT5U43+uxDwS4fDOpkFf4V9QRK/fg6/XjT2RIxOJMWf7TItSpjnJjrvFb/7oYja5UHuwhuw/UsG9skiXNqVQn8J+TpIvbTIKvMRBst2njYnB5MrdThiYEv5s62TU2Yw5FzbmM9vjZG3PBbjpYP0/3D/yg3SEomHsHCRR3dbN05OzZ5/gP9BF+uP50xeoS8A/7KP9Os0SwNXh/v38KeAjXQXrhsDCzdZI2/vKFLyGd+ug+uN2cyGsoI30mIgABdPrQRaNVGWG0mDmGEoaBCodxtbAYkcRxd599OEzMgFexBSU0E6buc2wimjn0jN0WKb6hvMoST5ScRSI2IGyzJK3DJi75QsqZ0DMLLuxta7LlHR452kwZjt4T9dlakJFRwXno0NgBiSajsdHmqRSU8uIDFVi+bsn3fkQfT0rhBhAva6cwybW2S3ji+fQBrbdW1Wmn9rmz720Ex/LvEghV2lA0E0+ZSq+Pf0JPnOHRbMAfyymxRW5jgsxF582n3lpcYUdnotPoYj/jsq/pAZFbgiceX5OuglRkjUFS9RIT59F8OH7ORi4ynXnweYW/VLvJZxg2Dmrg+3L39W6GzfdLzQG3DXlX0Cv+xeRwJsOEfIeYPtdVHuJfA+TOLo9IDABtH+csXpNRKwPZdkvuv0hrvQhJuUhJuUhJuUhJuUhJuXfOyZlIy/FX+eM7hRvyn3m8Jqno9PThzP+4Yx/OOMfzviHM/7hjP+3PePD8263+NOWD3dwX3uXdWqMNGXKlF/IDgxZgXMB/w/5pVcZSBXCB5HDolLkrMjkbHYgn3Y9Q087sTgn5XPptNGlwQAwm6kwoP5vBZe5UE+LandZBdJbop+nZKJR2gKvJ/23roCHXLVEfNozZ3JroXxY+jhI3RmkysTj9mfhcoEj+SMmIYYPAfY+1wXgDW1TMdrr8eO/R7lDHj8+T94HsRxFcNZPbpO3K6EuXtMz8anE2B1AeyUu8eo0XaUTmUuYKA6mC7S+O+h7UIkuIhbDO/EXNjRUqODjHTOp0JACnvi9HU0Ai83pfsxwlM5CFtkA7ntvOe86IXJ9dKXF3XKfV4WwrtIgVNAA8ic1URQdIkp8iNqaTrr2daeMs7UTiJe6a5MEkNs0+TJwU5ojGAL7QrCoAtfvra4wDSUy4tpFHmfJivn+cRBNWWg1ByLS2xXonMUcTyAcMhgETku8ZgRmYZM7ZQCoez+PcAtjNG2aG9ywUEM4Bu3d4AiN1SjX81WhJ3fDEVyohL+pcbuenVjJYofW00QjfytsURhGCLANGKMT2OEp2WkQeruC3MJSqz7+asHHYQRarucgKya0/Zv8kdDXVdjJrjS3IGzBFlBpiUh3nRgwLqTFQgNPLYjYCpKec94aVU1zURn3Zn+obiDENkwaoZWRFI5ICe3RqnVJGHFYOLpuNVqFXRyqZWrMcXKpk5PjU04r49hx+VPE6EhjR7/Uq+T05H+GxQBgygxVSreB2BY0u1Cc07EB4LxCwLUviFwcBSpQIpfBOOj6GPl3wbSb6HJBq6yo1H52gP8SNhycIbd1S4gGMUhPlQwY8HAONmbp7i4xyFMaly43EZ+mQmS4Y31JcITU7C/5m+jXsY3cMGGPnwjXOpMlQ46jgia3CYTdrpDIGqUuomjgzYmYS6WQo9yyoSoQwKRaUp8yaZCye+xQN0e1HiKOhKGX0LWWRmBb8T1CWWOX+rzyfq2E4YCuWSpzG3X/7OQkEUWhix0QJLaRUVYuP/1sGabzTmbzTwLQYSBdOQ4fS4C8O6nMDXHGMz04TTQs/L7FdPGfkPF7Uoj0KgMJCKT60WMUVrRBSoxTwc0Dl3TbbE3CcdIHvX7054ib2HPoNPda9HfwHlZvX2uonVFde7LuevkbDldDXLb2oyXDED2CozQc3HDb2eI3RsOk0wVyrLT3O358547bwwa0gRuQxoUoCymuEW7AWxKrhGx3bzCRuGKsOv7e6cSm7wb83dHx2pAMxKS+h6Z9zcP9R33d3Lnn0aJfB6G8y6Q3Ktg064VIjQaxt3biG2/ceQRcie2DEMwHAS/rExJt0D1bQzKmsR6ttGlvjj23PqD4jI17+wwaKMjlidsGzd9sBM05/dvz5y+efnX69Fm/B4DtHpxYoxcv02ciey7Ozp6/fHn61bOXz8VUPH/xNH158nQymZ2d/O356Yun6XPxfHI6/erlGXoFyxQClCm1PYOme6UwGIlA00ylY4vsqgrlPGfNI6KHEgm9A/wNL0LA6PR7QfRx7/zjL5TdAYcRsmTc6up/JN/rG9R/X7PtD78mpc7S2/9ANAf2dmnmrrOTvwns7GR2Mjl7/uIkezl5Pj2ZnrZ0ttA4vs6pAOifMi0rA/lnNIwz5NyEWsAQznORj8g8BlOkdw4pzfp+EdOQYQIA+4w5WEalhHA/m8ahvRrovNOzeuendjB+D5BbPIj44A8bg03GOvSDTmmmssLhJK34NNbS/DkeHNfx4XP6dP0ZkVaZ1O5NONX7dRHeEDe989PTDRIIoklXsJbBGJVoAtUqaKu0KT5O4EdYo+uLamzys2d/wP/6vWcnz9bAshzghXXE1KAKPKNwm37v+clJixwlo6kA8B5H9KOelejpFHhzMnbdMMzGqvDB1nLb5/dewHP05J+GVG2K4qdVF4gFrOTu9QNACYcl7tVKm3Jk3zEkMBY64ydw9ZRCyoDek+vTJ+Fr7HNAUYDxHz04Yc+fPEEwK2S3PX958tVJQ6D+gBDaDG5V9Aq5/m0stQ0rZJN9PBhAiWPCeBkxrQq8EICo1JUcYRq1j7/AMxi/n0gd/rvObr/xQxdGi9EGDjV1q8LCzgCdVCCa8UrB+fgeHZ3oreu7l1AuemUaUnsV1ZSlnf8dMjbVNssJ/RoKm5NQNtfqJblsK7ZC21WwQXihP1ZXxk0phvsEn6J643tOf49wu9OY1t/lZxBUqOJRCwSl/cmkM1HejqQjzgrLqwlP+0kkXzFwIf7L55Cyn0Ry9cQdMvZpJEODH83m+Y29KydO2J7UhC2bPT2pZhplOJ/qRaXgGqM9385KTkWW+FdyORUgFM5/Z3Ri72IF4zw4O4Y9Ew1g8AQz3hQUwdM7Oz45PhlUypQg/DG7qDblMlVBqStKuuP3bStqGUcQVGOpoBiO56Kd/7F3fYqTbcv4pY/Jq+HJ779PUiM+FPkff8DPv1aiuKWD6jotJLYK9qhlesLNS4vsFYnCAd6RuKR6TbEI5iV9cYFHysZ3fwmk17u3l+8hA4jO8D4PUxqf94oUbkrhv+c9jMQsbXYy/O33Xp6qeYUnaI/KhP/9P7DYhz8= +sidebar_class_name: "post api-method" +info_path: docs/api/HTTP/runtime +custom_edit_url: null +proxy: http://localhost:8090 +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +post_responses + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/post-search.RequestSchema.json b/website/docs/api/HTTP/post-search.RequestSchema.json new file mode 100644 index 000000000..d92d5dbda --- /dev/null +++ b/website/docs/api/HTTP/post-search.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"Search request parameters","content":{"application/json":{"schema":{"allOf":[{"type":"object","required":["text"],"properties":{"additional_columns":{"type":"array","items":{"type":"string"},"description":"Additional columns to return from the dataset. If the column is a primary key, it will be\n returned within the response under `.primary_key`, not `.data`."},"datasets":{"type":["array","null"],"items":{"type":"string"},"description":"The datasets to search for similarity. If None, search across all datasets. For available datasets, use the `list_datasets` tool and ensure `can_search_documents==true`."},"limit":{"type":["integer","null"],"description":"Number of documents to return for each dataset","minimum":0},"text":{"type":"string","description":"The text to search documents for similarity"},"where":{"type":["string","null"],"description":"An SQL filter predicate to apply. Format: 'WHERE `where_cond`'."}},"title":"SearchRequestBaseJson"},{"type":"object","properties":{"keywords":{"type":["array","null"],"items":{"type":"string"}}}}],"description":"HTTP request schema is separate from AI requests, so that keywords can be supplied as an optional field for HTTP calls.\n`schemars` doesn't allow setting `#[serde(default)]` as well as `#[schemars(required)]` - the field does not become required.\nWhen the field is not required, the model ignores it.","title":"SearchRequestHTTPJson"},"example":{"datasets":["app_messages"],"text":"Tokyo plane tickets","where":"user=1234321","additional_columns":["timestamp"],"limit":3,"keywords":["plane","tickets"]}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-search.StatusCodes.json b/website/docs/api/HTTP/post-search.StatusCodes.json new file mode 100644 index 000000000..dc6b2cfeb --- /dev/null +++ b/website/docs/api/HTTP/post-search.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Search completed successfully","content":{"application/json":{"schema":{"type":"object","required":["results","duration_ms"],"properties":{"duration_ms":{"type":"integer","description":"Total time taken to execute the search, in milliseconds","minimum":0},"results":{"type":"array","items":{"type":"object","required":["matches","_score","dataset"],"properties":{"_score":{"type":"number","format":"double","description":"The similarity of the match to the query"},"data":{"type":"object","description":"Addditional data from the `dataset` requested by the user.","additionalProperties":{},"propertyNames":{"type":"string"}},"dataset":{"type":"string","description":"The name of the dataset where the match was found"},"matches":{"type":"object","description":"The matches for this result","additionalProperties":{"type":"array","items":{}},"propertyNames":{"type":"string"}},"metadata":{"type":"object","additionalProperties":{},"propertyNames":{"type":"string"}},"primary_key":{"type":"object","description":"Primary key(s) identifying the matched item in the dataset","additionalProperties":{},"propertyNames":{"type":"string"}}},"title":"Match"},"description":"List of matches that were found in the datasets"}},"title":"SearchResponse"},"example":{"results":[{"matches":{"message":"I booked use some tickets"},"dataset":"app_messages","primary_key":{"id":"6fd5a215-0881-421d-ace0-b293b83452b5"},"data":{"timestamp":1724716542},"_score":0.914321},{"matches":{"message":"direct to Narata"},"dataset":"app_messages","primary_key":{"id":"8a25595f-99fb-4404-8c82-e1046d8f4c4b"},"data":{"timestamp":1724715881},"_score":0.83221},{"matches":{"message":"Yes, we're sitting together"},"dataset":"app_messages","primary_key":{"id":"8421ed84-b86d-4b10-b4da-7a432e8912c0"},"data":{"timestamp":1724716123},"_score":0.787654321}],"duration_ms":42}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{},"example":{"error":"No data sources provided"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{},"example":{"error":"Unexpected internal server error occurred"}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-search.api.mdx b/website/docs/api/HTTP/post-search.api.mdx index 86385961e..4fbf0d79e 100644 --- a/website/docs/api/HTTP/post-search.api.mdx +++ b/website/docs/api/HTTP/post-search.api.mdx @@ -5,7 +5,7 @@ description: "Perform a vector similarity search (VSS) operation on a dataset." sidebar_label: "Search" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null @@ -19,6 +19,7 @@ import StatusCodes from "@theme/StatusCodes"; import OperationTabs from "@theme/OperationTabs"; import TabItem from "@theme/TabItem"; import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + Request diff --git a/website/docs/api/HTTP/post-sql.ParamsDetails.json b/website/docs/api/HTTP/post-sql.ParamsDetails.json new file mode 100644 index 000000000..486f83b84 --- /dev/null +++ b/website/docs/api/HTTP/post-sql.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"Accept","in":"header","description":"The format of the response, one of 'application/json' (default), 'application/vnd.spiceai.sql.v1+json', 'text/csv' or 'text/plain'.","required":true,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-sql.RequestSchema.json b/website/docs/api/HTTP/post-sql.RequestSchema.json new file mode 100644 index 000000000..155e79719 --- /dev/null +++ b/website/docs/api/HTTP/post-sql.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"SQL query to execute","content":{"application/json":{"schema":{},"example":{"sql":"SELECT :foo + 1 AS the_answer","parameters":{"foo":41}}},"text/plain":{"schema":{"type":"string"},"example":"SELECT avg(total_amount), avg(tip_amount), count(1), passenger_count FROM my_table GROUP BY passenger_count ORDER BY passenger_count ASC LIMIT 3"}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-sql.StatusCodes.json b/website/docs/api/HTTP/post-sql.StatusCodes.json new file mode 100644 index 000000000..65aa96eb1 --- /dev/null +++ b/website/docs/api/HTTP/post-sql.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"SQL query executed successfully","content":{"application/json":{"schema":{"type":"array","items":{}},"example":[{"AVG(my_table.tip_amount)":3.072259971396793,"AVG(my_table.total_amount)":25.327816939456525,"COUNT(Int64(1))":31465,"passenger_count":0},{"AVG(my_table.tip_amount)":3.3712622884680057,"AVG(my_table.total_amount)":26.205230445474996,"COUNT(Int64(1))":2188739,"passenger_count":1},{"AVG(my_table.tip_amount)":3.7171302113290854,"AVG(my_table.total_amount)":29.520659930930304,"COUNT(Int64(1))":405103,"passenger_count":2}]},"text/csv":{"schema":{"type":"string"},"example":"\"AVG(my_table.tip_amount)\",\"AVG(my_table.total_amount)\",\"COUNT(Int64(1))\",\"passenger_count\"\n3.072259971396793,25.327816939456525,31465,0\n3.3712622884680057,26.205230445474996,2188739,1\n3.7171302113290854,29.520659930930304,405103,2"},"text/plain":{"schema":{"type":"string"},"example":"\n +----------------------------+----------------------------+----------------+---------------------+\n | \"AVG(my_table.tip_amount)\" | \"AVG(my_table.total_amount)\" | \"COUNT(Int64(1))\" | \"passenger_count\" |\n +----------------------------+----------------------------+----------------+---------------------+\n | 3.072259971396793 | 25.327816939456525 | 31465 | 0 |\n +----------------------------+----------------------------+----------------+---------------------+\n | 3.3712622884680057 | 26.205230445474996 | 2188739 | 1 |\n +----------------------------+----------------------------+----------------+---------------------+\n | 3.7171302113290854 | 29.520659930930304 | 405103 | 2 |\n +----------------------------+----------------------------+----------------+---------------------+"},"application/vnd.spiceai.sql.v1+json":{"schema":{},"example":{"row_count":3,"schema":{"fields":[{"name":"AVG(my_table.tip_amount)","data_type":"Float64","nullable":false,"dict_id":0,"dict_is_ordered":false},{"name":"AVG(my_table.total_amount)","data_type":"Float64","nullable":false,"dict_id":0,"dict_is_ordered":false},{"name":"COUNT(Int64(1))","data_type":"Int64","nullable":false,"dict_id":0,"dict_is_ordered":false},{"name":"passenger_count","data_type":"Int64","nullable":false,"dict_id":0,"dict_is_ordered":false}]},"data":[{"AVG(my_table.tip_amount)":3.072259971396793,"AVG(my_table.total_amount)":25.327816939456525,"COUNT(Int64(1))":31465,"passenger_count":0},{"AVG(my_table.tip_amount)":3.3712622884680057,"AVG(my_table.total_amount)":26.205230445474996,"COUNT(Int64(1))":2188739,"passenger_count":1},{"AVG(my_table.tip_amount)":3.7171302113290854,"AVG(my_table.total_amount)":29.520659930930304,"COUNT(Int64(1))":405103,"passenger_count":2}]}}}},"400":{"description":"Invalid SQL query or malformed input","content":{"text/plain":{"schema":{"type":"string"},"example":"Error reading query: invalid UTF-8 sequence"}}},"500":{"description":"Internal server error","content":{"text/plain":{"schema":{"type":"string"},"example":"Unexpected internal server error occurred"}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/post-sql.api.mdx b/website/docs/api/HTTP/post-sql.api.mdx index 058ca738b..eb732400a 100644 --- a/website/docs/api/HTTP/post-sql.api.mdx +++ b/website/docs/api/HTTP/post-sql.api.mdx @@ -1,189 +1,72 @@ --- id: post-sql -title: 'SQL Query' -description: 'Execute a SQL query and return the results.' -sidebar_label: 'SQL Query' +title: "SQL Query" +description: "Execute a SQL query and return the results." +sidebar_label: "SQL Query" hide_title: true hide_table_of_contents: true -api: eJztWG1v2zYQ/isEvyRFFEUvfpO+pVm6BUiXNnEGDEngstLZ5kaTCkk5MTz/9+Eou5FsNX3bsBaYvsS5O97dc3c88riklk0MTW/o1dtzeufRHEymeWG5kjSlp4+QlRYII1dvz8l9CXpBmMyJBltqSewUiAZTCmv8W3krh1NuCMi8UFxawoRQD4aUBrQhVhFYK9uo4mBIzjVkVizIWKsZYZL8Mhy+IRruSzDWJ8Mp1CxzQwygYkMKwbgkFh4t4Rs/3BryXuULn3pUFaAZwjjLaUoLZezI3Avq0YJpNgMLGmEvqWQzoCk9zjIoLPUoR9xTYDlouh0OdGes9IxZosYb9IWSBjyiJCBxjxWF4JmzfPSHUXKP7OcwZqWwL7wmdy5z3xQ8A8Z9cy/8eXjgFnhkD4EdZWa+R5Re/+cQ7yEyRMo15DS1ugSPmmwKM0bTJbWLArEYq7mc0NXqrhIGY1+qfIESTTxPoX1KD/VopqQFaVF+Gw3SPthbeRQe2awQ4Mj3AlWenp+eDEk6VoockJAcX2GcRkyaBxfQevSXdKwUTTvharXy6BPKhpFtUDWbG2NsPtm3yjIxYjNVSgy0I/HiiZDh3/3whUcKZgzICeiRo5FXlxevyWwxsuy9APLz5cX1G/Ly9x2xi8ufTi/bGMdXJ+T87PXZkMQUcTTT4whVjTjEURA8l4d1EnJiyiwDY8alEIsvSMkmWkxrhuu4hRnaXdXjdrOkx7/9vL/B7NcCRdPYD/pR1E2SfhgnvX4Se1vC9UDTNOr6cdQfhL0kTjrdXjfqevTk4vrX4f6ZtL3OfvgCdYadXhdz34gcTYOV97wrcT+MelE0GHR6gyDo9j/hS8+Pgm4UB51Ot9PvJEmvxZcoHAz6cdLiTfgpb/phP4yDKAzjKAkG3c4nvEn8bhT0ukkSB0kcxEGnxZtO0A2DuMWZaHW32ROZmX/2jrj9KIBb6m0z6/469pZ7jrbl2S29lbsl0lIFVc4DlN7JYkuiNmkJccFOoFtiuY5cRL+uddxKUvsODp/5vozZLn3QtPcXeS5RbfxmrpzATrYcdSdfaO6/RrtTMQ3ubvXUl2Id1aUDsvt9BwC3i7wBcKfe68yq8p8I4fcJcHtTNgDu7M8as9qpdenvASC2g8+4jT1z4dHqYdOt4/otbMxB5M3L5ccOFY/mzLLRuk+9EorZXod6VJZCoDBNx0wY8GjOMzviOU2DzW8zUjoHd89wMnh4tZprnEr/jsHtY61pxdG/2cb2CfnP2cCDFnX9fzH6US5Gbl7otN2kz+ScCZ7XhkalyYwJnNogJ1wWpW1ep7/i7nCqtdJEA8u5nFRmUsLXlq+Hrw4HxODYJTOgztVuu6sWtGSCGNBz0ARQ6zf7di3hsYDMOrAtBojKslJj9VdRnIGdqs2E7OYzO6UpPZqHR9W4XC2u2lmpccSbWlukR0dCZUxMlbHpIEiCnVn5HNkkhzkIVcxwbK80+eREyTGflBrIA7dT8u7wEDW+8ynOqwayUnO7cPZYwUd/Av6+Qx6XY+Xgc+uw6lJaPoPWMd218pw8iQiegTSucW/aZMGyKRxGPjrPc5CWjznoJmflUYRfKQ79MPSDw1IaV9jIxLDNmKypxdJ7izWx7dfyKbU/8sPKuvhqtbnyqspYrqvnhs5DrJx7gS9KWCJIWy7fMwPXWqxWSHaWMbMenTPNq6Z9g714/fiCBeCST0+qsB0O0TKKi9LNuNuDMLapasWH15yPy97Vav/NxdWQevT9+pFkpnJXXuwBX1vYA02pe1DC1W6Id7QlFUxOSjZB2Uonfn8D+MzJ4g== -sidebar_class_name: 'post api-method' +api: eJztWG1v2zYQ/isEvyRFFEUvfpO+pVm6BUiXNnEGDEngstLZ5kaTCkk5MTz/9+Eou5FsNX3bsBaYvsS5O97dc3c88riklk0MTW/o1dtzeufRHEymeWG5kjSlp4+QlRYII1dvz8l9CXpBmMyJBltqSewUiAZTCmv8W3krh1NuCMi8UFxawoRQD4aUBrQhVhFYK9uo4mBIzjVkVizIWKsZYZL8Mhy+IRruSzDWJ8Mp1CxzQwygYkMKwbgkFh4t4Rs/3BryXuULn3pUFaAZwjjLaUoLZezI3Avq0YJpNgMLGmEvqWQzoCk9zjIoLPUoR9xTYDlouh0OdGes9IxZosYb9IWSBjyiJCBxjxWF4JmzfPSHUXKP7OcwZqWwL7wmdy5z3xQ8A8Z9cy/8eXjgFnhkD4EdZWa+R5Re/+cQ7yEyRMo15DS1ugSPmmwKM0bTJbWLArEYq7mc0NXqrhIGY1+qfIESTTxPoX1KD/VopqQFaVF+Gw3SPthbeRQe2awQ4Mj3AlWenp+eDEk6VoockJAcX2GcRkyaBxfQevSXdKwUTTvharXy6BPKhpFtUDWbG2NsPtm3yjIxYjNVSgy0I/HiiZDh3/3whUcKZgzICeiRo5FXlxevyWwxsuy9APLz5cX1G/Ly9x2xi8ufTi/bGMdXJ+T87PXZkMQUcTTT4whVjTjEURA8l4d1EnJiyiwDY8alEIsvSMkmWkxrhuu4hRnaXdXjdrOkx7/9vL/B7NcCRdPYD/pR1E2SfhgnvX4Se1vC9UDTNOr6cdQfhL0kTjrdXjfqevTk4vrX4f6ZtL3OfvgCdYadXhdz34gcTYOV97wrcT+MelE0GHR6gyDo9j/hS8+Pgm4UB51Ot9PvJEmvxZcoHAz6cdLiTfgpb/phP4yDKAzjKAkG3c4nvEn8bhT0ukkSB0kcxEGnxZtO0A2DuMWZaHW32ROZmX/2jrj9KIBb6m0z6/469pZ7jrbl2S29lbsl0lIFVc4DlN7JYkuiNmkJccFOoFtiuY5cRL+uddxKUvsODp/5vozZLn3QtPcXeS5RbfxmrpzATrYcdSdfaO6/RrtTMQ3ubvXUl2Id1aUDsvt9BwC3i7wBcKfe68yq8p8I4fcJcHtTNgDu7M8as9qpdenvASC2g8+4jT1z4dHqYdOt4/otbMxB5M3L5ccOFY/mzLLRuk+9EorZXod6VJZCoDBNx0wY8GjOMzviOU2DzW8zUjoHd89wMnh4tZprnEr/jsHtY61pxdG/2cb2CfnP2cCDFnX9fzH6US5Gbl7otN2kz+ScCZ7XhkalyYwJnNogJ1wWpW1ep7/i7nCqtdJEA8u5nFRmUsLXlq+Hrw4HxODYJTOgztVuu6sWtGSCGNBz0ARQ6zf7di3hsYDMOrAtBojKslJj9VdRnIGdqs2E7OYzO6UpPZqHR9W4XC2u2lmpccSbWlukR0dCZUxMlbHpIEiCnVn5HNkkhzkIVcxwbK80+eREyTGflBrIA7dT8u7wEDW+8ynOqwayUnO7cPZYwUd/Av6+Qx6XY+Xgc+uw6lJaPoPWMd218pw8iQiegTSucW/aZMGyKRxGPjrPc5CWjznoJmflUYRfKY78wA8OS2lcXSMPozZjsqYVK+8tlsS2W8unzP7I7yrr2quV5sqrCmO5Lp4bOg+xcO4FPihhhSBtuXzPDFxrsVoh2VnGxHp0zjSvevYNtuL12wvm3+WenlRhOxyiZRQXpRtxt+dg7FLVig+POR+XvauV/puLqyH16Pv1G8lM5a662AM+trAHmlL3noSr3QzvaEsqmJyUbIKylU78/gaBRcmx +sidebar_class_name: "post api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null proxy: http://localhost:8090 --- -import MethodEndpoint from '@theme/ApiExplorer/MethodEndpoint' -import ParamsDetails from '@theme/ParamsDetails' -import RequestSchema from '@theme/RequestSchema' -import StatusCodes from '@theme/StatusCodes' -import OperationTabs from '@theme/OperationTabs' -import TabItem from '@theme/TabItem' -import Heading from '@theme/Heading' +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + - - Execute a SQL query and return the results. -This endpoint executes SQL queries directly from an HTTP request. The SQL query is sent as plain text in the request body. +This endpoint allows users to execute SQL queries directly from an HTTP request. The SQL query is sent as plain text in the request body. + id={"request"} + as={"h2"} + className={"openapi-tabs__heading"} +> + Request + + {...require("./post-sql.ParamsDetails.json")} +> + + + {...require("./post-sql.RequestSchema.json")} +> + + + {...require("./post-sql.StatusCodes.json")} +> + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/post.api.mdx b/website/docs/api/HTTP/post.api.mdx deleted file mode 100644 index 80631e9fa..000000000 --- a/website/docs/api/HTTP/post.api.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -id: post -title: "Run Tool" -description: "The request body and JSON response formats match the tool’s specification." -sidebar_label: "Run Tool" -hide_title: true -hide_table_of_contents: true -api: eJytVm1v4jgQ/ivWfKKSG/IKJN+6vd6qp25ZAT3pVKGumwzEd4md2g5dhCLd37i/d7/k5AQKtGwrrY4vgZnJzONnHs+wAcOWGpJ7mElZaJhTyFCnileGSwEJzHIkCp9q1IY8ymxNmMjIb9PxLVGoKyk0koVUJTOalMykOTE5EiNl8e/f/2iiK0z5gqfMZnOAgqxQtT+uM0igktoAhYopVqJBZYFsQLASIekeFLhFUTGTw2tot6xEIhcvFYGCRcoVZpAYVSMFneZYMkg2YNaVTaqN4mIJTTPvglGbTzJb24hX55ayeIFPuKhqQ/Y4HTJFJP2V17eFtaVg7yVdVXvcVAqDwtj0rKqKLRH9P7WtsdnDayjgd1ZWBVrzU41qDQlMr26uLmeErZY9Iw0rHlgpa2HOaGfi1d6Q2mfPO6OkYlqjWKJ6aG3k18n4CynXD4Y9Fkg+T8Z3X8mnP96EjSe/XE1OOS6ml+Tm+sv1jATQNM1rjltDJwRtsfuu+wMypzsyd/GUcNFJqVPQT/HVFtVPhX2sWFFjK6GL3z/3dmd2DoiCJHDcoe9HcTz0gngwjAP6KviQaEj8yAn84cgbxEEcRoPIjyhcju9uZ71rYQZhzzuzOb1wEFkZHzEHidvQ96EEQ88f+P5oFA5GrhsNP8AycHw38gM3DKNwGMbx4AQW3xuNhkF8Ao33EZqhN/QC1/e8wI/dURR+gCZ2It8dRHEcuHHgBm54Ak3oRp4bnADjN/OmaeUUuuEPBCOkIQtZi+xYGAa/m35VMH4sidc3/OBG7dI96KfDrG356JRer5SSisg0rRVm5DnnhTYkZUXBxfJw3Pzc9S5Ra7bElzovifcoE3Iria7tOLWVtlSVaHJ5NDdNDgm8jKH+xs7MBihoVKvdOK1VAQnkxlRJv1/IlBW51CYZubH7ZqTeWDfJcIWFrEoUhnSZHHIpxYIva4XkmZucfDs/txm/OWAnqca0Vtys23qs4g9/of0+tz4uFrJtDzdtL1QtDG8n+9tFoyueYkb2IQVPUeiWte1WuKhYmuO571jwPENh+IKjOvY0FOzxu8Se43mOe14L3erYOi1/JRMHaSe1ILOuqUewNvse/9+rcKvXAzk3tGvWZtvZe1h5NrDdzBSSFuucgu2f9W42j0zjnSqaxpq3a+N+TmHFFG8PaxuScW2/Z5AsWKHxnRP2JtvZfkZOLNeTgLdGJtZAdwMYgEKrgI7dZt5QyJFltk33m63rsqt6PrMJ9q++uUd2anVvXKQpVubd2PnBJfk6ns6AwuN2vZcya+XHnu3/BPbcwZQtC+0SaW0bKJhY1t317HLaz3+c0xLN -sidebar_class_name: "post api-method" -info_path: docs/api/HTTP/runtime -custom_edit_url: null -proxy: http://localhost:8090 ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -The request body and JSON response formats match the tool’s specification. - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/website/docs/api/HTTP/ready.api.mdx b/website/docs/api/HTTP/ready.api.mdx index a6fe1ac4a..964ff7c56 100644 --- a/website/docs/api/HTTP/ready.api.mdx +++ b/website/docs/api/HTTP/ready.api.mdx @@ -5,7 +5,7 @@ description: "Check the runtime status of all the components of the runtime. If sidebar_label: "Check Readiness" hide_title: true hide_table_of_contents: true -api: eJztWNtu20YQ/ZUFDRQ2oAudpECqIijSNE2NpIAbu+1DbFhLckQuQu4yu0vZqqB/75klJcqOrObyEqB+MMy9zcyeOXNZLSMvcxdN3kVvSWaL6HIQZeRSq2qvjI4m0YuC0vfCFyRso72qSDgvfeOEmQlZlmElNVVtNGkfZrf2jsRJO3Zk5yoloZywrGcglMeXb6x2Qmrx2/n5qXgUx2vh18oX4WBFzsmcxEUUzl1EQaQ2/rYE8X38eM9Z7Bfr8xf6Qp9jNaFCzpWxYoa/64I02yHTlEqy0lMmMumlI882p0Y7lZHFbBDTzc1U3liZlCTmSgaV07B8xZbQVNTSyoo82ZE4IxLvfoFECJhZcsXlYeF97SbjsauBjFQjY/NxZlI37uEcsw3DjVHGdjOdjIOgbRi0HYV7VMaSyMhLVbpw0xMtMuW8VUnDdzp0aUFZA2lH2JtR6yxIURpg4ctBs4NHGYssU0wCeHkBtEQeUDFa0A2lDYwRcg49MlGl8osegkrpqxaG9UY3BbbZzpWrmmyKq07Fh4bsoofMicPEwJGmbm04GomfecxWOFE1zmMvTA6ec01dl4qykTjluemcbGIcPfO2gRu8ETn8KHGq9GpY4q4ARebaOK9SkRg4lG7qUiqtdC5Ipq2aAODBwYF4uwHo1JqEAqq1NVmTsm3Auy7NomKHDQIE4/nxuOUJ6aw2SvsAKDBsHCCUTNge9JplBu9JccZc2BLItpN2DbzqrZzNYC6HkAnOxBpra8+so9NoeEvOgGAIz47EToDsUIIbOhBAlIa15+GGL29kVYPDr5uErCaG945xkws9nU4Xsiov9GbptFsRzONX5PlTwCe+mPQAtHPG+ol4Gv8QBznbOkOsbvgE0NkBPUlx05KOvlz9TzsY9+zxd3t4+OxpvMvmaBCZmkMQ/j7JkBbDccz2fEUOXUYaA6zuUIC9ivNpoHl0N8v+DsdUTSV0U8EJnEXTxlrYUy6GHZPWguCcD43iVMSUYQK0BAIbXINMwVHwXNw+BO8z50oFDvxaqrzwZ3+8ESlChilWSN8m6Q3szNZAshCVCozwhqXOZdkQWxczDT2U+JbPyDGcB6H6bWudE7ed+CPUa6OH/5A1azGN56R6Z+Mmpz+J4xFwWt82msxk6WgQ8fZKRpNl5Bc1g43wopws9gKQSvp26vEjTFQtrNEkXq0G+7yzdv+neanbzLXlMB4ex/HRf3msBHPmtI7Y3suWcmTnUFg22z8R6L94C7yaGAiGDR1wAbdv1Qv4ljftNyze9kmXsffj/zfnes7pg65uddUqZPCEUDcZkHvSfAmgObt0J7GH8e2TveCmIPQhXR+Rcn0E+o1OC6lzYP5JQCQG+EkdjJ9JqOm2rlaXfLw12fEB9Dv87/Ydz+50SpCDTsMzN1kH3fhxqFQ8+kg3F3qdR6tBRG2C3WSqFcCOnuxSeKJBBJXdrb8CWWM7MVPIO+RCD7CTM19t6Z64bAt+wl2bvyawIA4dBUjU3gzt314oNw3gVxvZS1oFzQCrMFwR0GKEeuALDDYVCFPc+67rQ2NLrHLJQuNXmlSWBdg54TrzEdvf8DJ6gTmVpg7NQCtpJF50rWdXP6fDIUucjiKmmAN0Fg1Z0CdrdfWe+PuS15SemXA/5VtutE3DR6o5FEJbmol+S4kxqMvnu6B9XiN6aPhoxMaDENg5U8gBt1aAEV+/FXw8Oj4excNGI8aQxnixBgCV1Fti2yfHpum6a92y9+DD6+ThdfLwOnl4nTy8TrqKtVXQkFpDtVl2NeldND8ODUz3Mw8XHp5dLhP44E9brlY83XZeXDvWream1bk3Cz+8Xu7rm3e6JRTke96IQThWI+6NP98D/7+XyechvPXO+0Kkv4E3yJ4r98+o/nqXPLAq9FvcByL0AQq3aQjy9thzRF69Dcq27MutJvfVy3P0vf8CAmPoJA== +api: eJztWG1PHDcQ/isjI1Ug7d0tkEjpVlGVpmmKmko00PYDIM5rz+1a8dobe/bCFd1/r8a79wIBmpcvkconbv0yM37mmTeuBckqiuJMvEWpF+IiExqjCqYl450oxMsa1TugGiF0jkyDEElSF8HPQFqbdpRvWu/QUVrdOjuGo/47YpgbhWAiBNaTgSEISF1wEaSDX09Pj+Egz1fCPxiq08UGY5QVwrlI985FEuk83ZQAT/PDB+46T7C6f+7O3WmNUGIt58YHmPkAH2p0bIdUCi0GSahBS5IRiW1W3kWjMaDuxQxrM1N1QZYWYW5kUjlN25dsCU6hlUE2SBjGcIIIZz9LkhBwFjDWF7s1URuLySS2RqE0Yx+qifYqTjZwTtiG0dooH4aVQcZO0jZK2vbSOxofEDSSNDamlx450CZSMGXHb9qNqkbdWQx70HiNvbNQauMwsm9i611EUIyF1oZJIK1dQIlQJVS8A7xC1ZEPIOfSWFkaa2ixgaAx7rKHYXUwTkE6fefOZYtBoaMpvO8wLDaQRdgtPdXg296GvTH8xN9sRYSmiwStjLH3XOza1hrUYzjmtekcQ+kjPqfQ4RTIQ4UEEprOkhlZ4xC0kZXzkYyC0usF4FVrpXHGVYBS9WoSgDs7O/B2DdBx8CUmVNvgdafYNtDYWr9o2GFZgmAy35/0PEGnW28cJUBLhC6iBsmE3YDesszkPQknzIUtgWw7utgFBApyNjMqhZBPziSftPV3VtHpnV2AnBGGFJ4DiSPUco4wM87EGjVYz9qr9MJXV7JpLcJvXYnBIcN7y7ji3E2n04Vs7Llbbx0PO8A8fo3EPwFaSXWxAaBf84EKeJZ/nyc52zpTrK75VEliB2xICsFb3Pty9T/ewbjnh989wMPnz/K7bBaZ8C2HoPHuSIuiz0YiExu+iuLsWjjZoCjEHQpEJgzn00RzcTvL/m6caboGXNeUGDiLqi4EdGQXo4FJK0EQ8H1nOBUxZZgAPYHIQ+yUQo6CF3DzEtSJc9bMEX6xpqrp5I83oKxJFKsl9Ul6DTuzNZEsRaXBCORZ6lzaDtm6nGlIAVNKkJFzDOdBPYa3vXURbjrxB5DgvBv9g8GvxHTESfXWwXVOf5LnY5GJ1WtFMZM2Yib4eCNFcS1o0TLYxhFWGEQmZj40kvqlwwORsR8YVlHky2X2kHdW7v80Lw2Hubbs5qP9PN/7L49ZSYz9ELEbLwesTKRUWNbHPxHov/hIBFn6OcJ+ng/AJdy+VS9kopFX/e/9/IZPhoz9MP5/c67nnJ4NdWuoVimDl6h8w4Dck+atiSm7DDc7S4zvJtkDNwWpDxn6CMX10UTonKqlq1B/GhCl9xalS8bPZGdpOLpcXvD13uTIFw7ynP/cfOPJrU5JZEJ5R8xN1oFXNEmVir8+0s2F3lVimQnsE+w6Uy2Xy0w8uUvhkZtLa/Tt+gs+3EjMmPIOxtQD3MmZr7b0gbjsC37JXRt9QHSQp45iP8/7lz3NDx+Ect0AfrWRG0nLpLlBqj1XhAop1QOqRSHWFUhkgnvfVX3oghWF4JJVTCbWK2lrH6ngOvMR29/wNmico/VtagZ6SWN4ObSeQ/2cjkYscToWTLGIqguGFkmfbM3lO+TfF7xn3Myn9xnqudE3DR+p5lBIbamGzRFrFLqIfH8I2hetVDWODsZsvNHoyMwMhps7y4yDO/aCD8b5OB91LhJnMd5rfaRGui2p/cSx7rluG3e9ceDjcPI4nDwOJ4/DyeNwMhSsrXq2zPpicz2UpDMx30/9y/BfHq47vHp9XcqIfwa7XPJy33hx6Vh1mutO594s/Di83Nc23+mWVI/vGRGTcFEIwa3x53vg/zeYfB7CW2PeFyL9DYwgDzx5M0VtnnfBH8GkfovbwEzUKDV3aWfXw7UXSmG7Dcq27IutHvf1q1OxXP4LuXLn8w== sidebar_class_name: "get api-method" info_path: docs/api/HTTP/runtime custom_edit_url: null diff --git a/website/docs/api/HTTP/run-tool.ParamsDetails.json b/website/docs/api/HTTP/run-tool.ParamsDetails.json new file mode 100644 index 000000000..98b3b8cef --- /dev/null +++ b/website/docs/api/HTTP/run-tool.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"name","in":"path","description":"Name of the tool","required":true,"schema":{"type":"string"}}]} \ No newline at end of file diff --git a/website/docs/api/HTTP/run-tool.RequestSchema.json b/website/docs/api/HTTP/run-tool.RequestSchema.json new file mode 100644 index 000000000..f52ef8003 --- /dev/null +++ b/website/docs/api/HTTP/run-tool.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body","body":{"description":"Tool specific input parameters. See /v1/tools for parameter schema.","content":{"application/json":{"schema":{},"example":{"query":"SELECT avg(total_amount), avg(tip_amount), count(1), passenger_count FROM my_table GROUP BY passenger_count ORDER BY passenger_count ASC LIMIT 3"}}},"required":true}} \ No newline at end of file diff --git a/website/docs/api/HTTP/run-tool.StatusCodes.json b/website/docs/api/HTTP/run-tool.StatusCodes.json new file mode 100644 index 000000000..c8600b271 --- /dev/null +++ b/website/docs/api/HTTP/run-tool.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Tool Specific response, in JSON format","content":{"application/json":{"schema":{},"examples":{"sql":{"value":[{"AVG(my_table.tip_amount)":3.072259971396793,"AVG(my_table.total_amount)":25.327816939456525,"COUNT(Int64(1))":31465,"passenger_count":0},{"AVG(my_table.tip_amount)":3.3712622884680057,"AVG(my_table.total_amount)":26.205230445474996,"COUNT(Int64(1))":2188739,"passenger_count":1},{"AVG(my_table.tip_amount)":3.7171302113290854,"AVG(my_table.total_amount)":29.520659930930304,"COUNT(Int64(1))":405103,"passenger_count":2}]}}}}},"404":{"description":"Tool not found","content":{"text/plain":{"schema":{"type":"string"},"example":"Tool no_sql not found"}}},"500":{"description":"An error occurred while calling the tool","content":{"application/json":{"schema":{},"example":{"message":"Error calling tool no_sql: No such tool"}}}}}} \ No newline at end of file diff --git a/website/docs/api/HTTP/run-tool.api.mdx b/website/docs/api/HTTP/run-tool.api.mdx new file mode 100644 index 000000000..5090b2a0b --- /dev/null +++ b/website/docs/api/HTTP/run-tool.api.mdx @@ -0,0 +1,70 @@ +--- +id: run-tool +title: "Run Tool" +description: "Execute a specific tool by name. The request body schema and response format are defined by each individual tool's specification. Use `GET /v1/tools` to discover available tools and their parameter schemas." +sidebar_label: "Run Tool" +hide_title: true +hide_table_of_contents: true +api: eJzdVl1P6zgQ/SvWvGyRQprPtskbl2URKy69grLSClVgkmnj3cQOtlOoqvz3lZ2UFugF6T5uX1KNJ2eOzxyPswFNlwrSO5gJUSqYO5CjyiSrNRMcUjh7wazRSChRNWZswTKihSjJ45pwWqFLZgUSiU8NKk0eRb4mKiuwooTynEhUteAKyULIimpCJZIcF4xjbgCQZgVhPGcrlje0tMC/qddC1FBwya1C8nB+NiPDlT80KeqBaEFypjKxQknoirKSPpZo31e2sC6QSVJTSSvUKHtOygUHRI3SIl/kkIJs+L15DRx4zTZybMDsDtLu4QAzWtRUF/BeoCtaIRELU5L0SEYOJjGHVMsGHeiqQ7oBva4NqNKS8SW07bxLRqW/iXxtMt6Cm6bshGe8bvRuV8olN4g7WYzKH/ZstpwJrpFrA0/ruuyVHf6jTI3Njl7rAL7Qqi7RhJ8alGtI4ebs8ux0RuhqOdBC0/KeVqLh+sjpQqzeBTLzHPhHDqmpUsiXKO9tjPxxPf1OqvW9to06v57e/iDf/v6QNr3+/ez60MLJzSm5vPh+MSMhtG37XmMb6LymDPfA834i5s1WzG2+Qxgnf95Mr3qT/pJetqh6Ks1jRcsGrYVO/jofbPfs7gkFaeh64yCIk2Tsh8lonITOu+R9oSENYjcMxhN/lIRJFI/iIHbgdHp7NRtccD2KBv6RwfSjUWxs/EY5SL3W+ZxKOPaDURBMJtFo4nnx+AsuIzfw4iD0oiiOxlGSjA5wCfzJZBwmB9j4X7EZ+2M/9ALfD4PEm8TRF2wSNw68UZwkoZeEXuhFB9hEXux74QEyQTtvW2unyIt+YhguNFmIhudvjaHxRQ/rkrK3lnh/wvdO1BbuXj3to9ry8SG/nnCCUgpJRJY1UmJOngtWIsloWTK+3J84v3bCK1SKLg21M1vnFXhHNCVXgqgmK7pKvVoV6kKY8VkLpe3o1AWk8DqJhhszNltwQKFcbSdqI0tIodC6TofDUmS0LITS6cRLvA9T9dIskxxXWIq6Qq5Jh+SSU8EXbNlIJM9MF+Th+NggPrhghqnCrJFMr209WrP7f9H8n5s1xhfCdohp2w7ZcM3scH/X9QKJqlmGOdmllCxDrqxq/cVwUtOswOPANeRZjlyzBUP5dqV1wGy/Aw5cz/WOG66sk82aka+ifA/1uuFk1vX0DavNrsX/vyu5PzN7R6p1Ordsemvdwco3ifYbxYHUqjV3wBjIrG42j1ThrSzb1oT7q+tu7sCKSmblNo7ImTL/c0gXtFT4icaD6/5+OSIHLviDhPsg5WtwtpcAgAPWgl1/23nrQIE0Nz652/RLp13V45kB2L364SCbydm9cZJlWOtPc+d7p/TH9GYGDjz2nxiVyK3/6bP5VqHPHU1hVbAXmY1toKR82XTzocM0v/8AOPpw2Q== +sidebar_class_name: "post api-method" +info_path: docs/api/HTTP/runtime +custom_edit_url: null +proxy: http://localhost:8090 +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Execute a specific tool by name. The request body schema and response format are defined by each individual tool's specification. Use `GET /v1/tools` to discover available tools and their parameter schemas. + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/docs/api/HTTP/runtime.info.mdx b/website/docs/api/HTTP/runtime.info.mdx index a55670504..8f8d7ac24 100644 --- a/website/docs/api/HTTP/runtime.info.mdx +++ b/website/docs/api/HTTP/runtime.info.mdx @@ -16,7 +16,7 @@ import Export from "@theme/ApiExplorer/Export"; diff --git a/website/docs/api/HTTP/sidebar.ts b/website/docs/api/HTTP/sidebar.ts index 78b06a980..10c535a25 100644 --- a/website/docs/api/HTTP/sidebar.ts +++ b/website/docs/api/HTTP/sidebar.ts @@ -8,7 +8,7 @@ const sidebar: SidebarsConfig = { }, { type: "category", - label: "Datasets", + label: "Catalogs", items: [ { type: "doc", @@ -16,24 +16,6 @@ const sidebar: SidebarsConfig = { label: "List Catalogs", className: "api-method get", }, - { - type: "doc", - id: "api/HTTP/get-datasets", - label: "List Datasets", - className: "api-method get", - }, - { - type: "doc", - id: "api/HTTP/patch-dataset-acceleration", - label: "Update Refresh SQL", - className: "api-method patch", - }, - { - type: "doc", - id: "api/HTTP/post-dataset-refresh", - label: "Refresh Dataset", - className: "api-method post", - }, ], }, { @@ -70,6 +52,36 @@ const sidebar: SidebarsConfig = { label: "Batch ML Predictions", className: "api-method post", }, + { + type: "doc", + id: "api/HTTP/post-responses", + label: "post_responses", + className: "api-method post", + }, + ], + }, + { + type: "category", + label: "Datasets", + items: [ + { + type: "doc", + id: "api/HTTP/get-datasets", + label: "List Datasets", + className: "api-method get", + }, + { + type: "doc", + id: "api/HTTP/patch-dataset-acceleration", + label: "Update Refresh SQL", + className: "api-method patch", + }, + { + type: "doc", + id: "api/HTTP/post-dataset-refresh", + label: "Refresh Dataset", + className: "api-method post", + }, ], }, { @@ -88,12 +100,36 @@ const sidebar: SidebarsConfig = { label: "List Iceberg namespaces", className: "api-method get", }, + { + type: "doc", + id: "api/HTTP/get-namespace", + label: "Check if a namespace exists.", + className: "api-method get", + }, { type: "doc", id: "api/HTTP/head-namespace", label: "Check Namespace exists", className: "api-method head", }, + { + type: "doc", + id: "api/HTTP/list-tables", + label: "list_tables", + className: "api-method get", + }, + { + type: "doc", + id: "api/HTTP/get-table", + label: "Get a table.", + className: "api-method get", + }, + { + type: "doc", + id: "api/HTTP/head-table", + label: "Check if a table exists.", + className: "api-method head", + }, ], }, { @@ -124,12 +160,6 @@ const sidebar: SidebarsConfig = { label: "Text-to-SQL (NSQL)", className: "api-method post", }, - { - type: "doc", - id: "api/HTTP/post-search", - label: "Search", - className: "api-method post", - }, { type: "doc", id: "api/HTTP/post-sql", @@ -174,18 +204,48 @@ const sidebar: SidebarsConfig = { }, ], }, + { + type: "category", + label: "Search", + items: [ + { + type: "doc", + id: "api/HTTP/post-search", + label: "Search", + className: "api-method post", + }, + ], + }, { type: "category", label: "Tools", items: [ { type: "doc", - id: "api/HTTP/post", + id: "api/HTTP/list-tools", + label: "List Tools", + className: "api-method get", + }, + { + type: "doc", + id: "api/HTTP/run-tool", label: "Run Tool", className: "api-method post", }, ], }, + { + type: "category", + label: "Workers", + items: [ + { + type: "doc", + id: "api/HTTP/get-workers", + label: "List Workers", + className: "api-method get", + }, + ], + }, ], };