From 2b881d67e20995166532dd886637ded084c09577 Mon Sep 17 00:00:00 2001 From: OpenRouter SDK Bot Date: Mon, 28 Sep 2026 22:10:10 +0000 Subject: [PATCH] chore: update OpenAPI spec [sdk-bot] --- .speakeasy/in.openapi.yaml | 1517 ++++++++++++++++++++++++++++++++++++ 1 file changed, 1517 insertions(+) diff --git a/.speakeasy/in.openapi.yaml b/.speakeasy/in.openapi.yaml index 5a816966..048e5894 100644 --- a/.speakeasy/in.openapi.yaml +++ b/.speakeasy/in.openapi.yaml @@ -9393,6 +9393,79 @@ components: required: - 'data' type: 'object' + CreatePrivateEndpointRequest: + properties: + activate: + $ref: '#/components/schemas/PrivateEndpointActivation' + base_url: + description: 'HTTPS base URL of your deployment. Required unless the provider derives its URL from the BYOK credential (Azure, Amazon Bedrock, Google Vertex).' + example: 'https://contoso.openai.azure.com' + minLength: 1 + type: 'string' + declared_region: + description: 'Attest where this deployment processes data.' + enum: + - 'global' + - 'europe' + - 'us' + - null + example: 'us' + type: + - 'string' + - 'null' + declared_zdr: + description: 'Attest that this deployment retains no prompt or completion data.' + type: + - 'boolean' + - 'null' + model_permaslug: + description: 'Permanent slug of the model this endpoint serves.' + example: 'openai/gpt-4o-2024-08-06' + minLength: 1 + type: 'string' + pricing: + $ref: '#/components/schemas/PrivateEndpointPricing' + provider_slug: + description: 'Slug of the upstream provider.' + example: 'azure' + minLength: 1 + type: 'string' + upstream_model_id: + description: 'Model or deployment identifier sent to the upstream provider.' + example: 'gpt-4o-prod' + minLength: 1 + type: 'string' + required: + - 'model_permaslug' + - 'provider_slug' + - 'upstream_model_id' + type: 'object' + CreatePrivateEndpointValidationFailedResponse: + properties: + data: + properties: + endpoint: + $ref: '#/components/schemas/ManagedPrivateEndpoint' + validation: + $ref: '#/components/schemas/PrivateEndpointValidationNullable' + required: + - 'endpoint' + - 'validation' + type: 'object' + error: + properties: + code: + type: 'integer' + message: + type: 'string' + required: + - 'code' + - 'message' + type: 'object' + required: + - 'error' + - 'data' + type: 'object' CreateScimGroupMappingRequest: properties: role: @@ -10154,6 +10227,21 @@ components: required: - 'deleted' type: 'object' + DeletePrivateEndpointResponse: + properties: + data: + properties: + id: + description: 'Stable identifier of the private endpoint.' + example: '5b1c4c4e-7d0a-4a8e-9f3a-2d6c1b0e8a11' + format: 'uuid' + type: 'string' + required: + - 'id' + type: 'object' + required: + - 'data' + type: 'object' DeleteScimGroupMappingResponse: properties: deleted: @@ -15210,6 +15298,15 @@ components: - 'data' - 'total_count' type: 'object' + ListPrivateEndpointsResponse: + properties: + data: + items: + $ref: '#/components/schemas/PrivateEndpointSummary' + type: 'array' + required: + - 'data' + type: 'object' ListScimGroupMappingsResponse: properties: data: @@ -15405,6 +15502,29 @@ components: - 'id' - 'output' type: 'object' + ManagedPrivateEndpoint: + allOf: + - $ref: '#/components/schemas/PrivateEndpointSummary' + - properties: + declared_region: + $ref: '#/components/schemas/PrivateEndpointDeclaredRegion' + declared_zdr: + description: 'Whether you attest this deployment retains no prompt or completion data. `null` means undeclared.' + example: true + type: + - 'boolean' + - 'null' + required: + - 'declared_zdr' + - 'declared_region' + type: 'object' + ManagedPrivateEndpointResponse: + properties: + data: + $ref: '#/components/schemas/ManagedPrivateEndpoint' + required: + - 'data' + type: 'object' McpApprovalRequestItem: description: 'Request for approval to execute an MCP tool' example: @@ -24280,6 +24400,281 @@ components: format: 'double' type: 'number' type: 'object' + PrivateEndpoint: + example: + base_url: 'https://contoso.openai.azure.com' + declared_region: 'us' + declared_zdr: true + id: '5b1c4c4e-7d0a-4a8e-9f3a-2d6c1b0e8a11' + model_name: 'OpenAI: GPT-4o' + model_permaslug: 'openai/gpt-4o-2024-08-06' + model_slug: 'openai/gpt-4o' + pricing: + completion: '0.00001' + prompt: '0.0000025' + provider_name: 'Azure' + provider_slug: 'azure' + status: 'active' + upstream_model_id: 'gpt-4o-prod' + properties: + base_url: + description: 'HTTPS base URL of your deployment, or `null` for providers whose URL is derived from the BYOK credential (Azure, Amazon Bedrock, Google Vertex).' + example: 'https://contoso.openai.azure.com' + type: + - 'string' + - 'null' + declared_region: + $ref: '#/components/schemas/PrivateEndpointDeclaredRegion' + declared_zdr: + description: 'Whether you attest this deployment retains no prompt or completion data. `null` means undeclared.' + example: true + type: + - 'boolean' + - 'null' + id: + description: 'Stable identifier of the private endpoint.' + example: '5b1c4c4e-7d0a-4a8e-9f3a-2d6c1b0e8a11' + format: 'uuid' + type: 'string' + model_name: + description: 'Display name of the model, or `null` when the model is no longer listed.' + example: 'OpenAI: GPT-4o' + type: + - 'string' + - 'null' + model_permaslug: + description: 'Permanent slug of the model this endpoint serves.' + example: 'openai/gpt-4o-2024-08-06' + type: 'string' + model_slug: + description: 'Public model slug, or `null` when the model is no longer listed.' + example: 'openai/gpt-4o' + type: + - 'string' + - 'null' + pricing: + $ref: '#/components/schemas/PrivateEndpointPricing' + provider_name: + description: 'Display name of the upstream provider.' + example: 'Azure' + type: 'string' + provider_slug: + description: 'Slug of the upstream provider, or `null` when the provider is no longer listed.' + example: 'azure' + type: + - 'string' + - 'null' + status: + $ref: '#/components/schemas/PrivateEndpointStatus' + upstream_model_id: + description: 'Model or deployment identifier sent to the upstream provider.' + example: 'gpt-4o-prod' + type: 'string' + required: + - 'id' + - 'status' + - 'model_permaslug' + - 'model_slug' + - 'model_name' + - 'provider_name' + - 'provider_slug' + - 'base_url' + - 'upstream_model_id' + - 'declared_zdr' + - 'declared_region' + - 'pricing' + 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.' + example: + workspace_id: '550e8400-e29b-41d4-a716-446655440000' + properties: + workspace_id: + description: 'Workspace whose BYOK credential is used for the live validation call. The workspace must belong to your account.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'workspace_id' + type: 'object' + PrivateEndpointCheck: + example: + name: 'auth_ok' + passed: true + properties: + actual_model: + description: 'Model the upstream reported serving, when it differs from the request.' + type: + - 'string' + - 'null' + name: + description: 'Check name.' + example: 'auth_ok' + type: 'string' + passed: + type: 'boolean' + reason: + $ref: '#/components/schemas/PrivateEndpointCheckReason' + upstream_message: + description: 'Error message returned by your deployment when the call failed.' + type: + - 'string' + - 'null' + upstream_status: + description: 'HTTP status returned by your deployment when the call failed.' + maximum: 599 + minimum: 400 + type: 'integer' + required: + - 'name' + - 'passed' + type: 'object' + PrivateEndpointCheckReason: + description: 'Why the check failed.' + enum: + - 'database_error' + - 'endpoint_limit_reached' + - 'invalid_base_url' + - 'model_not_found' + - 'provider_not_found' + - 'endpoint_not_found' + - 'workspace_not_found' + - 'no_byok_key' + - 'key_decryption_failed' + - 'upstream_error' + - 'invalid_response' + - 'invalid_stream' + - 'missing_usage' + - 'model_mismatch' + - 'not_validated' + - 'validation_stale' + example: 'no_byok_key' + type: 'string' + PrivateEndpointDeclaredRegion: + description: 'Where you attest this deployment processes data. `global` means not regional; `null` means undeclared.' + enum: + - 'global' + - 'europe' + - 'us' + - null + example: 'us' + type: + - 'string' + - 'null' + PrivateEndpointPricing: + description: 'Negotiated per-token rates reported for requests routed to this endpoint.' + example: + completion: '0.00001' + prompt: '0.0000025' + properties: + completion: + description: 'USD per completion token, as a decimal string.' + example: '0.00001' + pattern: '^\d+(\.\d+)?$' + type: 'string' + prompt: + description: 'USD per prompt token, as a decimal string.' + example: '0.0000025' + pattern: '^\d+(\.\d+)?$' + type: 'string' + required: + - 'prompt' + - 'completion' + type: 'object' + PrivateEndpointResponse: + properties: + data: + $ref: '#/components/schemas/PrivateEndpoint' + required: + - 'data' + type: 'object' + PrivateEndpointStatus: + description: 'Lifecycle state. `draft` endpoints are not routable until validated and activated; `disabled` endpoints are activated but temporarily not routable.' + enum: + - 'draft' + - 'active' + - 'disabled' + example: 'active' + type: 'string' + PrivateEndpointSummary: + properties: + created_at: + description: 'ISO timestamp of when the endpoint was created.' + example: '2026-09-24T10:30:00Z' + type: 'string' + id: + description: 'Stable identifier of the private endpoint.' + example: '5b1c4c4e-7d0a-4a8e-9f3a-2d6c1b0e8a11' + format: 'uuid' + type: 'string' + model_name: + description: 'Display name of the model, or `null` when the model is no longer listed.' + example: 'OpenAI: GPT-4o' + type: + - 'string' + - 'null' + model_permaslug: + description: 'Permanent slug of the model this endpoint serves.' + example: 'openai/gpt-4o-2024-08-06' + type: 'string' + model_slug: + description: 'Public model slug, or `null` when the model is no longer listed.' + example: 'openai/gpt-4o' + type: + - 'string' + - 'null' + provider_name: + description: 'Display name of the upstream provider.' + example: 'Azure' + type: 'string' + status: + $ref: '#/components/schemas/PrivateEndpointStatus' + required: + - 'id' + - 'status' + - 'model_permaslug' + - 'model_slug' + - 'model_name' + - 'provider_name' + - 'created_at' + type: 'object' + PrivateEndpointValidation: + properties: + checks: + items: + $ref: '#/components/schemas/PrivateEndpointCheck' + type: 'array' + passed: + description: 'Whether every check passed.' + example: true + type: 'boolean' + required: + - 'passed' + - 'checks' + type: 'object' + PrivateEndpointValidationNullable: + properties: + checks: + items: + $ref: '#/components/schemas/PrivateEndpointCheck' + type: 'array' + passed: + description: 'Whether every check passed.' + example: true + type: 'boolean' + required: + - 'passed' + - 'checks' + type: + - 'object' + - 'null' + PrivateEndpointValidationResponse: + properties: + data: + $ref: '#/components/schemas/PrivateEndpointValidation' + required: + - 'data' + type: 'object' PromptCacheBreakpoint: description: 'Marks an explicit prompt-cache boundary on this content block (OpenAI-style). Everything through the block carrying this marker is part of the candidate cached prefix. Supported natively by OpenAI GPT-5.6 and newer; on providers that use Anthropic-style `cache_control`, OpenRouter converts the marker to that format automatically.' example: @@ -29839,6 +30234,44 @@ components: required: - 'data' type: 'object' + UpdatePrivateEndpointPricingRequest: + properties: + pricing: + $ref: '#/components/schemas/PrivateEndpointPricing' + required: + - 'pricing' + type: 'object' + UpdatePrivateEndpointRequest: + properties: + base_url: + description: 'HTTPS base URL of your deployment. Required unless the provider derives its URL from the BYOK credential (Azure, Amazon Bedrock, Google Vertex).' + example: 'https://contoso.openai.azure.com' + minLength: 1 + type: 'string' + declared_region: + description: 'Attest where this deployment processes data.' + enum: + - 'global' + - 'europe' + - 'us' + - null + example: 'us' + type: + - 'string' + - 'null' + declared_zdr: + description: 'Attest that this deployment retains no prompt or completion data.' + type: + - 'boolean' + - 'null' + upstream_model_id: + description: 'Model or deployment identifier sent to the upstream provider.' + example: 'gpt-4o-prod' + minLength: 1 + type: 'string' + required: + - 'upstream_model_id' + type: 'object' UpdateScimGroupMappingRequest: properties: role: @@ -30101,6 +30534,16 @@ components: output_tokens_details: reasoning_tokens: 0 total_tokens: 35 + ValidatePrivateEndpointRequest: + properties: + workspace_id: + description: 'Workspace whose BYOK credential is used for the live validation call. The workspace must belong to your account.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'workspace_id' + type: 'object' VaultSecret: additionalProperties: false description: 'Metadata for one stored secret. The secret value is never returned. `fingerprint` is an HMAC-SHA-256 of the value keyed with that vault''s own data key, so it is comparable only within one vault: equal fingerprints in one vault mean equal values, and rewriting the same value keeps its fingerprint. The same value stored in two vaults (for example a workspace secret and its intern copy) carries different fingerprints, so comparing fingerprints across vaults cannot show that a copy matches or that a rotation propagated. `hosts` and `fingerprint` are `null` only for legacy rows written before host binding was required; storing the secret again assigns hosts.' @@ -44249,6 +44692,1078 @@ paths: tags: - 'Presets' x-speakeasy-name-override: 'getVersion' + /private-endpoints: + get: + description: 'List the organization''s private endpoints, including drafts. Requires the private endpoints entitlement. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listPrivateEndpoints' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListPrivateEndpointsResponse' + description: 'Private endpoints for the organization' + '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' + '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' + '500': + content: + application/json: + example: + error: + code: 500 + message: 'Internal Server Error' + schema: + $ref: '#/components/schemas/InternalServerResponse' + description: 'Internal Server Error - Unexpected server error' + summary: 'List private endpoints' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'list' + post: + 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.' + 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.' + example: 'wayfair-gpt-4o-eastus-2026-09' + maxLength: 255 + minLength: 1 + type: 'string' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreatePrivateEndpointRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ManagedPrivateEndpointResponse' + description: 'The created endpoint: a draft, or active when `activate` was passed' + '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: + schema: + anyOf: + - $ref: '#/components/schemas/CreatePrivateEndpointValidationFailedResponse' + - $ref: '#/components/schemas/NotFoundResponse' + description: 'The model, provider, or validation workspace was not found. When `activate` was passed and the draft was created, `data` carries it and any validation checks.' + '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: + schema: + anyOf: + - $ref: '#/components/schemas/CreatePrivateEndpointValidationFailedResponse' + - $ref: '#/components/schemas/ConflictResponse' + description: 'The request conflicts with the endpoint state, such as a stale validation. When `activate` was passed and the draft was created, `data` carries it and any validation checks.' + '422': + content: + application/json: + schema: + anyOf: + - $ref: '#/components/schemas/CreatePrivateEndpointValidationFailedResponse' + - $ref: '#/components/schemas/UnprocessableEntityResponse' + description: 'The request was invalid, or validation failed. When `activate` was passed and the draft was created, `data` carries it and any validation checks.' + '500': + content: + application/json: + schema: + anyOf: + - $ref: '#/components/schemas/CreatePrivateEndpointValidationFailedResponse' + - $ref: '#/components/schemas/InternalServerResponse' + description: 'Internal server error. When `activate` was passed and the draft was created, `data` carries it and any validation checks.' + '502': + content: + application/json: + schema: + anyOf: + - $ref: '#/components/schemas/CreatePrivateEndpointValidationFailedResponse' + - $ref: '#/components/schemas/BadGatewayResponse' + description: 'An upstream dependency failed. When `activate` was passed and the draft was created, `data` carries it and any validation checks.' + summary: 'Create a private endpoint' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'create' + /private-endpoints/{id}: + delete: + description: 'Delete a private endpoint and stop routing to it. Pass `draft_only=true` to refuse (409) when the endpoint has been activated. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'deletePrivateEndpoint' + 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' + - description: 'When `true`, only delete the endpoint if it is still a draft (409 otherwise).' + in: 'query' + name: 'draft_only' + required: false + schema: + description: 'When `true`, only delete the endpoint if it is still a draft (409 otherwise).' + enum: + - 'true' + - 'false' + type: 'string' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeletePrivateEndpointResponse' + description: 'The endpoint was deleted' + '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: 'Delete a private endpoint' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'delete' + get: + description: 'Get one private endpoint with its upstream configuration and current pricing. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getPrivateEndpoint' + 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' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateEndpointResponse' + description: 'The private endpoint' + '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' + '500': + content: + application/json: + example: + error: + code: 500 + message: 'Internal Server Error' + schema: + $ref: '#/components/schemas/InternalServerResponse' + description: 'Internal Server Error - Unexpected server error' + summary: 'Get a private endpoint' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'get' + patch: + description: 'Replace a draft endpoint''s upstream configuration: send `upstream_model_id`, and `base_url` to change it (an omitted `base_url` keeps the stored one). Omitted data-policy declarations are kept while the upstream is unchanged and cleared when it changes. Any change clears earlier validation. Active endpoints return 409; delete and re-create them instead. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'updatePrivateEndpoint' + 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/UpdatePrivateEndpointRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateEndpointResponse' + description: 'The updated endpoint' + '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: 'Update a draft private endpoint' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'update' + /private-endpoints/{id}/activate: + post: + description: 'Make a validated draft routable. Returns 409 when the endpoint was never validated, the validation is stale, or it is already active. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'activatePrivateEndpoint' + 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' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManagedPrivateEndpointResponse' + description: 'The endpoint after the change' + '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: 'Activate a validated private endpoint' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'activate' + /private-endpoints/{id}/disable: + post: + description: 'Stop routing to an active endpoint without deleting it. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'disablePrivateEndpoint' + 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' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManagedPrivateEndpointResponse' + description: 'The endpoint after the change' + '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: 'Disable a private endpoint' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'disable' + /private-endpoints/{id}/enable: + post: + description: 'Resume routing to a disabled endpoint. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'enablePrivateEndpoint' + 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' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ManagedPrivateEndpointResponse' + description: 'The endpoint after the change' + '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: 'Enable a private endpoint' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'enable' + /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. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'updatePrivateEndpointPricing' + 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/UpdatePrivateEndpointPricingRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateEndpointResponse' + description: 'The endpoint with its new pricing' + '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 pricing' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'updatePricing' + /private-endpoints/{id}/validate: + post: + description: 'Send a live test request to the draft endpoint using the given workspace''s BYOK credential for its provider. A passing validation is required before activation. Failed checks return 200 with `passed: false`. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'validatePrivateEndpoint' + 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/ValidatePrivateEndpointRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateEndpointValidationResponse' + description: 'Validation checks' + '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: 'Validate a draft private endpoint' + tags: + - 'Private Endpoints' + x-speakeasy-name-override: 'validate' /providers: get: operationId: 'listProviders' @@ -49060,6 +50575,8 @@ tags: name: 'Organization' - description: 'Presets endpoints' name: 'Presets' + - description: 'Private Endpoints endpoints' + name: 'Private Endpoints' - description: 'Provider information endpoints' name: 'Providers' - description: 'Rerank endpoints'