mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-12 20:12:33 +00:00
Merge 4306ecdbe7 into 98a5047f9d
This commit is contained in:
commit
fb49732f2f
13 changed files with 4819 additions and 41 deletions
148
docs/static/deprecated-llama-stack-spec.html
vendored
148
docs/static/deprecated-llama-stack-spec.html
vendored
|
|
@ -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"
|
||||
]
|
||||
|
|
|
|||
105
docs/static/deprecated-llama-stack-spec.yaml
vendored
105
docs/static/deprecated-llama-stack-spec.yaml
vendored
|
|
@ -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
|
||||
|
|
|
|||
663
docs/static/llama-stack-spec.html
vendored
663
docs/static/llama-stack-spec.html
vendored
|
|
@ -40,6 +40,224 @@
|
|||
}
|
||||
],
|
||||
"paths": {
|
||||
"/v1/admin/providers/{api}": {
|
||||
"post": {
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "RegisterProviderResponse with the registered provider info.",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/RegisterProviderResponse"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#/components/responses/BadRequest400"
|
||||
},
|
||||
"429": {
|
||||
"$ref": "#/components/responses/TooManyRequests429"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/InternalServerError500"
|
||||
},
|
||||
"default": {
|
||||
"$ref": "#/components/responses/DefaultError"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"Providers"
|
||||
],
|
||||
"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": [
|
||||
{
|
||||
"name": "api",
|
||||
"in": "path",
|
||||
"description": "API namespace this provider implements (e.g., 'inference', 'vector_io').",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/RegisterProviderRequest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"deprecated": false
|
||||
}
|
||||
},
|
||||
"/v1/admin/providers/{api}/{provider_id}": {
|
||||
"post": {
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "UpdateProviderResponse with updated provider info",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/UpdateProviderResponse"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#/components/responses/BadRequest400"
|
||||
},
|
||||
"429": {
|
||||
"$ref": "#/components/responses/TooManyRequests429"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/InternalServerError500"
|
||||
},
|
||||
"default": {
|
||||
"$ref": "#/components/responses/DefaultError"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"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).",
|
||||
"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",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/UpdateProviderRequest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"deprecated": false
|
||||
},
|
||||
"delete": {
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#/components/responses/BadRequest400"
|
||||
},
|
||||
"429": {
|
||||
"$ref": "#/components/responses/TooManyRequests429"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/InternalServerError500"
|
||||
},
|
||||
"default": {
|
||||
"$ref": "#/components/responses/DefaultError"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"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.",
|
||||
"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.",
|
||||
"required": true,
|
||||
"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.\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": {
|
||||
|
|
@ -1635,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": {
|
||||
|
|
@ -1664,9 +1927,18 @@
|
|||
"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": "api",
|
||||
"in": "path",
|
||||
"description": "The API namespace.",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "provider_id",
|
||||
"in": "path",
|
||||
|
|
@ -4005,6 +4277,391 @@
|
|||
"title": "Error",
|
||||
"description": "Error response from the API. Roughly follows RFC 7807."
|
||||
},
|
||||
"RegisterProviderRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider_id": {
|
||||
"type": "string",
|
||||
"description": "Unique identifier for this provider instance."
|
||||
},
|
||||
"provider_type": {
|
||||
"type": "string",
|
||||
"description": "Provider type (e.g., 'remote::openai')."
|
||||
},
|
||||
"config": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Provider configuration (API keys, endpoints, etc.)."
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "Optional attributes for ABAC access control."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider_id",
|
||||
"provider_type",
|
||||
"config"
|
||||
],
|
||||
"title": "RegisterProviderRequest"
|
||||
},
|
||||
"ProviderConnectionInfo": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider_id": {
|
||||
"type": "string",
|
||||
"description": "Unique identifier for this provider instance"
|
||||
},
|
||||
"api": {
|
||||
"type": "string",
|
||||
"description": "API namespace (e.g., \"inference\", \"vector_io\", \"safety\")"
|
||||
},
|
||||
"provider_type": {
|
||||
"type": "string",
|
||||
"description": "Provider type identifier (e.g., \"remote::openai\", \"inline::faiss\")"
|
||||
},
|
||||
"config": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Provider-specific configuration (API keys, endpoints, etc.)"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "#/components/schemas/ProviderConnectionStatus",
|
||||
"description": "Current connection status"
|
||||
},
|
||||
"health": {
|
||||
"$ref": "#/components/schemas/ProviderHealth",
|
||||
"description": "Most recent health check result"
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp when provider was registered"
|
||||
},
|
||||
"updated_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp of last update"
|
||||
},
|
||||
"last_health_check": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp of last health check"
|
||||
},
|
||||
"error_message": {
|
||||
"type": "string",
|
||||
"description": "Error message if status is failed"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "User-defined metadata (deprecated, use attributes)"
|
||||
},
|
||||
"owner": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"principal": {
|
||||
"type": "string"
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"principal"
|
||||
],
|
||||
"description": "User who created this provider connection"
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "Key-value attributes for ABAC access control"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider_id",
|
||||
"api",
|
||||
"provider_type",
|
||||
"config",
|
||||
"status",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"metadata"
|
||||
],
|
||||
"title": "ProviderConnectionInfo",
|
||||
"description": "Information about a dynamically managed provider connection.\nThis model represents a provider that has been registered at runtime\nvia the /providers API, as opposed to static providers configured in run.yaml.\n\nDynamic providers support full lifecycle management including registration,\nconfiguration updates, health monitoring, and removal."
|
||||
},
|
||||
"ProviderConnectionStatus": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"pending",
|
||||
"initializing",
|
||||
"connected",
|
||||
"failed",
|
||||
"disconnected",
|
||||
"testing"
|
||||
],
|
||||
"title": "ProviderConnectionStatus",
|
||||
"description": "Status of a dynamic provider connection."
|
||||
},
|
||||
"ProviderHealth": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"OK",
|
||||
"Error",
|
||||
"Not Implemented"
|
||||
],
|
||||
"description": "Health status (OK, ERROR, NOT_IMPLEMENTED)"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "Optional error or status message"
|
||||
},
|
||||
"metrics": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Provider-specific health metrics"
|
||||
},
|
||||
"last_checked": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp of last health check"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"status",
|
||||
"metrics",
|
||||
"last_checked"
|
||||
],
|
||||
"title": "ProviderHealth",
|
||||
"description": "Structured wrapper around provider health status.\nThis wraps the existing dict-based HealthResponse for API responses\nwhile maintaining backward compatibility with existing provider implementations."
|
||||
},
|
||||
"RegisterProviderResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider": {
|
||||
"$ref": "#/components/schemas/ProviderConnectionInfo",
|
||||
"description": "Information about the registered provider"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider"
|
||||
],
|
||||
"title": "RegisterProviderResponse",
|
||||
"description": "Response after registering a provider."
|
||||
},
|
||||
"UpdateProviderRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"config": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "New configuration parameters (merged with existing)"
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "New attributes for access control"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"title": "UpdateProviderRequest"
|
||||
},
|
||||
"UpdateProviderResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider": {
|
||||
"$ref": "#/components/schemas/ProviderConnectionInfo",
|
||||
"description": "Updated provider information"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"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": [
|
||||
|
|
|
|||
489
docs/static/llama-stack-spec.yaml
vendored
489
docs/static/llama-stack-spec.yaml
vendored
|
|
@ -12,6 +12,178 @@ info:
|
|||
servers:
|
||||
- url: http://any-hosted-llama-stack.com
|
||||
paths:
|
||||
/v1/admin/providers/{api}:
|
||||
post:
|
||||
responses:
|
||||
'200':
|
||||
description: >-
|
||||
RegisterProviderResponse with the registered provider info.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegisterProviderResponse'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest400'
|
||||
'429':
|
||||
$ref: >-
|
||||
#/components/responses/TooManyRequests429
|
||||
'500':
|
||||
$ref: >-
|
||||
#/components/responses/InternalServerError500
|
||||
default:
|
||||
$ref: '#/components/responses/DefaultError'
|
||||
tags:
|
||||
- Providers
|
||||
summary: Register a new dynamic provider.
|
||||
description: >-
|
||||
Register a new dynamic provider.
|
||||
|
||||
Register a new provider instance at runtime. The provider will be validated,
|
||||
|
||||
instantiated, and persisted to the kvstore. Requires appropriate ABAC permissions.
|
||||
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:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegisterProviderRequest'
|
||||
required: true
|
||||
deprecated: false
|
||||
/v1/admin/providers/{api}/{provider_id}:
|
||||
post:
|
||||
responses:
|
||||
'200':
|
||||
description: >-
|
||||
UpdateProviderResponse with updated provider info
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/UpdateProviderResponse'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest400'
|
||||
'429':
|
||||
$ref: >-
|
||||
#/components/responses/TooManyRequests429
|
||||
'500':
|
||||
$ref: >-
|
||||
#/components/responses/InternalServerError500
|
||||
default:
|
||||
$ref: '#/components/responses/DefaultError'
|
||||
tags:
|
||||
- Providers
|
||||
summary: >-
|
||||
Update an existing provider's configuration.
|
||||
description: >-
|
||||
Update an existing provider's configuration.
|
||||
|
||||
Update the configuration and/or attributes of a dynamic provider. The provider
|
||||
|
||||
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
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/UpdateProviderRequest'
|
||||
required: true
|
||||
deprecated: false
|
||||
delete:
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest400'
|
||||
'429':
|
||||
$ref: >-
|
||||
#/components/responses/TooManyRequests429
|
||||
'500':
|
||||
$ref: >-
|
||||
#/components/responses/InternalServerError500
|
||||
default:
|
||||
$ref: '#/components/responses/DefaultError'
|
||||
tags:
|
||||
- Providers
|
||||
summary: Unregister a dynamic provider.
|
||||
description: >-
|
||||
Unregister a dynamic provider.
|
||||
|
||||
Remove a dynamic provider, shutting down its instance and removing it from
|
||||
|
||||
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.
|
||||
required: true
|
||||
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:
|
||||
|
|
@ -1251,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':
|
||||
|
|
@ -1273,12 +1481,18 @@ 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: api
|
||||
in: path
|
||||
description: The API namespace.
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- name: provider_id
|
||||
in: path
|
||||
description: The ID of the provider to inspect.
|
||||
|
|
@ -2999,6 +3213,273 @@ components:
|
|||
title: Error
|
||||
description: >-
|
||||
Error response from the API. Roughly follows RFC 7807.
|
||||
RegisterProviderRequest:
|
||||
type: object
|
||||
properties:
|
||||
provider_id:
|
||||
type: string
|
||||
description: >-
|
||||
Unique identifier for this provider instance.
|
||||
provider_type:
|
||||
type: string
|
||||
description: Provider type (e.g., 'remote::openai').
|
||||
config:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: >-
|
||||
Provider configuration (API keys, endpoints, etc.).
|
||||
attributes:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: >-
|
||||
Optional attributes for ABAC access control.
|
||||
additionalProperties: false
|
||||
required:
|
||||
- provider_id
|
||||
- provider_type
|
||||
- config
|
||||
title: RegisterProviderRequest
|
||||
ProviderConnectionInfo:
|
||||
type: object
|
||||
properties:
|
||||
provider_id:
|
||||
type: string
|
||||
description: >-
|
||||
Unique identifier for this provider instance
|
||||
api:
|
||||
type: string
|
||||
description: >-
|
||||
API namespace (e.g., "inference", "vector_io", "safety")
|
||||
provider_type:
|
||||
type: string
|
||||
description: >-
|
||||
Provider type identifier (e.g., "remote::openai", "inline::faiss")
|
||||
config:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: >-
|
||||
Provider-specific configuration (API keys, endpoints, etc.)
|
||||
status:
|
||||
$ref: '#/components/schemas/ProviderConnectionStatus'
|
||||
description: Current connection status
|
||||
health:
|
||||
$ref: '#/components/schemas/ProviderHealth'
|
||||
description: Most recent health check result
|
||||
created_at:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Timestamp when provider was registered
|
||||
updated_at:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Timestamp of last update
|
||||
last_health_check:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Timestamp of last health check
|
||||
error_message:
|
||||
type: string
|
||||
description: Error message if status is failed
|
||||
metadata:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: >-
|
||||
User-defined metadata (deprecated, use attributes)
|
||||
owner:
|
||||
type: object
|
||||
properties:
|
||||
principal:
|
||||
type: string
|
||||
attributes:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
additionalProperties: false
|
||||
required:
|
||||
- principal
|
||||
description: >-
|
||||
User who created this provider connection
|
||||
attributes:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: >-
|
||||
Key-value attributes for ABAC access control
|
||||
additionalProperties: false
|
||||
required:
|
||||
- provider_id
|
||||
- api
|
||||
- provider_type
|
||||
- config
|
||||
- status
|
||||
- created_at
|
||||
- updated_at
|
||||
- metadata
|
||||
title: ProviderConnectionInfo
|
||||
description: >-
|
||||
Information about a dynamically managed provider connection.
|
||||
|
||||
This model represents a provider that has been registered at runtime
|
||||
|
||||
via the /providers API, as opposed to static providers configured in run.yaml.
|
||||
|
||||
|
||||
Dynamic providers support full lifecycle management including registration,
|
||||
|
||||
configuration updates, health monitoring, and removal.
|
||||
ProviderConnectionStatus:
|
||||
type: string
|
||||
enum:
|
||||
- pending
|
||||
- initializing
|
||||
- connected
|
||||
- failed
|
||||
- disconnected
|
||||
- testing
|
||||
title: ProviderConnectionStatus
|
||||
description: Status of a dynamic provider connection.
|
||||
ProviderHealth:
|
||||
type: object
|
||||
properties:
|
||||
status:
|
||||
type: string
|
||||
enum:
|
||||
- OK
|
||||
- Error
|
||||
- Not Implemented
|
||||
description: >-
|
||||
Health status (OK, ERROR, NOT_IMPLEMENTED)
|
||||
message:
|
||||
type: string
|
||||
description: Optional error or status message
|
||||
metrics:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: Provider-specific health metrics
|
||||
last_checked:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Timestamp of last health check
|
||||
additionalProperties: false
|
||||
required:
|
||||
- status
|
||||
- metrics
|
||||
- last_checked
|
||||
title: ProviderHealth
|
||||
description: >-
|
||||
Structured wrapper around provider health status.
|
||||
|
||||
This wraps the existing dict-based HealthResponse for API responses
|
||||
|
||||
while maintaining backward compatibility with existing provider implementations.
|
||||
RegisterProviderResponse:
|
||||
type: object
|
||||
properties:
|
||||
provider:
|
||||
$ref: '#/components/schemas/ProviderConnectionInfo'
|
||||
description: >-
|
||||
Information about the registered provider
|
||||
additionalProperties: false
|
||||
required:
|
||||
- provider
|
||||
title: RegisterProviderResponse
|
||||
description: Response after registering a provider.
|
||||
UpdateProviderRequest:
|
||||
type: object
|
||||
properties:
|
||||
config:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: >-
|
||||
New configuration parameters (merged with existing)
|
||||
attributes:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: New attributes for access control
|
||||
additionalProperties: false
|
||||
title: UpdateProviderRequest
|
||||
UpdateProviderResponse:
|
||||
type: object
|
||||
properties:
|
||||
provider:
|
||||
$ref: '#/components/schemas/ProviderConnectionInfo'
|
||||
description: Updated provider information
|
||||
additionalProperties: false
|
||||
required:
|
||||
- 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:
|
||||
|
|
|
|||
663
docs/static/stainless-llama-stack-spec.html
vendored
663
docs/static/stainless-llama-stack-spec.html
vendored
|
|
@ -40,6 +40,224 @@
|
|||
}
|
||||
],
|
||||
"paths": {
|
||||
"/v1/admin/providers/{api}": {
|
||||
"post": {
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "RegisterProviderResponse with the registered provider info.",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/RegisterProviderResponse"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#/components/responses/BadRequest400"
|
||||
},
|
||||
"429": {
|
||||
"$ref": "#/components/responses/TooManyRequests429"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/InternalServerError500"
|
||||
},
|
||||
"default": {
|
||||
"$ref": "#/components/responses/DefaultError"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"Providers"
|
||||
],
|
||||
"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": [
|
||||
{
|
||||
"name": "api",
|
||||
"in": "path",
|
||||
"description": "API namespace this provider implements (e.g., 'inference', 'vector_io').",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/RegisterProviderRequest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"deprecated": false
|
||||
}
|
||||
},
|
||||
"/v1/admin/providers/{api}/{provider_id}": {
|
||||
"post": {
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "UpdateProviderResponse with updated provider info",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/UpdateProviderResponse"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#/components/responses/BadRequest400"
|
||||
},
|
||||
"429": {
|
||||
"$ref": "#/components/responses/TooManyRequests429"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/InternalServerError500"
|
||||
},
|
||||
"default": {
|
||||
"$ref": "#/components/responses/DefaultError"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"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).",
|
||||
"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",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/UpdateProviderRequest"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"deprecated": false
|
||||
},
|
||||
"delete": {
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#/components/responses/BadRequest400"
|
||||
},
|
||||
"429": {
|
||||
"$ref": "#/components/responses/TooManyRequests429"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/InternalServerError500"
|
||||
},
|
||||
"default": {
|
||||
"$ref": "#/components/responses/DefaultError"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"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.",
|
||||
"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.",
|
||||
"required": true,
|
||||
"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.\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": {
|
||||
|
|
@ -1635,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": {
|
||||
|
|
@ -1664,9 +1927,18 @@
|
|||
"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": "api",
|
||||
"in": "path",
|
||||
"description": "The API namespace.",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "provider_id",
|
||||
"in": "path",
|
||||
|
|
@ -5677,6 +5949,391 @@
|
|||
"title": "Error",
|
||||
"description": "Error response from the API. Roughly follows RFC 7807."
|
||||
},
|
||||
"RegisterProviderRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider_id": {
|
||||
"type": "string",
|
||||
"description": "Unique identifier for this provider instance."
|
||||
},
|
||||
"provider_type": {
|
||||
"type": "string",
|
||||
"description": "Provider type (e.g., 'remote::openai')."
|
||||
},
|
||||
"config": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Provider configuration (API keys, endpoints, etc.)."
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "Optional attributes for ABAC access control."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider_id",
|
||||
"provider_type",
|
||||
"config"
|
||||
],
|
||||
"title": "RegisterProviderRequest"
|
||||
},
|
||||
"ProviderConnectionInfo": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider_id": {
|
||||
"type": "string",
|
||||
"description": "Unique identifier for this provider instance"
|
||||
},
|
||||
"api": {
|
||||
"type": "string",
|
||||
"description": "API namespace (e.g., \"inference\", \"vector_io\", \"safety\")"
|
||||
},
|
||||
"provider_type": {
|
||||
"type": "string",
|
||||
"description": "Provider type identifier (e.g., \"remote::openai\", \"inline::faiss\")"
|
||||
},
|
||||
"config": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Provider-specific configuration (API keys, endpoints, etc.)"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "#/components/schemas/ProviderConnectionStatus",
|
||||
"description": "Current connection status"
|
||||
},
|
||||
"health": {
|
||||
"$ref": "#/components/schemas/ProviderHealth",
|
||||
"description": "Most recent health check result"
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp when provider was registered"
|
||||
},
|
||||
"updated_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp of last update"
|
||||
},
|
||||
"last_health_check": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp of last health check"
|
||||
},
|
||||
"error_message": {
|
||||
"type": "string",
|
||||
"description": "Error message if status is failed"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "User-defined metadata (deprecated, use attributes)"
|
||||
},
|
||||
"owner": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"principal": {
|
||||
"type": "string"
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"principal"
|
||||
],
|
||||
"description": "User who created this provider connection"
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "Key-value attributes for ABAC access control"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider_id",
|
||||
"api",
|
||||
"provider_type",
|
||||
"config",
|
||||
"status",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"metadata"
|
||||
],
|
||||
"title": "ProviderConnectionInfo",
|
||||
"description": "Information about a dynamically managed provider connection.\nThis model represents a provider that has been registered at runtime\nvia the /providers API, as opposed to static providers configured in run.yaml.\n\nDynamic providers support full lifecycle management including registration,\nconfiguration updates, health monitoring, and removal."
|
||||
},
|
||||
"ProviderConnectionStatus": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"pending",
|
||||
"initializing",
|
||||
"connected",
|
||||
"failed",
|
||||
"disconnected",
|
||||
"testing"
|
||||
],
|
||||
"title": "ProviderConnectionStatus",
|
||||
"description": "Status of a dynamic provider connection."
|
||||
},
|
||||
"ProviderHealth": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"OK",
|
||||
"Error",
|
||||
"Not Implemented"
|
||||
],
|
||||
"description": "Health status (OK, ERROR, NOT_IMPLEMENTED)"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "Optional error or status message"
|
||||
},
|
||||
"metrics": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Provider-specific health metrics"
|
||||
},
|
||||
"last_checked": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp of last health check"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"status",
|
||||
"metrics",
|
||||
"last_checked"
|
||||
],
|
||||
"title": "ProviderHealth",
|
||||
"description": "Structured wrapper around provider health status.\nThis wraps the existing dict-based HealthResponse for API responses\nwhile maintaining backward compatibility with existing provider implementations."
|
||||
},
|
||||
"RegisterProviderResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider": {
|
||||
"$ref": "#/components/schemas/ProviderConnectionInfo",
|
||||
"description": "Information about the registered provider"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"provider"
|
||||
],
|
||||
"title": "RegisterProviderResponse",
|
||||
"description": "Response after registering a provider."
|
||||
},
|
||||
"UpdateProviderRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"config": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "null"
|
||||
},
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "array"
|
||||
},
|
||||
{
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "New configuration parameters (merged with existing)"
|
||||
},
|
||||
"attributes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "New attributes for access control"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"title": "UpdateProviderRequest"
|
||||
},
|
||||
"UpdateProviderResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"provider": {
|
||||
"$ref": "#/components/schemas/ProviderConnectionInfo",
|
||||
"description": "Updated provider information"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"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": [
|
||||
|
|
|
|||
489
docs/static/stainless-llama-stack-spec.yaml
vendored
489
docs/static/stainless-llama-stack-spec.yaml
vendored
|
|
@ -15,6 +15,178 @@ info:
|
|||
servers:
|
||||
- url: http://any-hosted-llama-stack.com
|
||||
paths:
|
||||
/v1/admin/providers/{api}:
|
||||
post:
|
||||
responses:
|
||||
'200':
|
||||
description: >-
|
||||
RegisterProviderResponse with the registered provider info.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegisterProviderResponse'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest400'
|
||||
'429':
|
||||
$ref: >-
|
||||
#/components/responses/TooManyRequests429
|
||||
'500':
|
||||
$ref: >-
|
||||
#/components/responses/InternalServerError500
|
||||
default:
|
||||
$ref: '#/components/responses/DefaultError'
|
||||
tags:
|
||||
- Providers
|
||||
summary: Register a new dynamic provider.
|
||||
description: >-
|
||||
Register a new dynamic provider.
|
||||
|
||||
Register a new provider instance at runtime. The provider will be validated,
|
||||
|
||||
instantiated, and persisted to the kvstore. Requires appropriate ABAC permissions.
|
||||
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:
|
||||
schema:
|
||||
$ref: '#/components/schemas/RegisterProviderRequest'
|
||||
required: true
|
||||
deprecated: false
|
||||
/v1/admin/providers/{api}/{provider_id}:
|
||||
post:
|
||||
responses:
|
||||
'200':
|
||||
description: >-
|
||||
UpdateProviderResponse with updated provider info
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/UpdateProviderResponse'
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest400'
|
||||
'429':
|
||||
$ref: >-
|
||||
#/components/responses/TooManyRequests429
|
||||
'500':
|
||||
$ref: >-
|
||||
#/components/responses/InternalServerError500
|
||||
default:
|
||||
$ref: '#/components/responses/DefaultError'
|
||||
tags:
|
||||
- Providers
|
||||
summary: >-
|
||||
Update an existing provider's configuration.
|
||||
description: >-
|
||||
Update an existing provider's configuration.
|
||||
|
||||
Update the configuration and/or attributes of a dynamic provider. The provider
|
||||
|
||||
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
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/UpdateProviderRequest'
|
||||
required: true
|
||||
deprecated: false
|
||||
delete:
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
'400':
|
||||
$ref: '#/components/responses/BadRequest400'
|
||||
'429':
|
||||
$ref: >-
|
||||
#/components/responses/TooManyRequests429
|
||||
'500':
|
||||
$ref: >-
|
||||
#/components/responses/InternalServerError500
|
||||
default:
|
||||
$ref: '#/components/responses/DefaultError'
|
||||
tags:
|
||||
- Providers
|
||||
summary: Unregister a dynamic provider.
|
||||
description: >-
|
||||
Unregister a dynamic provider.
|
||||
|
||||
Remove a dynamic provider, shutting down its instance and removing it from
|
||||
|
||||
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.
|
||||
required: true
|
||||
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:
|
||||
|
|
@ -1254,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':
|
||||
|
|
@ -1276,12 +1484,18 @@ 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: api
|
||||
in: path
|
||||
description: The API namespace.
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
- name: provider_id
|
||||
in: path
|
||||
description: The ID of the provider to inspect.
|
||||
|
|
@ -4212,6 +4426,273 @@ components:
|
|||
title: Error
|
||||
description: >-
|
||||
Error response from the API. Roughly follows RFC 7807.
|
||||
RegisterProviderRequest:
|
||||
type: object
|
||||
properties:
|
||||
provider_id:
|
||||
type: string
|
||||
description: >-
|
||||
Unique identifier for this provider instance.
|
||||
provider_type:
|
||||
type: string
|
||||
description: Provider type (e.g., 'remote::openai').
|
||||
config:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: >-
|
||||
Provider configuration (API keys, endpoints, etc.).
|
||||
attributes:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: >-
|
||||
Optional attributes for ABAC access control.
|
||||
additionalProperties: false
|
||||
required:
|
||||
- provider_id
|
||||
- provider_type
|
||||
- config
|
||||
title: RegisterProviderRequest
|
||||
ProviderConnectionInfo:
|
||||
type: object
|
||||
properties:
|
||||
provider_id:
|
||||
type: string
|
||||
description: >-
|
||||
Unique identifier for this provider instance
|
||||
api:
|
||||
type: string
|
||||
description: >-
|
||||
API namespace (e.g., "inference", "vector_io", "safety")
|
||||
provider_type:
|
||||
type: string
|
||||
description: >-
|
||||
Provider type identifier (e.g., "remote::openai", "inline::faiss")
|
||||
config:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: >-
|
||||
Provider-specific configuration (API keys, endpoints, etc.)
|
||||
status:
|
||||
$ref: '#/components/schemas/ProviderConnectionStatus'
|
||||
description: Current connection status
|
||||
health:
|
||||
$ref: '#/components/schemas/ProviderHealth'
|
||||
description: Most recent health check result
|
||||
created_at:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Timestamp when provider was registered
|
||||
updated_at:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Timestamp of last update
|
||||
last_health_check:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Timestamp of last health check
|
||||
error_message:
|
||||
type: string
|
||||
description: Error message if status is failed
|
||||
metadata:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: >-
|
||||
User-defined metadata (deprecated, use attributes)
|
||||
owner:
|
||||
type: object
|
||||
properties:
|
||||
principal:
|
||||
type: string
|
||||
attributes:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
additionalProperties: false
|
||||
required:
|
||||
- principal
|
||||
description: >-
|
||||
User who created this provider connection
|
||||
attributes:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: >-
|
||||
Key-value attributes for ABAC access control
|
||||
additionalProperties: false
|
||||
required:
|
||||
- provider_id
|
||||
- api
|
||||
- provider_type
|
||||
- config
|
||||
- status
|
||||
- created_at
|
||||
- updated_at
|
||||
- metadata
|
||||
title: ProviderConnectionInfo
|
||||
description: >-
|
||||
Information about a dynamically managed provider connection.
|
||||
|
||||
This model represents a provider that has been registered at runtime
|
||||
|
||||
via the /providers API, as opposed to static providers configured in run.yaml.
|
||||
|
||||
|
||||
Dynamic providers support full lifecycle management including registration,
|
||||
|
||||
configuration updates, health monitoring, and removal.
|
||||
ProviderConnectionStatus:
|
||||
type: string
|
||||
enum:
|
||||
- pending
|
||||
- initializing
|
||||
- connected
|
||||
- failed
|
||||
- disconnected
|
||||
- testing
|
||||
title: ProviderConnectionStatus
|
||||
description: Status of a dynamic provider connection.
|
||||
ProviderHealth:
|
||||
type: object
|
||||
properties:
|
||||
status:
|
||||
type: string
|
||||
enum:
|
||||
- OK
|
||||
- Error
|
||||
- Not Implemented
|
||||
description: >-
|
||||
Health status (OK, ERROR, NOT_IMPLEMENTED)
|
||||
message:
|
||||
type: string
|
||||
description: Optional error or status message
|
||||
metrics:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: Provider-specific health metrics
|
||||
last_checked:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Timestamp of last health check
|
||||
additionalProperties: false
|
||||
required:
|
||||
- status
|
||||
- metrics
|
||||
- last_checked
|
||||
title: ProviderHealth
|
||||
description: >-
|
||||
Structured wrapper around provider health status.
|
||||
|
||||
This wraps the existing dict-based HealthResponse for API responses
|
||||
|
||||
while maintaining backward compatibility with existing provider implementations.
|
||||
RegisterProviderResponse:
|
||||
type: object
|
||||
properties:
|
||||
provider:
|
||||
$ref: '#/components/schemas/ProviderConnectionInfo'
|
||||
description: >-
|
||||
Information about the registered provider
|
||||
additionalProperties: false
|
||||
required:
|
||||
- provider
|
||||
title: RegisterProviderResponse
|
||||
description: Response after registering a provider.
|
||||
UpdateProviderRequest:
|
||||
type: object
|
||||
properties:
|
||||
config:
|
||||
type: object
|
||||
additionalProperties:
|
||||
oneOf:
|
||||
- type: 'null'
|
||||
- type: boolean
|
||||
- type: number
|
||||
- type: string
|
||||
- type: array
|
||||
- type: object
|
||||
description: >-
|
||||
New configuration parameters (merged with existing)
|
||||
attributes:
|
||||
type: object
|
||||
additionalProperties:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: New attributes for access control
|
||||
additionalProperties: false
|
||||
title: UpdateProviderRequest
|
||||
UpdateProviderResponse:
|
||||
type: object
|
||||
properties:
|
||||
provider:
|
||||
$ref: '#/components/schemas/ProviderConnectionInfo'
|
||||
description: Updated provider information
|
||||
additionalProperties: false
|
||||
required:
|
||||
- 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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue