This commit is contained in:
Raghotham Murthy 2025-10-27 10:52:20 -07:00
parent e21db79d6c
commit 13b6f3df65
12 changed files with 1238 additions and 605 deletions

View file

@ -3526,6 +3526,51 @@
},
"deprecated": true
}
},
"/v1/providers/{provider_id}": {
"get": {
"responses": {
"200": {
"description": "A ListProvidersResponse containing all providers with matching provider_id.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListProvidersResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"Providers"
],
"summary": "Get providers by ID (deprecated - use /providers/{api}/{provider_id} instead).",
"description": "Get providers by ID (deprecated - use /providers/{api}/{provider_id} instead).\nDEPRECATED: Returns all providers with the given provider_id across all APIs.\nThis can return multiple providers if the same ID is used for different APIs.\nUse /providers/{api}/{provider_id} for unambiguous access.",
"parameters": [
{
"name": "provider_id",
"in": "path",
"description": "The ID of the provider(s) to inspect.",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": true
}
}
},
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
@ -13350,6 +13395,103 @@
"logger_config"
],
"title": "SupervisedFineTuneRequest"
},
"ProviderInfo": {
"type": "object",
"properties": {
"api": {
"type": "string",
"description": "The API name this provider implements"
},
"provider_id": {
"type": "string",
"description": "Unique identifier for the provider"
},
"provider_type": {
"type": "string",
"description": "The type of provider implementation"
},
"config": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "array"
},
{
"type": "object"
}
]
},
"description": "Configuration parameters for the provider"
},
"health": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "array"
},
{
"type": "object"
}
]
},
"description": "Current health status of the provider"
}
},
"additionalProperties": false,
"required": [
"api",
"provider_id",
"provider_type",
"config",
"health"
],
"title": "ProviderInfo",
"description": "Information about a registered provider including its configuration and health status."
},
"ListProvidersResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProviderInfo"
},
"description": "List of provider information objects"
}
},
"additionalProperties": false,
"required": [
"data"
],
"title": "ListProvidersResponse",
"description": "Response containing a list of all available providers."
}
},
"responses": {
@ -13461,6 +13603,11 @@
"name": "PostTraining (Coming Soon)",
"description": ""
},
{
"name": "Providers",
"description": "Providers API for inspecting, listing, and modifying providers and their configurations.",
"x-displayName": "Providers"
},
{
"name": "Safety",
"description": "OpenAI-compatible Moderations API.",
@ -13484,6 +13631,7 @@
"Inference",
"Models",
"PostTraining (Coming Soon)",
"Providers",
"Safety",
"VectorIO"
]

View file

@ -2600,6 +2600,46 @@ paths:
$ref: '#/components/schemas/SupervisedFineTuneRequest'
required: true
deprecated: true
/v1/providers/{provider_id}:
get:
responses:
'200':
description: >-
A ListProvidersResponse containing all providers with matching provider_id.
content:
application/json:
schema:
$ref: '#/components/schemas/ListProvidersResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: >-
Get providers by ID (deprecated - use /providers/{api}/{provider_id} instead).
description: >-
Get providers by ID (deprecated - use /providers/{api}/{provider_id} instead).
DEPRECATED: Returns all providers with the given provider_id across all APIs.
This can return multiple providers if the same ID is used for different APIs.
Use /providers/{api}/{provider_id} for unambiguous access.
parameters:
- name: provider_id
in: path
description: The ID of the provider(s) to inspect.
required: true
schema:
type: string
deprecated: true
jsonSchemaDialect: >-
https://json-schema.org/draft/2020-12/schema
components:
@ -10121,6 +10161,66 @@ components:
- hyperparam_search_config
- logger_config
title: SupervisedFineTuneRequest
ProviderInfo:
type: object
properties:
api:
type: string
description: The API name this provider implements
provider_id:
type: string
description: Unique identifier for the provider
provider_type:
type: string
description: The type of provider implementation
config:
type: object
additionalProperties:
oneOf:
- type: 'null'
- type: boolean
- type: number
- type: string
- type: array
- type: object
description: >-
Configuration parameters for the provider
health:
type: object
additionalProperties:
oneOf:
- type: 'null'
- type: boolean
- type: number
- type: string
- type: array
- type: object
description: Current health status of the provider
additionalProperties: false
required:
- api
- provider_id
- provider_type
- config
- health
title: ProviderInfo
description: >-
Information about a registered provider including its configuration and health
status.
ListProvidersResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProviderInfo'
description: List of provider information objects
additionalProperties: false
required:
- data
title: ListProvidersResponse
description: >-
Response containing a list of all available providers.
responses:
BadRequest400:
description: The request was invalid or malformed
@ -10226,6 +10326,10 @@ tags:
description: ''
- name: PostTraining (Coming Soon)
description: ''
- name: Providers
description: >-
Providers API for inspecting, listing, and modifying providers and their configurations.
x-displayName: Providers
- name: Safety
description: OpenAI-compatible Moderations API.
x-displayName: Safety
@ -10243,5 +10347,6 @@ x-tagGroups:
- Inference
- Models
- PostTraining (Coming Soon)
- Providers
- Safety
- VectorIO

View file

@ -40,7 +40,7 @@
}
],
"paths": {
"/v1/admin/providers": {
"/v1/admin/providers/{api}": {
"post": {
"responses": {
"200": {
@ -71,7 +71,17 @@
],
"summary": "Register a new dynamic provider.",
"description": "Register a new dynamic provider.\nRegister a new provider instance at runtime. The provider will be validated,\ninstantiated, and persisted to the kvstore. Requires appropriate ABAC permissions.",
"parameters": [],
"parameters": [
{
"name": "api",
"in": "path",
"description": "API namespace this provider implements (e.g., 'inference', 'vector_io').",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
@ -85,7 +95,7 @@
"deprecated": false
}
},
"/v1/admin/providers/{provider_id}": {
"/v1/admin/providers/{api}/{provider_id}": {
"post": {
"responses": {
"200": {
@ -115,8 +125,17 @@
"Providers"
],
"summary": "Update an existing provider's configuration.",
"description": "Update an existing provider's configuration.\nUpdate the configuration and/or attributes of a dynamic provider. The provider\nwill be re-instantiated with the new configuration (hot-reload). Static providers\nfrom run.yaml cannot be updated.",
"description": "Update an existing provider's configuration.\nUpdate the configuration and/or attributes of a dynamic provider. The provider\nwill be re-instantiated with the new configuration (hot-reload).",
"parameters": [
{
"name": "api",
"in": "path",
"description": "API namespace the provider implements",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "provider_id",
"in": "path",
@ -161,8 +180,17 @@
"Providers"
],
"summary": "Unregister a dynamic provider.",
"description": "Unregister a dynamic provider.\nRemove a dynamic provider, shutting down its instance and removing it from\nthe kvstore. Static providers from run.yaml cannot be unregistered.",
"description": "Unregister a dynamic provider.\nRemove a dynamic provider, shutting down its instance and removing it from\nthe kvstore.",
"parameters": [
{
"name": "api",
"in": "path",
"description": "API namespace the provider implements",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "provider_id",
"in": "path",
@ -176,6 +204,60 @@
"deprecated": false
}
},
"/v1/admin/providers/{api}/{provider_id}/test": {
"post": {
"responses": {
"200": {
"description": "TestProviderConnectionResponse with health status.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestProviderConnectionResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"Providers"
],
"summary": "Test a provider connection.",
"description": "Test a provider connection.\nExecute a health check on a provider to verify it is reachable and functioning.",
"parameters": [
{
"name": "api",
"in": "path",
"description": "API namespace the provider implements.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "provider_id",
"in": "path",
"description": "ID of the provider to test.",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
},
"/v1/chat/completions": {
"get": {
"responses": {
@ -1771,7 +1853,52 @@
"deprecated": false
}
},
"/v1/providers/{provider_id}": {
"/v1/providers/{api}": {
"get": {
"responses": {
"200": {
"description": "A ListProvidersResponse containing providers for the specified API.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListProvidersResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"Providers"
],
"summary": "List providers for a specific API.",
"description": "List providers for a specific API.\nList all providers that implement a specific API.",
"parameters": [
{
"name": "api",
"in": "path",
"description": "The API namespace to filter by (e.g., 'inference', 'vector_io')",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
},
"/v1/providers/{api}/{provider_id}": {
"get": {
"responses": {
"200": {
@ -1800,58 +1927,22 @@
"tags": [
"Providers"
],
"summary": "Get provider.",
"description": "Get provider.\nGet detailed information about a specific provider.",
"summary": "Get provider for specific API.",
"description": "Get provider for specific API.\nGet detailed information about a specific provider for a specific API.",
"parameters": [
{
"name": "provider_id",
"name": "api",
"in": "path",
"description": "The ID of the provider to inspect.",
"description": "The API namespace.",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
},
"/v1/providers/{provider_id}/test": {
"post": {
"responses": {
"200": {
"description": "TestProviderConnectionResponse with health status.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestProviderConnectionResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"Providers"
],
"summary": "Test a provider connection.",
"description": "Test a provider connection.\nExecute a health check on a provider to verify it is reachable and functioning.\nWorks for both static and dynamic providers.",
"parameters": [
{
"name": "provider_id",
"in": "path",
"description": "ID of the provider to test.",
"description": "The ID of the provider to inspect.",
"required": true,
"schema": {
"type": "string"
@ -4193,10 +4284,6 @@
"type": "string",
"description": "Unique identifier for this provider instance."
},
"api": {
"type": "string",
"description": "API namespace this provider implements."
},
"provider_type": {
"type": "string",
"description": "Provider type (e.g., 'remote::openai')."
@ -4241,7 +4328,6 @@
"additionalProperties": false,
"required": [
"provider_id",
"api",
"provider_type",
"config"
],
@ -4531,6 +4617,51 @@
"title": "UpdateProviderResponse",
"description": "Response after updating a provider."
},
"TestProviderConnectionResponse": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the connection test succeeded"
},
"health": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "array"
},
{
"type": "object"
}
]
},
"description": "Health status from the provider"
},
"error_message": {
"type": "string",
"description": "Error message if test failed"
}
},
"additionalProperties": false,
"required": [
"success"
],
"title": "TestProviderConnectionResponse",
"description": "Response from testing a provider connection."
},
"Order": {
"type": "string",
"enum": [
@ -7768,51 +7899,6 @@
"title": "ListProvidersResponse",
"description": "Response containing a list of all available providers."
},
"TestProviderConnectionResponse": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the connection test succeeded"
},
"health": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "array"
},
{
"type": "object"
}
]
},
"description": "Health status from the provider"
},
"error_message": {
"type": "string",
"description": "Error message if test failed"
}
},
"additionalProperties": false,
"required": [
"success"
],
"title": "TestProviderConnectionResponse",
"description": "Response from testing a provider connection."
},
"ListOpenAIResponseObject": {
"type": "object",
"properties": {

View file

@ -12,7 +12,7 @@ info:
servers:
- url: http://any-hosted-llama-stack.com
paths:
/v1/admin/providers:
/v1/admin/providers/{api}:
post:
responses:
'200':
@ -41,7 +41,14 @@ paths:
Register a new provider instance at runtime. The provider will be validated,
instantiated, and persisted to the kvstore. Requires appropriate ABAC permissions.
parameters: []
parameters:
- name: api
in: path
description: >-
API namespace this provider implements (e.g., 'inference', 'vector_io').
required: true
schema:
type: string
requestBody:
content:
application/json:
@ -49,7 +56,7 @@ paths:
$ref: '#/components/schemas/RegisterProviderRequest'
required: true
deprecated: false
/v1/admin/providers/{provider_id}:
/v1/admin/providers/{api}/{provider_id}:
post:
responses:
'200':
@ -78,10 +85,14 @@ paths:
Update the configuration and/or attributes of a dynamic provider. The provider
will be re-instantiated with the new configuration (hot-reload). Static providers
from run.yaml cannot be updated.
will be re-instantiated with the new configuration (hot-reload).
parameters:
- name: api
in: path
description: API namespace the provider implements
required: true
schema:
type: string
- name: provider_id
in: path
description: ID of the provider to update
@ -117,8 +128,14 @@ paths:
Remove a dynamic provider, shutting down its instance and removing it from
the kvstore. Static providers from run.yaml cannot be unregistered.
the kvstore.
parameters:
- name: api
in: path
description: API namespace the provider implements
required: true
schema:
type: string
- name: provider_id
in: path
description: ID of the provider to unregister.
@ -126,6 +143,47 @@ paths:
schema:
type: string
deprecated: false
/v1/admin/providers/{api}/{provider_id}/test:
post:
responses:
'200':
description: >-
TestProviderConnectionResponse with health status.
content:
application/json:
schema:
$ref: '#/components/schemas/TestProviderConnectionResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: Test a provider connection.
description: >-
Test a provider connection.
Execute a health check on a provider to verify it is reachable and functioning.
parameters:
- name: api
in: path
description: API namespace the provider implements.
required: true
schema:
type: string
- name: provider_id
in: path
description: ID of the provider to test.
required: true
schema:
type: string
deprecated: false
/v1/chat/completions:
get:
responses:
@ -1365,7 +1423,43 @@ paths:
List all available providers.
parameters: []
deprecated: false
/v1/providers/{provider_id}:
/v1/providers/{api}:
get:
responses:
'200':
description: >-
A ListProvidersResponse containing providers for the specified API.
content:
application/json:
schema:
$ref: '#/components/schemas/ListProvidersResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: List providers for a specific API.
description: >-
List providers for a specific API.
List all providers that implement a specific API.
parameters:
- name: api
in: path
description: >-
The API namespace to filter by (e.g., 'inference', 'vector_io')
required: true
schema:
type: string
deprecated: false
/v1/providers/{api}/{provider_id}:
get:
responses:
'200':
@ -1387,52 +1481,21 @@ paths:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: Get provider.
summary: Get provider for specific API.
description: >-
Get provider.
Get provider for specific API.
Get detailed information about a specific provider.
Get detailed information about a specific provider for a specific API.
parameters:
- name: provider_id
- name: api
in: path
description: The ID of the provider to inspect.
description: The API namespace.
required: true
schema:
type: string
deprecated: false
/v1/providers/{provider_id}/test:
post:
responses:
'200':
description: >-
TestProviderConnectionResponse with health status.
content:
application/json:
schema:
$ref: '#/components/schemas/TestProviderConnectionResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: Test a provider connection.
description: >-
Test a provider connection.
Execute a health check on a provider to verify it is reachable and functioning.
Works for both static and dynamic providers.
parameters:
- name: provider_id
in: path
description: ID of the provider to test.
description: The ID of the provider to inspect.
required: true
schema:
type: string
@ -3157,9 +3220,6 @@ components:
type: string
description: >-
Unique identifier for this provider instance.
api:
type: string
description: API namespace this provider implements.
provider_type:
type: string
description: Provider type (e.g., 'remote::openai').
@ -3186,7 +3246,6 @@ components:
additionalProperties: false
required:
- provider_id
- api
- provider_type
- config
title: RegisterProviderRequest
@ -3395,6 +3454,32 @@ components:
- provider
title: UpdateProviderResponse
description: Response after updating a provider.
TestProviderConnectionResponse:
type: object
properties:
success:
type: boolean
description: Whether the connection test succeeded
health:
type: object
additionalProperties:
oneOf:
- type: 'null'
- type: boolean
- type: number
- type: string
- type: array
- type: object
description: Health status from the provider
error_message:
type: string
description: Error message if test failed
additionalProperties: false
required:
- success
title: TestProviderConnectionResponse
description: >-
Response from testing a provider connection.
Order:
type: string
enum:
@ -5863,32 +5948,6 @@ components:
title: ListProvidersResponse
description: >-
Response containing a list of all available providers.
TestProviderConnectionResponse:
type: object
properties:
success:
type: boolean
description: Whether the connection test succeeded
health:
type: object
additionalProperties:
oneOf:
- type: 'null'
- type: boolean
- type: number
- type: string
- type: array
- type: object
description: Health status from the provider
error_message:
type: string
description: Error message if test failed
additionalProperties: false
required:
- success
title: TestProviderConnectionResponse
description: >-
Response from testing a provider connection.
ListOpenAIResponseObject:
type: object
properties:

View file

@ -40,7 +40,7 @@
}
],
"paths": {
"/v1/admin/providers": {
"/v1/admin/providers/{api}": {
"post": {
"responses": {
"200": {
@ -71,7 +71,17 @@
],
"summary": "Register a new dynamic provider.",
"description": "Register a new dynamic provider.\nRegister a new provider instance at runtime. The provider will be validated,\ninstantiated, and persisted to the kvstore. Requires appropriate ABAC permissions.",
"parameters": [],
"parameters": [
{
"name": "api",
"in": "path",
"description": "API namespace this provider implements (e.g., 'inference', 'vector_io').",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
@ -85,7 +95,7 @@
"deprecated": false
}
},
"/v1/admin/providers/{provider_id}": {
"/v1/admin/providers/{api}/{provider_id}": {
"post": {
"responses": {
"200": {
@ -115,8 +125,17 @@
"Providers"
],
"summary": "Update an existing provider's configuration.",
"description": "Update an existing provider's configuration.\nUpdate the configuration and/or attributes of a dynamic provider. The provider\nwill be re-instantiated with the new configuration (hot-reload). Static providers\nfrom run.yaml cannot be updated.",
"description": "Update an existing provider's configuration.\nUpdate the configuration and/or attributes of a dynamic provider. The provider\nwill be re-instantiated with the new configuration (hot-reload).",
"parameters": [
{
"name": "api",
"in": "path",
"description": "API namespace the provider implements",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "provider_id",
"in": "path",
@ -161,8 +180,17 @@
"Providers"
],
"summary": "Unregister a dynamic provider.",
"description": "Unregister a dynamic provider.\nRemove a dynamic provider, shutting down its instance and removing it from\nthe kvstore. Static providers from run.yaml cannot be unregistered.",
"description": "Unregister a dynamic provider.\nRemove a dynamic provider, shutting down its instance and removing it from\nthe kvstore.",
"parameters": [
{
"name": "api",
"in": "path",
"description": "API namespace the provider implements",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "provider_id",
"in": "path",
@ -176,6 +204,60 @@
"deprecated": false
}
},
"/v1/admin/providers/{api}/{provider_id}/test": {
"post": {
"responses": {
"200": {
"description": "TestProviderConnectionResponse with health status.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestProviderConnectionResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"Providers"
],
"summary": "Test a provider connection.",
"description": "Test a provider connection.\nExecute a health check on a provider to verify it is reachable and functioning.",
"parameters": [
{
"name": "api",
"in": "path",
"description": "API namespace the provider implements.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "provider_id",
"in": "path",
"description": "ID of the provider to test.",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
},
"/v1/chat/completions": {
"get": {
"responses": {
@ -1771,7 +1853,52 @@
"deprecated": false
}
},
"/v1/providers/{provider_id}": {
"/v1/providers/{api}": {
"get": {
"responses": {
"200": {
"description": "A ListProvidersResponse containing providers for the specified API.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListProvidersResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"Providers"
],
"summary": "List providers for a specific API.",
"description": "List providers for a specific API.\nList all providers that implement a specific API.",
"parameters": [
{
"name": "api",
"in": "path",
"description": "The API namespace to filter by (e.g., 'inference', 'vector_io')",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
},
"/v1/providers/{api}/{provider_id}": {
"get": {
"responses": {
"200": {
@ -1800,58 +1927,22 @@
"tags": [
"Providers"
],
"summary": "Get provider.",
"description": "Get provider.\nGet detailed information about a specific provider.",
"summary": "Get provider for specific API.",
"description": "Get provider for specific API.\nGet detailed information about a specific provider for a specific API.",
"parameters": [
{
"name": "provider_id",
"name": "api",
"in": "path",
"description": "The ID of the provider to inspect.",
"description": "The API namespace.",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
},
"/v1/providers/{provider_id}/test": {
"post": {
"responses": {
"200": {
"description": "TestProviderConnectionResponse with health status.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestProviderConnectionResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest400"
},
"429": {
"$ref": "#/components/responses/TooManyRequests429"
},
"500": {
"$ref": "#/components/responses/InternalServerError500"
},
"default": {
"$ref": "#/components/responses/DefaultError"
}
},
"tags": [
"Providers"
],
"summary": "Test a provider connection.",
"description": "Test a provider connection.\nExecute a health check on a provider to verify it is reachable and functioning.\nWorks for both static and dynamic providers.",
"parameters": [
{
"name": "provider_id",
"in": "path",
"description": "ID of the provider to test.",
"description": "The ID of the provider to inspect.",
"required": true,
"schema": {
"type": "string"
@ -5865,10 +5956,6 @@
"type": "string",
"description": "Unique identifier for this provider instance."
},
"api": {
"type": "string",
"description": "API namespace this provider implements."
},
"provider_type": {
"type": "string",
"description": "Provider type (e.g., 'remote::openai')."
@ -5913,7 +6000,6 @@
"additionalProperties": false,
"required": [
"provider_id",
"api",
"provider_type",
"config"
],
@ -6203,6 +6289,51 @@
"title": "UpdateProviderResponse",
"description": "Response after updating a provider."
},
"TestProviderConnectionResponse": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the connection test succeeded"
},
"health": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "array"
},
{
"type": "object"
}
]
},
"description": "Health status from the provider"
},
"error_message": {
"type": "string",
"description": "Error message if test failed"
}
},
"additionalProperties": false,
"required": [
"success"
],
"title": "TestProviderConnectionResponse",
"description": "Response from testing a provider connection."
},
"Order": {
"type": "string",
"enum": [
@ -9440,51 +9571,6 @@
"title": "ListProvidersResponse",
"description": "Response containing a list of all available providers."
},
"TestProviderConnectionResponse": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Whether the connection test succeeded"
},
"health": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "array"
},
{
"type": "object"
}
]
},
"description": "Health status from the provider"
},
"error_message": {
"type": "string",
"description": "Error message if test failed"
}
},
"additionalProperties": false,
"required": [
"success"
],
"title": "TestProviderConnectionResponse",
"description": "Response from testing a provider connection."
},
"ListOpenAIResponseObject": {
"type": "object",
"properties": {

View file

@ -15,7 +15,7 @@ info:
servers:
- url: http://any-hosted-llama-stack.com
paths:
/v1/admin/providers:
/v1/admin/providers/{api}:
post:
responses:
'200':
@ -44,7 +44,14 @@ paths:
Register a new provider instance at runtime. The provider will be validated,
instantiated, and persisted to the kvstore. Requires appropriate ABAC permissions.
parameters: []
parameters:
- name: api
in: path
description: >-
API namespace this provider implements (e.g., 'inference', 'vector_io').
required: true
schema:
type: string
requestBody:
content:
application/json:
@ -52,7 +59,7 @@ paths:
$ref: '#/components/schemas/RegisterProviderRequest'
required: true
deprecated: false
/v1/admin/providers/{provider_id}:
/v1/admin/providers/{api}/{provider_id}:
post:
responses:
'200':
@ -81,10 +88,14 @@ paths:
Update the configuration and/or attributes of a dynamic provider. The provider
will be re-instantiated with the new configuration (hot-reload). Static providers
from run.yaml cannot be updated.
will be re-instantiated with the new configuration (hot-reload).
parameters:
- name: api
in: path
description: API namespace the provider implements
required: true
schema:
type: string
- name: provider_id
in: path
description: ID of the provider to update
@ -120,8 +131,14 @@ paths:
Remove a dynamic provider, shutting down its instance and removing it from
the kvstore. Static providers from run.yaml cannot be unregistered.
the kvstore.
parameters:
- name: api
in: path
description: API namespace the provider implements
required: true
schema:
type: string
- name: provider_id
in: path
description: ID of the provider to unregister.
@ -129,6 +146,47 @@ paths:
schema:
type: string
deprecated: false
/v1/admin/providers/{api}/{provider_id}/test:
post:
responses:
'200':
description: >-
TestProviderConnectionResponse with health status.
content:
application/json:
schema:
$ref: '#/components/schemas/TestProviderConnectionResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: Test a provider connection.
description: >-
Test a provider connection.
Execute a health check on a provider to verify it is reachable and functioning.
parameters:
- name: api
in: path
description: API namespace the provider implements.
required: true
schema:
type: string
- name: provider_id
in: path
description: ID of the provider to test.
required: true
schema:
type: string
deprecated: false
/v1/chat/completions:
get:
responses:
@ -1368,7 +1426,43 @@ paths:
List all available providers.
parameters: []
deprecated: false
/v1/providers/{provider_id}:
/v1/providers/{api}:
get:
responses:
'200':
description: >-
A ListProvidersResponse containing providers for the specified API.
content:
application/json:
schema:
$ref: '#/components/schemas/ListProvidersResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: List providers for a specific API.
description: >-
List providers for a specific API.
List all providers that implement a specific API.
parameters:
- name: api
in: path
description: >-
The API namespace to filter by (e.g., 'inference', 'vector_io')
required: true
schema:
type: string
deprecated: false
/v1/providers/{api}/{provider_id}:
get:
responses:
'200':
@ -1390,52 +1484,21 @@ paths:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: Get provider.
summary: Get provider for specific API.
description: >-
Get provider.
Get provider for specific API.
Get detailed information about a specific provider.
Get detailed information about a specific provider for a specific API.
parameters:
- name: provider_id
- name: api
in: path
description: The ID of the provider to inspect.
description: The API namespace.
required: true
schema:
type: string
deprecated: false
/v1/providers/{provider_id}/test:
post:
responses:
'200':
description: >-
TestProviderConnectionResponse with health status.
content:
application/json:
schema:
$ref: '#/components/schemas/TestProviderConnectionResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'429':
$ref: >-
#/components/responses/TooManyRequests429
'500':
$ref: >-
#/components/responses/InternalServerError500
default:
$ref: '#/components/responses/DefaultError'
tags:
- Providers
summary: Test a provider connection.
description: >-
Test a provider connection.
Execute a health check on a provider to verify it is reachable and functioning.
Works for both static and dynamic providers.
parameters:
- name: provider_id
in: path
description: ID of the provider to test.
description: The ID of the provider to inspect.
required: true
schema:
type: string
@ -4370,9 +4433,6 @@ components:
type: string
description: >-
Unique identifier for this provider instance.
api:
type: string
description: API namespace this provider implements.
provider_type:
type: string
description: Provider type (e.g., 'remote::openai').
@ -4399,7 +4459,6 @@ components:
additionalProperties: false
required:
- provider_id
- api
- provider_type
- config
title: RegisterProviderRequest
@ -4608,6 +4667,32 @@ components:
- provider
title: UpdateProviderResponse
description: Response after updating a provider.
TestProviderConnectionResponse:
type: object
properties:
success:
type: boolean
description: Whether the connection test succeeded
health:
type: object
additionalProperties:
oneOf:
- type: 'null'
- type: boolean
- type: number
- type: string
- type: array
- type: object
description: Health status from the provider
error_message:
type: string
description: Error message if test failed
additionalProperties: false
required:
- success
title: TestProviderConnectionResponse
description: >-
Response from testing a provider connection.
Order:
type: string
enum:
@ -7076,32 +7161,6 @@ components:
title: ListProvidersResponse
description: >-
Response containing a list of all available providers.
TestProviderConnectionResponse:
type: object
properties:
success:
type: boolean
description: Whether the connection test succeeded
health:
type: object
additionalProperties:
oneOf:
- type: 'null'
- type: boolean
- type: number
- type: string
- type: array
- type: object
description: Health status from the provider
error_message:
type: string
description: Error message if test failed
additionalProperties: false
required:
- success
title: TestProviderConnectionResponse
description: >-
Response from testing a provider connection.
ListOpenAIResponseObject:
type: object
properties: