From 3b2359ed92e5299c33ce3089023f25262a6f26f8 Mon Sep 17 00:00:00 2001 From: OpenRouter SDK Bot Date: Tue, 27 Oct 2026 13:49:40 +0000 Subject: [PATCH] chore: update OpenAPI spec [sdk-bot] --- .speakeasy/in.openapi.yaml | 247 ++++++++++++++++++++++++++++++++++++- 1 file changed, 245 insertions(+), 2 deletions(-) diff --git a/.speakeasy/in.openapi.yaml b/.speakeasy/in.openapi.yaml index 1fa4924f..7c9894d4 100644 --- a/.speakeasy/in.openapi.yaml +++ b/.speakeasy/in.openapi.yaml @@ -10299,6 +10299,15 @@ components: example: 'https://contoso.openai.azure.com' minLength: 1 type: 'string' + declared_parameters: + description: 'Parameters the upstream supports beyond the tested ones. Replaces the earlier declaration; tested parameters stay. Order and repeated names are ignored, but the list holds at most as many entries as there are declarable parameters, repeats included. `tool_choice` requires `tools` to be tested or declared.' + example: + - 'temperature' + - 'seed' + items: + $ref: '#/components/schemas/PrivateEndpointDeclaredParameter' + maxItems: 25 + type: 'array' declared_region: description: 'Attest where this deployment processes data.' enum: @@ -10315,6 +10324,12 @@ components: type: - 'boolean' - 'null' + max_completion_tokens: + description: 'Cap on completion tokens per request. Requests asking for more skip this endpoint, and the default output length stays within it. When omitted, the cap is copied from the public endpoint for the same model and provider, if there is one.' + example: 131072 + maximum: 2147483647 + minimum: 1 + type: 'integer' model_permaslug: description: 'Permanent slug of the model this endpoint serves.' example: 'openai/gpt-4o-2024-08-06' @@ -16039,6 +16054,12 @@ components: type: - 'boolean' - 'null' + max_completion_tokens: + description: 'Most completion tokens a request routed to this endpoint can produce, or `null` when the endpoint sets no cap beyond the model context length.' + example: 131072 + type: + - 'integer' + - 'null' required: - 'declared_zdr' - 'declared_region' @@ -25410,9 +25431,13 @@ components: PrivateEndpoint: example: base_url: 'https://contoso.openai.azure.com' + declared_parameters: + - 'temperature' + - 'seed' declared_region: 'us' declared_zdr: true id: '5b1c4c4e-7d0a-4a8e-9f3a-2d6c1b0e8a11' + max_completion_tokens: 131072 model_name: 'OpenAI: GPT-4o' model_permaslug: 'openai/gpt-4o-2024-08-06' model_slug: 'openai/gpt-4o' @@ -25424,6 +25449,10 @@ components: provider_name: 'Azure' provider_slug: 'azure' status: 'active' + tested_parameters: + - 'tools' + - 'tool_choice' + - 'response_format' upstream_model_id: 'gpt-4o-prod' properties: base_url: @@ -25432,6 +25461,14 @@ components: type: - 'string' - 'null' + declared_parameters: + description: 'Parameters you declared the upstream supports. Requests that use a parameter only route to this endpoint when it is tested or declared.' + example: + - 'temperature' + - 'seed' + items: + type: 'string' + type: 'array' declared_region: $ref: '#/components/schemas/PrivateEndpointDeclaredRegion' declared_zdr: @@ -25445,6 +25482,12 @@ components: example: '5b1c4c4e-7d0a-4a8e-9f3a-2d6c1b0e8a11' format: 'uuid' type: 'string' + max_completion_tokens: + description: 'Most completion tokens a request routed to this endpoint can produce, or `null` when the endpoint sets no cap beyond the model context length.' + example: 131072 + type: + - 'integer' + - 'null' model_name: description: 'Display name of the model, or `null` when the model is no longer listed.' example: 'OpenAI: GPT-4o' @@ -25475,6 +25518,15 @@ components: - 'null' status: $ref: '#/components/schemas/PrivateEndpointStatus' + tested_parameters: + description: 'Parameters a validation run proved the upstream honors (`tools`, `tool_choice`, `response_format`, `structured_outputs`, `stop`). Read-only; cleared when the upstream configuration changes.' + example: + - 'tools' + - 'tool_choice' + - 'response_format' + items: + type: 'string' + type: 'array' upstream_model_id: description: 'Model or deployment identifier sent to the upstream provider.' example: 'gpt-4o-prod' @@ -25492,6 +25544,8 @@ components: - 'declared_zdr' - 'declared_region' - 'pricing' + - 'tested_parameters' + - 'declared_parameters' type: 'object' PrivateEndpointActivation: description: 'Validate and activate in the same call. On a failed validation the draft is kept and returned with a 422, so fix it and call `/validate` and `/activate` instead of creating it again.' @@ -25559,6 +25613,36 @@ components: - 'validation_stale' example: 'no_byok_key' type: 'string' + PrivateEndpointDeclaredParameter: + description: 'A chat request parameter the endpoint accepts.' + enum: + - 'temperature' + - 'top_p' + - 'top_k' + - 'min_p' + - 'top_a' + - 'frequency_penalty' + - 'presence_penalty' + - 'repetition_penalty' + - 'max_tokens' + - 'max_completion_tokens' + - 'logit_bias' + - 'logprobs' + - 'top_logprobs' + - 'prediction' + - 'seed' + - 'response_format' + - 'structured_outputs' + - 'stop' + - 'tools' + - 'tool_choice' + - 'parallel_tool_calls' + - 'reasoning' + - 'reasoning_effort' + - 'web_search_options' + - 'verbosity' + example: 'seed' + type: 'string' PrivateEndpointDeclaredRegion: description: 'Where you attest this deployment processes data. `global` means not regional; `null` means undeclared.' enum: @@ -25570,6 +25654,20 @@ components: type: - 'string' - 'null' + PrivateEndpointParameterCheck: + example: + parameter: 'response_format' + supported: true + properties: + parameter: + example: 'response_format' + type: 'string' + supported: + type: 'boolean' + required: + - 'parameter' + - 'supported' + type: 'object' PrivateEndpointPricing: description: 'Negotiated per-token rates reported for requests routed to this endpoint.' example: @@ -25665,6 +25763,11 @@ components: items: $ref: '#/components/schemas/PrivateEndpointCheck' type: 'array' + parameters: + description: 'Request parameters probed after the checks passed, each with whether the upstream honored it. Supported ones are recorded in `tested_parameters`. Absent on a failed run and for providers that run no parameter probes; empty when every probe group was already proven.' + items: + $ref: '#/components/schemas/PrivateEndpointParameterCheck' + type: 'array' passed: description: 'Whether every check passed.' example: true @@ -25679,6 +25782,11 @@ components: items: $ref: '#/components/schemas/PrivateEndpointCheck' type: 'array' + parameters: + description: 'Request parameters probed after the checks passed, each with whether the upstream honored it. Supported ones are recorded in `tested_parameters`. Absent on a failed run and for providers that run no parameter probes; empty when every probe group was already proven.' + items: + $ref: '#/components/schemas/PrivateEndpointParameterCheck' + type: 'array' passed: description: 'Whether every check passed.' example: true @@ -31964,6 +32072,20 @@ components: required: - 'is_filtered_model_catalog_enabled' type: 'object' + UpdatePrivateEndpointParametersRequest: + properties: + declared_parameters: + description: 'Parameters the upstream supports beyond the tested ones. Replaces the earlier declaration; tested parameters stay. Order and repeated names are ignored, but the list holds at most as many entries as there are declarable parameters, repeats included. `tool_choice` requires `tools` to be tested or declared.' + example: + - 'temperature' + - 'seed' + items: + $ref: '#/components/schemas/PrivateEndpointDeclaredParameter' + maxItems: 25 + type: 'array' + required: + - 'declared_parameters' + type: 'object' UpdatePrivateEndpointPricingRequest: properties: pricing: @@ -46096,12 +46218,12 @@ paths: description: 'Create a private endpoint as a draft. Drafts are not routable: validate one with `POST /private-endpoints/{id}/validate`, then activate it with `POST /private-endpoints/{id}/activate`. Pass `activate` to do all three in one call; if validation fails the draft is kept and returned with the failed checks. Send an `Idempotency-Key` header to make retries safe: a repeated key with the same request returns the endpoint the first request created; reusing it with different fields returns 422 `idempotency_key_reused`. [Management key](/docs/guides/overview/auth/management-api-keys) required.' operationId: 'createPrivateEndpoint' parameters: - - description: 'Retry-safe create: a repeated create with the same key from the same organization returns the endpoint the first request created instead of creating another. The endpoint is returned as it is now. Reusing a key with a different request body (model, provider, base URL, upstream model ID, declared ZDR or region, or pricing) is rejected with 422 `idempotency_key_reused`. `activate` is not compared, and later edits to the endpoint do not affect the comparison.' + - description: 'Retry-safe create: a repeated create with the same key from the same organization returns the endpoint the first request created instead of creating another. The endpoint is returned as it is now. Reusing a key with a different request body (model, provider, base URL, upstream model ID, declared ZDR or region, pricing, or declared parameters) is rejected with 422 `idempotency_key_reused`. Declared parameters are compared as a set, so a retry that reorders or repeats a name replays the endpoint. `activate` and `max_completion_tokens` are not compared, and later edits to the endpoint do not affect the comparison.' in: 'header' name: 'idempotency-key' required: false schema: - description: 'Retry-safe create: a repeated create with the same key from the same organization returns the endpoint the first request created instead of creating another. The endpoint is returned as it is now. Reusing a key with a different request body (model, provider, base URL, upstream model ID, declared ZDR or region, or pricing) is rejected with 422 `idempotency_key_reused`. `activate` is not compared, and later edits to the endpoint do not affect the comparison.' + description: 'Retry-safe create: a repeated create with the same key from the same organization returns the endpoint the first request created instead of creating another. The endpoint is returned as it is now. Reusing a key with a different request body (model, provider, base URL, upstream model ID, declared ZDR or region, pricing, or declared parameters) is rejected with 422 `idempotency_key_reused`. Declared parameters are compared as a set, so a retry that reorders or repeats a name replays the endpoint. `activate` and `max_completion_tokens` are not compared, and later edits to the endpoint do not affect the comparison.' example: 'wayfair-gpt-4o-eastus-2026-09' maxLength: 255 minLength: 1 @@ -46867,6 +46989,127 @@ paths: tags: - 'Private Endpoints' x-speakeasy-name-override: 'enable' + /private-endpoints/{id}/parameters: + put: + description: 'Declare which request parameters the upstream supports beyond the ones validation proved. Applies to drafts and active endpoints; routing picks the change up for subsequent requests. The body replaces the earlier declaration and is read as a set: order and repeated names do not matter, but the list holds at most as many entries as there are declarable parameters, repeats included. `tested_parameters` stay. Returns 400 `parameters_invalid` when `tool_choice` is declared without `tools` being tested or declared. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'updatePrivateEndpointParameters' + parameters: + - description: 'Stable identifier of the private endpoint.' + in: 'path' + name: 'id' + required: true + schema: + description: 'Stable identifier of the private endpoint.' + example: '5b1c4c4e-7d0a-4a8e-9f3a-2d6c1b0e8a11' + format: 'uuid' + type: 'string' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdatePrivateEndpointParametersRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateEndpointResponse' + description: 'The endpoint with its new declared parameters' + '400': + content: + application/json: + example: + error: + code: 400 + message: 'Invalid request parameters' + schema: + $ref: '#/components/schemas/BadRequestResponse' + description: 'Bad Request - Invalid request parameters or malformed input' + '401': + content: + application/json: + example: + error: + code: 401 + message: 'Missing Authentication header' + schema: + $ref: '#/components/schemas/UnauthorizedResponse' + description: 'Unauthorized - Authentication required or invalid credentials' + '403': + content: + application/json: + example: + error: + code: 403 + message: 'Only management keys can perform this operation' + schema: + $ref: '#/components/schemas/ForbiddenResponse' + description: 'Forbidden - Authentication successful but insufficient permissions' + '404': + content: + application/json: + example: + error: + code: 404 + message: 'Resource not found' + schema: + $ref: '#/components/schemas/NotFoundResponse' + description: 'Not Found - Resource does not exist' + '408': + content: + application/json: + example: + error: + code: 408 + message: 'Operation timed out. Please try again later.' + schema: + $ref: '#/components/schemas/RequestTimeoutResponse' + description: 'Request Timeout - Operation exceeded time limit' + '409': + content: + application/json: + example: + error: + code: 409 + message: 'Resource conflict. Please try again later.' + schema: + $ref: '#/components/schemas/ConflictResponse' + description: 'Conflict - Resource conflict or concurrent modification' + '422': + content: + application/json: + example: + error: + code: 422 + message: 'Invalid argument' + schema: + $ref: '#/components/schemas/UnprocessableEntityResponse' + description: 'Unprocessable Entity - Semantic validation failure' + '500': + content: + application/json: + example: + error: + code: 500 + message: 'Internal Server Error' + schema: + $ref: '#/components/schemas/InternalServerResponse' + description: 'Internal Server Error - Unexpected server error' + '502': + content: + application/json: + example: + error: + code: 502 + message: 'Provider returned error' + schema: + $ref: '#/components/schemas/BadGatewayResponse' + description: 'Bad Gateway - Provider/upstream API failure' + summary: 'Set private endpoint supported parameters' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'updateParameters' /private-endpoints/{id}/pricing: put: description: 'Set the negotiated per-token rates reported for requests routed to this endpoint. Applies to drafts and active endpoints; new rates take effect for subsequent requests. The body replaces the whole pricing object: omitting `cache_read` or `cache_write` reverts that rate to the provider pricing strategy''s default, even if it was set before. [Management key](/docs/guides/overview/auth/management-api-keys) required.'