| plugins: | |
| get: | |
| operationId: listPlugins | |
| summary: List all plugins | |
| description: | | |
| Returns a list of all plugins with their configurations and status. | |
| The `actualName` field contains the plugin name from `GetName()` (used as the map key), | |
| while `name` contains the display name from the configuration. | |
| The `types` array in the status shows which interfaces the plugin implements (llm, mcp, http). | |
| tags: | |
| - Plugins | |
| responses: | |
| '200': | |
| description: Successful response | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/management/plugins.yaml#/ListPluginsResponse' | |
| '500': | |
| $ref: '../../openapi.yaml#/components/responses/InternalError' | |
| post: | |
| operationId: createPlugin | |
| summary: Create a new plugin | |
| description: Creates a new plugin with the specified configuration. | |
| tags: | |
| - Plugins | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/management/plugins.yaml#/CreatePluginRequest' | |
| responses: | |
| '201': | |
| description: Plugin created successfully | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/management/plugins.yaml#/PluginResponse' | |
| '400': | |
| $ref: '../../openapi.yaml#/components/responses/BadRequest' | |
| '409': | |
| description: Plugin already exists | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/inference/common.yaml#/BifrostError' | |
| '500': | |
| $ref: '../../openapi.yaml#/components/responses/InternalError' | |
| /plugins/{name}: | |
| get: | |
| operationId: getPlugin | |
| summary: Get a specific plugin | |
| description: | | |
| Returns the configuration for a specific plugin. | |
| The response includes the plugin status with types array showing which interfaces | |
| the plugin implements (llm, mcp, http). The `actualName` field shows the plugin name | |
| from GetName() (used as the map key), which may differ from the display name (`name`). | |
| tags: | |
| - Plugins | |
| parameters: | |
| - name: name | |
| in: path | |
| required: true | |
| description: Plugin display name (the config field `name`, not the internal `actualName` from GetName()) | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: Successful response | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/management/plugins.yaml#/Plugin' | |
| '400': | |
| $ref: '../../openapi.yaml#/components/responses/BadRequest' | |
| '404': | |
| description: Plugin not found | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/inference/common.yaml#/BifrostError' | |
| '500': | |
| $ref: '../../openapi.yaml#/components/responses/InternalError' | |
| put: | |
| operationId: updatePlugin | |
| summary: Update a plugin | |
| description: | | |
| Updates a plugin's configuration. Will reload or stop the plugin based on enabled status. | |
| The response `actualName` field shows the plugin name from GetName() (used as the map key), | |
| which may differ from the display name (`name`). | |
| tags: | |
| - Plugins | |
| parameters: | |
| - name: name | |
| in: path | |
| required: true | |
| description: Plugin display name (the config field `name`, not the internal `actualName` from GetName()) | |
| schema: | |
| type: string | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/management/plugins.yaml#/UpdatePluginRequest' | |
| responses: | |
| '200': | |
| description: Plugin updated successfully | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/management/plugins.yaml#/PluginResponse' | |
| '400': | |
| $ref: '../../openapi.yaml#/components/responses/BadRequest' | |
| '404': | |
| description: Plugin not found | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/inference/common.yaml#/BifrostError' | |
| '500': | |
| $ref: '../../openapi.yaml#/components/responses/InternalError' | |
| delete: | |
| operationId: deletePlugin | |
| summary: Delete a plugin | |
| description: Removes a plugin from the configuration and stops it if running. | |
| tags: | |
| - Plugins | |
| parameters: | |
| - name: name | |
| in: path | |
| required: true | |
| description: Plugin display name (the config field `name`, not the internal `actualName` from GetName()) | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: Plugin deleted successfully | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/management/common.yaml#/MessageResponse' | |
| '400': | |
| $ref: '../../openapi.yaml#/components/responses/BadRequest' | |
| '404': | |
| description: Plugin not found | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '../../schemas/inference/common.yaml#/BifrostError' | |
| '500': | |
| $ref: '../../openapi.yaml#/components/responses/InternalError' | |