openapi: 3.2.0 info: title: LiteLLM Policies API description: "Enterprise Edition \n\nProxy Server to call 100+ LLMs in the OpenAI format. [**Customize Swagger Docs**](https://docs.litellm.ai/docs/proxy/enterprise#swagger-docs---custom-routes--branding)\n\n\U0001F449 [```LiteLLM Admin Panel on /ui```](/ui). Create, Edit Keys with SSO. Having issues? Try [```Fallback Login```](/fallback/login)\n\n\U0001F4B8 [```LiteLLM Model Cost Map```](https://models.litellm.ai/).\n\n\U0001F50E [```LiteLLM Model Hub```](/ui/model_hub_table). See available models on the proxy. [**Docs**](https://docs.litellm.ai/docs/proxy/ai_hub)" version: 1.95.0 x-operator: institution x-provenance: method: probed source: https://llmproxy.uva.nl/openapi.json retrieved: '2026-08-19' note: Document is generated by the LiteLLM proxy software the University of Amsterdam self-hosts; the deployment, the key issuance and the host (llmproxy.uva.nl, UvA Azure) are the institution's. servers[] added by API Evangelist because the served document omits it; nothing else altered. servers: - url: https://llmproxy.uva.nl description: University of Amsterdam / Amsterdam University of Applied Sciences shared AI gateway tags: - name: Policies paths: /policies/list: get: tags: - Policies summary: List Policies description: "List all policies from the database. Optionally filter by version_status.\n\nQuery params:\n- version_status: Optional. One of \"draft\", \"published\", \"production\".\n If omitted, all versions are returned.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/list\" \\\n -H \"Authorization: Bearer \"\ncurl -X GET \"http://localhost:4000/policies/list?version_status=production\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"policies\": [\n {\n \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"global-baseline\",\n \"version_number\": 1,\n \"version_status\": \"production\",\n \"inherit\": null,\n \"description\": \"Base guardrails for all requests\",\n \"guardrails_add\": [\"pii_masking\"],\n \"guardrails_remove\": [],\n \"condition\": null,\n \"created_at\": \"2024-01-01T00:00:00Z\",\n \"updated_at\": \"2024-01-01T00:00:00Z\"\n }\n ],\n \"total_count\": 1\n}\n```" operationId: list_policies_policies_list_get security: - APIKeyHeader: [] parameters: - name: version_status in: query required: false schema: anyOf: - type: string - type: 'null' title: Version Status responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyListDBResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policies: post: tags: - Policies summary: Create Policy description: "Create a new policy.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"policy_name\": \"global-baseline\",\n \"description\": \"Base guardrails for all requests\",\n \"guardrails_add\": [\"pii_masking\", \"prompt_injection\"],\n \"guardrails_remove\": []\n }'\n```\n\nExample Response:\n```json\n{\n \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"global-baseline\",\n \"inherit\": null,\n \"description\": \"Base guardrails for all requests\",\n \"guardrails_add\": [\"pii_masking\", \"prompt_injection\"],\n \"guardrails_remove\": [],\n \"condition\": null,\n \"created_at\": \"2024-01-01T00:00:00Z\",\n \"updated_at\": \"2024-01-01T00:00:00Z\"\n}\n```" operationId: create_policy_policies_post requestBody: content: application/json: schema: $ref: '#/components/schemas/PolicyCreateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyDBResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /policies/name/{policy_name}/versions: get: tags: - Policies summary: List Policy Versions description: List all versions of a policy by name, ordered by version_number descending. operationId: list_policy_versions_policies_name__policy_name__versions_get security: - APIKeyHeader: [] parameters: - name: policy_name in: path required: true schema: type: string title: Policy Name responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyVersionListResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - Policies summary: Create Policy Version description: 'Create a new draft version of a policy. Copies all fields from the source. Source is current production if source_policy_id is not provided.' operationId: create_policy_version_policies_name__policy_name__versions_post security: - APIKeyHeader: [] parameters: - name: policy_name in: path required: true schema: type: string title: Policy Name requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PolicyVersionCreateRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyDBResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policies/{policy_id}/status: put: tags: - Policies summary: Update Policy Version Status description: 'Update a policy version''s status. Valid transitions: - draft -> published - published -> production (demotes current production to published) - production -> published (demotes, policy becomes inactive)' operationId: update_policy_version_status_policies__policy_id__status_put security: - APIKeyHeader: [] parameters: - name: policy_id in: path required: true schema: type: string title: Policy Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PolicyVersionStatusUpdateRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyDBResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policies/compare: get: tags: - Policies summary: Compare Policy Versions description: 'Compare two policy versions. Query params: version_a, version_b (policy version IDs).' operationId: compare_policy_versions_policies_compare_get security: - APIKeyHeader: [] parameters: - name: version_a in: query required: true schema: type: string title: Version A - name: version_b in: query required: true schema: type: string title: Version B responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyVersionCompareResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policies/name/{policy_name}/all-versions: delete: tags: - Policies summary: Delete All Policy Versions description: Delete all versions of a policy. Also removes from in-memory registry. operationId: delete_all_policy_versions_policies_name__policy_name__all_versions_delete security: - APIKeyHeader: [] parameters: - name: policy_name in: path required: true schema: type: string title: Policy Name responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policies/{policy_id}: get: tags: - Policies summary: Get Policy description: "Get a policy by ID.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```" operationId: get_policy_policies__policy_id__get security: - APIKeyHeader: [] parameters: - name: policy_id in: path required: true schema: type: string title: Policy Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyDBResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - Policies summary: Update Policy description: "Update an existing policy.\n\nExample Request:\n```bash\ncurl -X PUT \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"description\": \"Updated description\",\n \"guardrails_add\": [\"pii_masking\", \"toxicity_filter\"]\n }'\n```" operationId: update_policy_policies__policy_id__put security: - APIKeyHeader: [] parameters: - name: policy_id in: path required: true schema: type: string title: Policy Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PolicyUpdateRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyDBResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Policies summary: Delete Policy description: "Delete a policy.\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Policy 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```" operationId: delete_policy_policies__policy_id__delete security: - APIKeyHeader: [] parameters: - name: policy_id in: path required: true schema: type: string title: Policy Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policies/{policy_id}/resolved-guardrails: get: tags: - Policies summary: Get Resolved Guardrails description: "Get the resolved guardrails for a policy (including inherited guardrails).\n\nThis endpoint resolves the full inheritance chain and returns the final\nset of guardrails that would be applied for this policy.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000/resolved-guardrails\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"healthcare-compliance\",\n \"resolved_guardrails\": [\"pii_masking\", \"prompt_injection\", \"toxicity_filter\"]\n}\n```" operationId: get_resolved_guardrails_policies__policy_id__resolved_guardrails_get security: - APIKeyHeader: [] parameters: - name: policy_id in: path required: true schema: type: string title: Policy Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policies/test-pipeline: post: tags: - Policies summary: Test Pipeline description: "Test a guardrail pipeline with sample messages.\n\nExecutes the pipeline steps against the provided test messages and returns\nstep-by-step results showing which guardrails passed/failed, actions taken,\nand timing information.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/test-pipeline\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"pipeline\": {\n \"mode\": \"pre_call\",\n \"steps\": [\n {\"guardrail\": \"pii-guard\", \"on_pass\": \"next\", \"on_fail\": \"block\"}\n ]\n },\n \"test_messages\": [{\"role\": \"user\", \"content\": \"My SSN is 123-45-6789\"}]\n }'\n```" operationId: test_pipeline_policies_test_pipeline_post requestBody: content: application/json: schema: $ref: '#/components/schemas/PipelineTestRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /policies/attachments/list: get: tags: - Policies summary: List Policy Attachments description: "List all policy attachments from the database.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/attachments/list\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"attachments\": [\n {\n \"attachment_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"global-baseline\",\n \"scope\": \"*\",\n \"teams\": [],\n \"keys\": [],\n \"models\": [],\n \"created_at\": \"2024-01-01T00:00:00Z\",\n \"updated_at\": \"2024-01-01T00:00:00Z\"\n }\n ],\n \"total_count\": 1\n}\n```" operationId: list_policy_attachments_policies_attachments_list_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyAttachmentListResponse' security: - APIKeyHeader: [] /policies/attachments: post: tags: - Policies summary: Create Policy Attachment description: "Create a new policy attachment.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"policy_name\": \"global-baseline\",\n \"scope\": \"*\"\n }'\n```\n\nExample with team-specific attachment:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"policy_name\": \"healthcare-compliance\",\n \"teams\": [\"healthcare-team\", \"medical-research\"]\n }'\n```\n\nExample Response:\n```json\n{\n \"attachment_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"global-baseline\",\n \"scope\": \"*\",\n \"teams\": [],\n \"keys\": [],\n \"models\": [],\n \"created_at\": \"2024-01-01T00:00:00Z\",\n \"updated_at\": \"2024-01-01T00:00:00Z\"\n}\n```" operationId: create_policy_attachment_policies_attachments_post requestBody: content: application/json: schema: $ref: '#/components/schemas/PolicyAttachmentCreateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyAttachmentDBResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /policies/attachments/{attachment_id}: get: tags: - Policies summary: Get Policy Attachment description: "Get a policy attachment by ID.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/attachments/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```" operationId: get_policy_attachment_policies_attachments__attachment_id__get security: - APIKeyHeader: [] parameters: - name: attachment_id in: path required: true schema: type: string title: Attachment Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PolicyAttachmentDBResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Policies summary: Delete Policy Attachment description: "Delete a policy attachment.\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/policies/attachments/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Attachment 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```" operationId: delete_policy_attachment_policies_attachments__attachment_id__delete security: - APIKeyHeader: [] parameters: - name: attachment_id in: path required: true schema: type: string title: Attachment Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policies/usage/overview: get: tags: - Policies summary: Policies Usage Overview description: Return policy performance overview for the dashboard. operationId: policies_usage_overview_policies_usage_overview_get security: - APIKeyHeader: [] parameters: - name: start_date in: query required: false schema: anyOf: - type: string - type: 'null' description: YYYY-MM-DD title: Start Date description: YYYY-MM-DD - name: end_date in: query required: false schema: anyOf: - type: string - type: 'null' description: YYYY-MM-DD title: End Date description: YYYY-MM-DD responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UsageOverviewResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /policy/info/{policy_name}: get: description: 'Get detailed information about a specific policy. Returns: - Policy configuration - Resolved guardrails (after inheritance) - Inheritance chain' operationId: get_policy_info_policy_info__policy_name__get parameters: - in: path name: policy_name required: true schema: title: Policy Name type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/PolicyInfoResponse' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Get Policy Info tags: - Policies /policy/list: get: description: 'List all loaded policies with their resolved guardrails. Returns information about each policy including: - Inheritance configuration - Scope (teams, keys, models) - Guardrails to add/remove - Resolved guardrails (after inheritance) - Inheritance chain' operationId: list_policies_policy_list_get responses: '200': content: application/json: schema: $ref: '#/components/schemas/PolicyListResponse' description: Successful Response security: - APIKeyHeader: [] summary: List Policies tags: - Policies /policy/templates: get: description: 'Get policy templates for the UI (pre-configured guardrail combinations). Fetches from GitHub with automatic fallback to local backup on failure. Set LITELLM_LOCAL_POLICY_TEMPLATES=true to skip GitHub and use local backup only.' operationId: get_policy_templates_policy_templates_get responses: '200': content: application/json: schema: items: {} title: Response Get Policy Templates Policy Templates Get type: array description: Successful Response security: - APIKeyHeader: [] summary: Get Policy Templates tags: - Policies /policy/templates/enrich: post: description: 'Enrich a policy template with LLM-discovered data (e.g. competitor names). Calls an onboarded LLM to discover competitors for the given brand name, then returns enriched guardrailDefinitions with the discovered data populated.' operationId: enrich_policy_template_policy_templates_enrich_post requestBody: content: application/json: schema: $ref: '#/components/schemas/EnrichTemplateRequest' required: true responses: '200': content: application/json: schema: additionalProperties: true title: Response Enrich Policy Template Policy Templates Enrich Post type: object description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Enrich Policy Template tags: - Policies /policy/templates/enrich/stream: post: description: 'Stream competitor names as SSE events as the LLM generates them. Events: - data: {"type": "competitor", "name": "..."} — each competitor as discovered - data: {"type": "done", "competitors": [...], "competitor_variations": {...}, "guardrailDefinitions": [...]}' operationId: enrich_policy_template_stream_policy_templates_enrich_stream_post requestBody: content: application/json: schema: $ref: '#/components/schemas/EnrichTemplateRequest' required: true responses: '200': content: application/json: schema: {} description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Enrich Policy Template Stream tags: - Policies /policy/templates/suggest: post: description: 'Use AI to suggest policy templates based on attack examples and descriptions. Calls an LLM with tool calling to match user requirements to available templates.' operationId: suggest_policy_templates_policy_templates_suggest_post requestBody: content: application/json: schema: $ref: '#/components/schemas/SuggestTemplatesRequest' required: true responses: '200': content: application/json: schema: additionalProperties: true title: Response Suggest Policy Templates Policy Templates Suggest Post type: object description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Suggest Policy Templates tags: - Policies /policy/templates/test: post: description: 'Test a policy template''s guardrails against a text input without creating them. Instantiates temporary guardrails from the template definitions, runs them against the provided text, and returns per-guardrail results so users can verify the template solves their problem before creating it.' operationId: test_policy_template_policy_templates_test_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TestPolicyTemplateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TestPolicyTemplateResponse' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Test Policy Template tags: - Policies /policy/test: post: description: "Test which policies would match a given request context.\n\nThis is useful for debugging and understanding policy behavior.\n\nRequest body:\n```json\n{\n \"team_alias\": \"healthcare-team\",\n \"key_alias\": \"my-api-key\",\n \"model\": \"gpt-4\"\n}\n```\n\nReturns:\n- matching_policies: List of policy names that match\n- resolved_guardrails: Final list of guardrails that would be applied" operationId: test_policy_matching_policy_test_post requestBody: content: application/json: schema: $ref: '#/components/schemas/PolicyMatchContext' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/PolicyTestResponse' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Test Policy Matching tags: - Policies /policy/validate: post: description: "Validate a policy configuration before applying it.\n\nChecks:\n- All referenced guardrails exist in the guardrail registry\n- All non-wildcard team aliases exist in the database\n- All non-wildcard key aliases exist in the database\n- Inheritance chains are valid (no cycles, parents exist)\n- Scope patterns are syntactically valid\n\nReturns:\n- valid: True if the policy configuration is valid (no blocking errors)\n- errors: List of blocking validation errors\n- warnings: List of non-blocking validation warnings\n\nExample request:\n```json\n{\n \"policies\": {\n \"global-baseline\": {\n \"guardrails\": {\n \"add\": [\"pii_blocker\", \"phi_blocker\"]\n },\n \"scope\": {\n \"teams\": [\"*\"],\n \"keys\": [\"*\"],\n \"models\": [\"*\"]\n }\n },\n \"healthcare-compliance\": {\n \"inherit\": \"global-baseline\",\n \"guardrails\": {\n \"add\": [\"hipaa_audit\"]\n },\n \"scope\": {\n \"teams\": [\"healthcare-team\"]\n }\n }\n }\n}\n```" operationId: validate_policy_policy_validate_post requestBody: content: application/json: schema: $ref: '#/components/schemas/PolicyValidateRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/PolicyValidationResponse' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Validate Policy tags: - Policies /utils/test_policies_and_guardrails: post: description: 'Apply policies and/or guardrails to inputs (for compliance UI testing). Use inputs_list for batch testing: each input is processed as a separate call so per-input block/allow and errors are returned. Use inputs for a single call (legacy).' operationId: test_policies_and_guardrails_utils_test_policies_and_guardrails_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TestPoliciesAndGuardrailsRequest' required: true responses: '200': content: application/json: schema: {} description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - APIKeyHeader: [] summary: Test Policies And Guardrails tags: - Policies components: schemas: UsageOverviewRow: properties: id: type: string title: Id name: type: string title: Name type: type: string title: Type provider: type: string title: Provider requestsEvaluated: type: integer title: Requestsevaluated failRate: type: number title: Failrate avgScore: anyOf: - type: number - type: 'null' title: Avgscore avgLatency: anyOf: - type: number - type: 'null' title: Avglatency status: type: string title: Status trend: type: string title: Trend type: object required: - id - name - type - provider - requestsEvaluated - failRate - avgScore - avgLatency - status - trend title: UsageOverviewRow PolicyCreateRequest: properties: policy_name: type: string title: Policy Name description: Unique name for the policy. inherit: anyOf: - type: string - type: 'null' title: Inherit description: Name of parent policy to inherit from. description: anyOf: - type: string - type: 'null' title: Description description: Human-readable description of the policy. guardrails_add: anyOf: - items: type: string type: array - type: 'null' title: Guardrails Add description: List of guardrail names to add. guardrails_remove: anyOf: - items: type: string type: array - type: 'null' title: Guardrails Remove description: List of guardrail names to remove (from inherited). condition: anyOf: - $ref: '#/components/schemas/PolicyConditionRequest' - type: 'null' description: Condition for when this policy applies. pipeline: anyOf: - additionalProperties: true type: object - type: 'null' title: Pipeline description: Optional guardrail pipeline for ordered execution. Contains 'mode' and 'steps'. type: object required: - policy_name title: PolicyCreateRequest description: Request body for creating a new policy. PolicyDBResponse: properties: policy_id: type: string title: Policy Id description: Unique ID of the policy. policy_name: type: string title: Policy Name description: Name of the policy. version_number: type: integer title: Version Number description: Version number of this policy. default: 1 version_status: type: string title: Version Status description: 'One of: draft, published, production.' default: production parent_version_id: anyOf: - type: string - type: 'null' title: Parent Version Id description: Policy ID this version was cloned from. is_latest: type: boolean title: Is Latest description: True if this is the latest version by version_number. default: true published_at: anyOf: - type: string format: date-time - type: 'null' title: Published At description: When this version was published. production_at: anyOf: - type: string format: date-time - type: 'null' title: Production At description: When this version was promoted to production. inherit: anyOf: - type: string - type: 'null' title: Inherit description: Parent policy name. description: anyOf: - type: string - type: 'null' title: Description description: Policy description. guardrails_add: items: type: string type: array title: Guardrails Add description: Guardrails to add. guardrails_remove: items: type: string type: array title: Guardrails Remove description: Guardrails to remove. condition: anyOf: - additionalProperties: true type: object - type: 'null' title: Condition description: Policy condition. pipeline: anyOf: - additionalProperties: true type: object - type: 'null' title: Pipeline description: Optional guardrail pipeline. created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At description: When the policy was created. updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At description: When the policy was last updated. created_by: anyOf: - type: string - type: 'null' title: Created By description: Who created the policy. updated_by: anyOf: - type: string - type: 'null' title: Updated By description: Who last updated the policy. type: object required: - policy_id - policy_name title: PolicyDBResponse description: Response for a policy from the database. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError PolicyAttachmentListResponse: properties: attachments: items: $ref: '#/components/schemas/PolicyAttachmentDBResponse' type: array title: Attachments description: List of policy attachments. total_count: type: integer title: Total Count description: Total number of attachments. default: 0 type: object title: PolicyAttachmentListResponse description: Response for listing policy attachments. PolicyAttachmentDBResponse: properties: attachment_id: type: string title: Attachment Id description: Unique ID of the attachment. policy_name: type: string title: Policy Name description: Name of the attached policy. scope: anyOf: - type: string - type: 'null' title: Scope description: Scope of the attachment. teams: items: type: string type: array title: Teams description: Team patterns. keys: items: type: string type: array title: Keys description: Key patterns. models: items: type: string type: array title: Models description: Model patterns. tags: items: type: string type: array title: Tags description: Tag patterns. created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At description: When the attachment was created. updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At description: When the attachment was last updated. created_by: anyOf: - type: string - type: 'null' title: Created By description: Who created the attachment. updated_by: anyOf: - type: string - type: 'null' title: Updated By description: Who last updated the attachment. type: object required: - attachment_id - policy_name title: PolicyAttachmentDBResponse description: Response for a policy attachment from the database. UsageOverviewResponse: properties: rows: items: $ref: '#/components/schemas/UsageOverviewRow' type: array title: Rows chart: items: $ref: '#/components/schemas/UsageChartPoint' type: array title: Chart totalRequests: type: integer title: Totalrequests totalBlocked: type: integer title: Totalblocked passRate: type: number title: Passrate type: object required: - rows - chart - totalRequests - totalBlocked - passRate title: UsageOverviewResponse PipelineTestRequest: properties: pipeline: additionalProperties: true type: object title: Pipeline description: Pipeline definition with 'mode' and 'steps'. test_messages: items: additionalProperties: type: string type: object type: array title: Test Messages description: 'Test messages to run through the pipeline, e.g. [{''role'': ''user'', ''content'': ''...''}].' type: object required: - pipeline - test_messages title: PipelineTestRequest description: Request body for testing a guardrail pipeline with sample messages. PolicyAttachmentCreateRequest: properties: policy_name: type: string title: Policy Name description: Name of the policy to attach. scope: anyOf: - type: string - type: 'null' title: Scope description: Use '*' for global scope (applies to all requests). teams: anyOf: - items: type: string type: array - type: 'null' title: Teams description: Team aliases or patterns this attachment applies to. keys: anyOf: - items: type: string type: array - type: 'null' title: Keys description: Key aliases or patterns this attachment applies to. models: anyOf: - items: type: string type: array - type: 'null' title: Models description: Model names or patterns this attachment applies to. tags: anyOf: - items: type: string type: array - type: 'null' title: Tags description: Tag patterns this attachment applies to. Supports wildcards (e.g., health-*). type: object required: - policy_name title: PolicyAttachmentCreateRequest description: Request body for creating a policy attachment. PolicyVersionCompareResponse: properties: version_a: $ref: '#/components/schemas/PolicyDBResponse' description: First version. version_b: $ref: '#/components/schemas/PolicyDBResponse' description: Second version. field_diffs: additionalProperties: additionalProperties: true type: object type: object title: Field Diffs description: 'Field name -> {version_a: val, version_b: val} for differing fields.' type: object required: - version_a - version_b title: PolicyVersionCompareResponse description: Response for comparing two policy versions. UsageChartPoint: properties: date: type: string title: Date passed: type: integer title: Passed blocked: type: integer title: Blocked score: anyOf: - type: number - type: 'null' title: Score type: object required: - date - passed - blocked title: UsageChartPoint PolicyVersionStatusUpdateRequest: properties: version_status: type: string title: Version Status description: 'New status: ''published'' or ''production''.' type: object required: - version_status title: PolicyVersionStatusUpdateRequest description: Request body for updating a policy version's status. ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError PolicyListDBResponse: properties: policies: items: $ref: '#/components/schemas/PolicyDBResponse' type: array title: Policies description: List of policies. total_count: type: integer title: Total Count description: Total number of policies. default: 0 type: object title: PolicyListDBResponse description: Response for listing policies from the database. PolicyConditionRequest: properties: model: anyOf: - type: string - type: 'null' title: Model description: Model name pattern (exact match or regex) for when policy applies. type: object title: PolicyConditionRequest description: Condition for when a policy applies. PolicyVersionListResponse: properties: policy_name: type: string title: Policy Name description: Name of the policy. versions: items: $ref: '#/components/schemas/PolicyDBResponse' type: array title: Versions description: All versions ordered by version_number desc. total_count: type: integer title: Total Count description: Total number of versions. default: 0 type: object required: - policy_name title: PolicyVersionListResponse description: Response for listing all versions of a policy. PolicyVersionCreateRequest: properties: source_policy_id: anyOf: - type: string - type: 'null' title: Source Policy Id description: Policy ID to clone from. If None, clone from current production version. type: object title: PolicyVersionCreateRequest description: Request body for creating a new policy version (draft). PolicyUpdateRequest: properties: policy_name: anyOf: - type: string - type: 'null' title: Policy Name description: New name for the policy. inherit: anyOf: - type: string - type: 'null' title: Inherit description: Name of parent policy to inherit from. description: anyOf: - type: string - type: 'null' title: Description description: Human-readable description of the policy. guardrails_add: anyOf: - items: type: string type: array - type: 'null' title: Guardrails Add description: List of guardrail names to add. guardrails_remove: anyOf: - items: type: string type: array - type: 'null' title: Guardrails Remove description: List of guardrail names to remove (from inherited). condition: anyOf: - $ref: '#/components/schemas/PolicyConditionRequest' - type: 'null' description: Condition for when this policy applies. pipeline: anyOf: - additionalProperties: true type: object - type: 'null' title: Pipeline description: Optional guardrail pipeline for ordered execution. Contains 'mode' and 'steps'. type: object title: PolicyUpdateRequest description: Request body for updating a policy. ChatCompletionAssistantMessage: properties: role: const: assistant title: Role type: string content: anyOf: - type: string - items: anyOf: - $ref: '#/components/schemas/ChatCompletionTextObject' - $ref: '#/components/schemas/ChatCompletionThinkingBlock' - $ref: '#/components/schemas/ChatCompletionRedactedThinkingBlock' - $ref: '#/components/schemas/ChatCompletionImageObject' type: array - type: 'null' title: Content name: anyOf: - type: string - type: 'null' title: Name tool_calls: anyOf: - items: $ref: '#/components/schemas/ChatCompletionAssistantToolCall' type: array - type: 'null' title: Tool Calls function_call: anyOf: - $ref: '#/components/schemas/ChatCompletionToolCallFunctionChunk' - type: 'null' reasoning_content: anyOf: - type: string - type: 'null' title: Reasoning Content cache_control: $ref: '#/components/schemas/ChatCompletionCachedContent' thinking_blocks: anyOf: - items: anyOf: - $ref: '#/components/schemas/ChatCompletionThinkingBlock' - $ref: '#/components/schemas/ChatCompletionRedactedThinkingBlock' type: array - type: 'null' title: Thinking Blocks reasoning_items: anyOf: - items: $ref: '#/components/schemas/ChatCompletionReasoningItem' type: array - type: 'null' title: Reasoning Items required: - role title: ChatCompletionAssistantMessage type: object PolicyInfoResponse: description: Response for /policy/info/{policy_name} endpoint. properties: guardrails: $ref: '#/components/schemas/PolicyGuardrailsResponse' inherit: anyOf: - type: string - type: 'null' title: Inherit inheritance_chain: items: type: string title: Inheritance Chain type: array policy_name: title: Policy Name type: string resolved_guardrails: items: type: string title: Resolved Guardrails type: array scope: $ref: '#/components/schemas/PolicyScopeResponse' required: - policy_name - scope - guardrails - resolved_guardrails - inheritance_chain title: PolicyInfoResponse type: object ChatCompletionAudioObject: properties: input_audio: $ref: '#/components/schemas/InputAudio' type: const: input_audio title: Type type: string required: - input_audio - type title: ChatCompletionAudioObject type: object DocumentObject: properties: type: const: text title: Type type: string media_type: title: Media Type type: string data: title: Data type: string required: - type - media_type - data title: DocumentObject type: object PolicyValidationErrorType: description: Types of validation errors that can occur. enum: - invalid_guardrail - invalid_team - invalid_key - invalid_model - invalid_inheritance - circular_inheritance - invalid_scope - invalid_syntax title: PolicyValidationErrorType type: string ChatCompletionToolCallFunctionChunk: properties: name: anyOf: - type: string - type: 'null' title: Name arguments: title: Arguments type: string provider_specific_fields: anyOf: - additionalProperties: true type: object - type: 'null' title: Provider Specific Fields title: ChatCompletionToolCallFunctionChunk type: object GuardrailTestResultEntry: properties: action: title: Action type: string details: title: Details type: string guardrail_name: title: Guardrail Name type: string output_text: title: Output Text type: string required: - guardrail_name - action - output_text - details title: GuardrailTestResultEntry type: object ChatCompletionAssistantToolCall: properties: id: anyOf: - type: string - type: 'null' title: Id type: const: function title: Type type: string function: $ref: '#/components/schemas/ChatCompletionToolCallFunctionChunk' required: - id - type - function title: ChatCompletionAssistantToolCall type: object ChatCompletionFunctionMessage: properties: role: const: function title: Role type: string content: anyOf: - type: string - items: $ref: '#/components/schemas/ChatCompletionTextObject' type: array - type: 'null' title: Content name: title: Name type: string tool_call_id: anyOf: - type: string - type: 'null' title: Tool Call Id required: - role - content - name - tool_call_id title: ChatCompletionFunctionMessage type: object ChatCompletionUserMessage: properties: role: const: user title: Role type: string content: anyOf: - type: string - items: anyOf: - $ref: '#/components/schemas/ChatCompletionTextObject' - $ref: '#/components/schemas/ChatCompletionImageObject' - $ref: '#/components/schemas/ChatCompletionAudioObject' - $ref: '#/components/schemas/ChatCompletionDocumentObject' - $ref: '#/components/schemas/ChatCompletionVideoObject' - $ref: '#/components/schemas/ChatCompletionFileObject' type: array title: Content cache_control: $ref: '#/components/schemas/ChatCompletionCachedContent' required: - role - content title: ChatCompletionUserMessage type: object InputAudio: properties: data: title: Data type: string format: enum: - wav - mp3 title: Format type: string required: - data - format title: InputAudio type: object ChatCompletionVideoUrlObject: properties: url: title: Url type: string detail: title: Detail type: string required: - url title: ChatCompletionVideoUrlObject type: object PolicyListResponse: description: Response for /policy/list endpoint. properties: policies: additionalProperties: $ref: '#/components/schemas/PolicySummaryItem' title: Policies type: object total_count: title: Total Count type: integer required: - policies - total_count title: PolicyListResponse type: object SuggestTemplatesRequest: properties: attack_examples: items: type: string title: Attack Examples type: array description: default: '' title: Description type: string model: anyOf: - type: string - type: 'null' title: Model title: SuggestTemplatesRequest type: object ChatCompletionDocumentObject: properties: type: const: document title: Type type: string source: $ref: '#/components/schemas/DocumentObject' title: title: Title type: string context: title: Context type: string citations: anyOf: - $ref: '#/components/schemas/CitationsObject' - type: 'null' required: - type - source - title - context - citations title: ChatCompletionDocumentObject type: object ChatCompletionImageObject: properties: type: const: image_url title: Type type: string image_url: anyOf: - type: string - $ref: '#/components/schemas/ChatCompletionImageUrlObject' title: Image Url required: - type - image_url title: ChatCompletionImageObject type: object PolicyMatchContext: additionalProperties: false description: 'Context used to match a request against policies. Contains the team alias, key alias, and model from the incoming request.' properties: key_alias: anyOf: - type: string - type: 'null' description: API key alias from the request. title: Key Alias model: anyOf: - type: string - type: 'null' description: Model name from the request. title: Model tags: anyOf: - items: type: string type: array - type: 'null' description: Tags from key/team metadata. title: Tags team_alias: anyOf: - type: string - type: 'null' description: Team alias from the request. title: Team Alias title: PolicyMatchContext type: object ChatCompletionRedactedThinkingBlock: properties: type: const: redacted_thinking title: Type type: string data: title: Data type: string cache_control: anyOf: - additionalProperties: true type: object - $ref: '#/components/schemas/ChatCompletionCachedContent' - type: 'null' title: Cache Control required: - type title: ChatCompletionRedactedThinkingBlock type: object PolicyScopeResponse: description: Scope configuration for a policy. properties: keys: items: type: string title: Keys type: array models: items: type: string title: Models type: array tags: items: type: string title: Tags type: array teams: items: type: string title: Teams type: array title: PolicyScopeResponse type: object TestPolicyTemplateRequest: properties: guardrail_definitions: description: All guardrailDefinitions from the policy template items: additionalProperties: true type: object title: Guardrail Definitions type: array text: description: Test input text to run guardrails against title: Text type: string required: - guardrail_definitions - text title: TestPolicyTemplateRequest type: object EnrichTemplateRequest: properties: competitors: anyOf: - items: type: string maxItems: 100 type: array - type: 'null' description: Optional list of competitor names title: Competitors instruction: anyOf: - type: string - type: 'null' description: Refinement instruction for modifying the competitor list (e.g. 'add 10 more from Asia') title: Instruction model: anyOf: - type: string - type: 'null' title: Model parameters: additionalProperties: true title: Parameters type: object template_id: title: Template Id type: string required: - template_id - parameters title: EnrichTemplateRequest type: object ChatCompletionSystemMessage: properties: role: const: system title: Role type: string content: anyOf: - type: string - items: {} type: array title: Content name: title: Name type: string cache_control: $ref: '#/components/schemas/ChatCompletionCachedContent' required: - role - content title: ChatCompletionSystemMessage type: object ChatCompletionToolCallChunk: properties: function: $ref: '#/components/schemas/ChatCompletionToolCallFunctionChunk' id: anyOf: - type: string - type: 'null' title: Id index: title: Index type: integer type: const: function title: Type type: string required: - id - type - function - index title: ChatCompletionToolCallChunk type: object ChatCompletionToolMessage: properties: role: const: tool title: Role type: string content: anyOf: - type: string - items: $ref: '#/components/schemas/ChatCompletionTextObject' type: array title: Content tool_call_id: title: Tool Call Id type: string required: - role - content - tool_call_id title: ChatCompletionToolMessage type: object ChatCompletionMessageToolCall: properties: {} additionalProperties: true type: object title: ChatCompletionMessageToolCall PolicyGuardrailsResponse: description: Guardrails configuration for a policy. properties: add: items: type: string title: Add type: array remove: items: type: string title: Remove type: array title: PolicyGuardrailsResponse type: object ChatCompletionFileObjectFile: properties: file_data: title: File Data type: string file_id: title: File Id type: string filename: title: Filename type: string format: title: Format type: string detail: title: Detail type: string video_metadata: additionalProperties: true title: Video Metadata type: object title: ChatCompletionFileObjectFile type: object TestPoliciesAndGuardrailsRequest: description: Request body for POST /utils/test_policies_and_guardrails. properties: agent_id: anyOf: - type: string - type: 'null' description: When set, call chat completion with this model/agent for each input and include the response in the result. title: Agent Id guardrail_names: anyOf: - items: type: string type: array - type: 'null' description: Guardrail names to apply directly title: Guardrail Names input_type: default: request description: Whether inputs are request or response enum: - request - response title: Input Type type: string inputs_list: default: [] description: List of GenericGuardrailAPIInputs; each item processed separately (for batch compliance testing). items: $ref: '#/components/schemas/GenericGuardrailAPIInputs' title: Inputs List type: array policy_names: anyOf: - items: type: string type: array - type: 'null' description: Policy names to resolve guardrails from title: Policy Names request_data: additionalProperties: true description: Request context (model, user_id, etc.) title: Request Data type: object title: TestPoliciesAndGuardrailsRequest type: object PolicyValidationResponse: additionalProperties: false description: 'Response from policy validation. - `valid`: True if no blocking errors were found - `errors`: List of blocking errors (prevent policy from being applied) - `warnings`: List of non-blocking warnings (policy can still be applied)' properties: errors: description: List of blocking validation errors. items: $ref: '#/components/schemas/PolicyValidationError' title: Errors type: array valid: description: True if the policy configuration is valid. title: Valid type: boolean warnings: description: List of non-blocking validation warnings. items: $ref: '#/components/schemas/PolicyValidationError' title: Warnings type: array required: - valid title: PolicyValidationResponse type: object ChatCompletionToolParam: properties: cache_control: $ref: '#/components/schemas/ChatCompletionCachedContent' function: $ref: '#/components/schemas/ChatCompletionToolParamFunctionChunk' type: anyOf: - const: function type: string - type: string title: Type required: - type - function title: ChatCompletionToolParam type: object PolicyTestResponse: description: Response for /policy/test endpoint. properties: context: $ref: '#/components/schemas/PolicyMatchContext' matching_policies: items: type: string title: Matching Policies type: array message: anyOf: - type: string - type: 'null' title: Message resolved_guardrails: items: type: string title: Resolved Guardrails type: array required: - context - matching_policies - resolved_guardrails title: PolicyTestResponse type: object ChatCompletionDeveloperMessage: properties: role: const: developer title: Role type: string content: anyOf: - type: string - items: {} type: array title: Content name: title: Name type: string cache_control: $ref: '#/components/schemas/ChatCompletionCachedContent' required: - role - content title: ChatCompletionDeveloperMessage type: object PolicySummaryItem: description: Summary of a single policy for list endpoint. properties: guardrails: $ref: '#/components/schemas/PolicyGuardrailsResponse' inherit: anyOf: - type: string - type: 'null' title: Inherit inheritance_chain: items: type: string title: Inheritance Chain type: array resolved_guardrails: items: type: string title: Resolved Guardrails type: array scope: $ref: '#/components/schemas/PolicyScopeResponse' required: - scope - guardrails - resolved_guardrails - inheritance_chain title: PolicySummaryItem type: object PolicyValidationError: additionalProperties: false description: Represents a validation error or warning for a policy. properties: error_type: $ref: '#/components/schemas/PolicyValidationErrorType' description: Type of validation error. field: anyOf: - type: string - type: 'null' description: Specific field that caused the error (e.g., 'guardrails.add', 'scope.teams'). title: Field message: description: Human-readable error message. title: Message type: string policy_name: description: Name of the policy with the issue. title: Policy Name type: string value: anyOf: - type: string - type: 'null' description: The invalid value that caused the error. title: Value required: - policy_name - error_type - message title: PolicyValidationError type: object PolicyValidateRequest: additionalProperties: false description: Request body for the /policy/validate endpoint. properties: policies: additionalProperties: true description: Policy configuration to validate. Map of policy names to policy definitions. title: Policies type: object required: - policies title: PolicyValidateRequest type: object ChatCompletionFileObject: properties: type: const: file title: Type type: string file: $ref: '#/components/schemas/ChatCompletionFileObjectFile' required: - type - file title: ChatCompletionFileObject type: object ChatCompletionToolParamFunctionChunk: properties: description: title: Description type: string name: title: Name type: string parameters: additionalProperties: true title: Parameters type: object strict: title: Strict type: boolean required: - name title: ChatCompletionToolParamFunctionChunk type: object ChatCompletionVideoObject: properties: type: const: video_url title: Type type: string video_url: anyOf: - type: string - $ref: '#/components/schemas/ChatCompletionVideoUrlObject' title: Video Url required: - type - video_url title: ChatCompletionVideoObject type: object GenericGuardrailAPIInputs: properties: images: items: type: string title: Images type: array model: anyOf: - type: string - type: 'null' title: Model structured_messages: items: anyOf: - $ref: '#/components/schemas/ChatCompletionUserMessage' - $ref: '#/components/schemas/ChatCompletionAssistantMessage' - $ref: '#/components/schemas/ChatCompletionToolMessage' - $ref: '#/components/schemas/ChatCompletionSystemMessage' - $ref: '#/components/schemas/ChatCompletionFunctionMessage' - $ref: '#/components/schemas/ChatCompletionDeveloperMessage' title: Structured Messages type: array texts: items: type: string title: Texts type: array tool_calls: anyOf: - items: $ref: '#/components/schemas/ChatCompletionToolCallChunk' type: array - items: $ref: '#/components/schemas/ChatCompletionMessageToolCall' type: array title: Tool Calls tools: items: $ref: '#/components/schemas/ChatCompletionToolParam' title: Tools type: array title: GenericGuardrailAPIInputs type: object ChatCompletionImageUrlObject: properties: url: title: Url type: string detail: title: Detail type: string format: title: Format type: string required: - url title: ChatCompletionImageUrlObject type: object ChatCompletionReasoningSummaryTextBlock: properties: type: const: summary_text title: Type type: string text: title: Text type: string required: - type title: ChatCompletionReasoningSummaryTextBlock type: object TestPolicyTemplateResponse: properties: overall_action: title: Overall Action type: string results: items: $ref: '#/components/schemas/GuardrailTestResultEntry' title: Results type: array required: - overall_action - results title: TestPolicyTemplateResponse type: object CitationsObject: properties: enabled: title: Enabled type: boolean required: - enabled title: CitationsObject type: object ChatCompletionCachedContent: properties: type: const: ephemeral title: Type type: string ttl: enum: - 5m - 1h title: Ttl type: string required: - type title: ChatCompletionCachedContent type: object ChatCompletionReasoningItem: description: Represents an OpenAI Responses API reasoning item for round-tripping in conversation history. properties: type: const: reasoning title: Type type: string id: title: Id type: string encrypted_content: anyOf: - type: string - type: 'null' title: Encrypted Content summary: items: $ref: '#/components/schemas/ChatCompletionReasoningSummaryTextBlock' title: Summary type: array required: - type title: ChatCompletionReasoningItem type: object ChatCompletionThinkingBlock: properties: type: const: thinking title: Type type: string thinking: title: Thinking type: string signature: anyOf: - type: string - type: 'null' title: Signature cache_control: anyOf: - additionalProperties: true type: object - $ref: '#/components/schemas/ChatCompletionCachedContent' - type: 'null' title: Cache Control required: - type title: ChatCompletionThinkingBlock type: object ChatCompletionTextObject: properties: type: const: text title: Type type: string text: title: Text type: string cache_control: $ref: '#/components/schemas/ChatCompletionCachedContent' required: - type - text title: ChatCompletionTextObject type: object securitySchemes: APIKeyHeader: type: apiKey description: Bearer token in: header name: x-litellm-api-key