> ## Documentation Index
> Fetch the complete documentation index at: https://docs.promptlayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Prompt Templates

Get a paginated list of all prompt templates in your workspace. Results are ordered by creation date, newest first.

Each returned prompt template includes the latest version by default. When filtering by `label`, the version associated with that label is returned instead.


## OpenAPI

````yaml GET /prompt-templates
openapi: 3.1.0
info:
  title: FastAPI
  version: 0.1.0
servers: []
security:
  - ApiKeyAuth: []
paths:
  /prompt-templates:
    get:
      tags:
        - prompt-templates
      summary: Get All
      operationId: get_all_prompt_templates__get
      parameters:
        - in: query
          name: page
          schema:
            type: integer
            title: Page
        - in: query
          name: per_page
          schema:
            type: integer
            title: Per Page
        - in: query
          name: label
          schema:
            type: string
            title: Label
          description: >-
            Filter prompt templates by release label (e.g., 'prod', 'dev',
            'staging')
        - in: query
          name: name
          schema:
            type: string
            title: Name
          description: Filter prompt templates by name (case-insensitive partial match)
        - in: query
          name: tags
          schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
            title: Tags
          description: >-
            Filter prompt templates by tags. Can be a single tag or a list of
            tags. Only templates whose tags contain all specified values are
            returned.
        - in: query
          name: status
          schema:
            type: string
            enum:
              - active
              - deleted
              - all
            default: active
            title: Status
          description: >-
            Filter prompt templates by status: 'active' (default) returns only
            active templates, 'deleted' returns only deleted/archived templates,
            'all' returns both
        - name: external_source
          in: query
          required: false
          schema:
            type: string
          description: External ID source to filter by. Must be provided with external_id.
        - name: external_id
          in: query
          required: false
          schema:
            type: string
          description: >-
            External ID value to filter by. Must be provided with
            external_source.
        - name: created_by_email
          in: query
          required: false
          schema:
            type: string
          description: Filter by the creator's email address.
        - name: created_after
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: Filter resources created at or after this timestamp.
        - name: created_before
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: Filter resources created at or before this timestamp.
        - name: updated_after
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: Filter resources updated at or after this timestamp.
        - name: updated_before
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: Filter resources updated at or before this timestamp.
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            enum:
              - created_at
              - updated_at
              - name
              - id
          description: Sort field.
        - name: sort_order
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
          description: Sort direction.
        - name: is_snippet
          in: query
          required: false
          schema:
            type: boolean
          description: >-
            When true, return snippets only. When false, exclude snippets. When
            omitted, return both prompts and snippets.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPromptTemplates'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '422':
          $ref: '#/components/responses/ValidationError'
components:
  schemas:
    ListPromptTemplates:
      properties:
        has_next:
          type: boolean
          title: Has Next
        has_prev:
          type: boolean
          title: Has Prev
        items:
          items:
            $ref: '#/components/schemas/ListPromptTemplateItem'
          type: array
          title: Items
        next_num:
          type: integer
          title: Next Num
        prev_num:
          type: integer
          title: Prev Num
        page:
          type: integer
          title: Page
        pages:
          type: integer
          title: Pages
        total:
          type: integer
          title: Total
      type: object
      required:
        - has_next
        - has_prev
        - items
        - next_num
        - prev_num
        - page
        - pages
        - total
      title: ListPromptTemplates
    ListPromptTemplateItem:
      properties:
        id:
          type: integer
          title: Id
        prompt_name:
          type: string
          title: Prompt Name
        prompt_template:
          oneOf:
            - $ref: '#/components/schemas/CompletionPrompt'
            - $ref: '#/components/schemas/ChatPrompt'
          title: Prompt Template
          discriminator:
            propertyName: type
            mapping:
              chat:
                $ref: '#/components/schemas/ChatPrompt'
              completion:
                $ref: '#/components/schemas/CompletionPrompt'
        metadata:
          anyOf:
            - $ref: '#/components/schemas/Metadata'
            - type: 'null'
        commit_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Commit Message
        llm_kwargs:
          anyOf:
            - type: object
            - type: 'null'
          title: Llm Kwargs
          description: >-
            When you optionally specify `provider` in the body, `llm_kwargs`
            will be returned for that specific provider and you can pass these
            kwargs to the provider's API directly. **Important:** This object's
            structure is provider-specific and may change without notice as LLM
            providers update their APIs. For stable, provider-agnostic prompt
            data, use `prompt_template` instead.
        version:
          type: integer
          title: Version
        external_ids:
          items:
            $ref: '#/components/schemas/ExternalId'
          type: array
          title: External Ids
          description: External ID mappings attached to the prompt template.
        is_snippet:
          type: boolean
          title: Is Snippet
          description: Whether this prompt template record is a snippet.
      type: object
      required:
        - id
        - prompt_name
        - prompt_template
        - external_ids
      title: ListPromptTemplateItem
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          default: false
          description: Indicates that the request failed.
        message:
          type: string
          description: Human-readable error message.
        error:
          type: string
          description: Machine-readable or fallback error message.
      additionalProperties: true
      description: >-
        Standard error response. Some legacy endpoints may return either message
        or error.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CompletionPrompt:
      additionalProperties: true
      properties:
        content:
          items:
            discriminator:
              mapping:
                text:
                  $ref: '#/components/schemas/TextContent'
                thinking:
                  $ref: '#/components/schemas/ThinkingContent'
                code:
                  $ref: '#/components/schemas/CodeContent'
                image_url:
                  $ref: '#/components/schemas/ImageContent'
                media:
                  $ref: '#/components/schemas/MediaContent'
                media_variable:
                  $ref: '#/components/schemas/MediaVariable'
                output_media:
                  $ref: '#/components/schemas/OutputMediaContent'
                server_tool_use:
                  $ref: '#/components/schemas/ServerToolUseContent'
                web_search_tool_result:
                  $ref: '#/components/schemas/WebSearchToolResultContent'
                code_execution_result:
                  $ref: '#/components/schemas/CodeExecutionResultContent'
                mcp_list_tools:
                  $ref: '#/components/schemas/McpListToolsContent'
                mcp_call:
                  $ref: '#/components/schemas/McpCallContent'
                mcp_approval_request:
                  $ref: '#/components/schemas/McpApprovalRequestContent'
                mcp_approval_response:
                  $ref: '#/components/schemas/McpApprovalResponseContent'
                bash_code_execution_tool_result:
                  $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                text_editor_code_execution_tool_result:
                  $ref: >-
                    #/components/schemas/TextEditorCodeExecutionToolResultContent
                shell_call:
                  $ref: '#/components/schemas/ShellCallContent'
                shell_call_output:
                  $ref: '#/components/schemas/ShellCallOutputContent'
                apply_patch_call:
                  $ref: '#/components/schemas/ApplyPatchCallContent'
                apply_patch_call_output:
                  $ref: '#/components/schemas/ApplyPatchCallOutputContent'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/TextContent'
              - $ref: '#/components/schemas/ThinkingContent'
              - $ref: '#/components/schemas/CodeContent'
              - $ref: '#/components/schemas/ImageContent'
              - $ref: '#/components/schemas/MediaContent'
              - $ref: '#/components/schemas/MediaVariable'
              - $ref: '#/components/schemas/OutputMediaContent'
              - $ref: '#/components/schemas/ServerToolUseContent'
              - $ref: '#/components/schemas/WebSearchToolResultContent'
              - $ref: '#/components/schemas/CodeExecutionResultContent'
              - $ref: '#/components/schemas/McpListToolsContent'
              - $ref: '#/components/schemas/McpCallContent'
              - $ref: '#/components/schemas/McpApprovalRequestContent'
              - $ref: '#/components/schemas/McpApprovalResponseContent'
              - $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/TextEditorCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/ShellCallContent'
              - $ref: '#/components/schemas/ShellCallOutputContent'
              - $ref: '#/components/schemas/ApplyPatchCallContent'
              - $ref: '#/components/schemas/ApplyPatchCallOutputContent'
          title: Content
          type: array
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
        template_format:
          default: f-string
          enum:
            - f-string
            - jinja2
          title: Template Format
          type: string
        type:
          const: completion
          default: completion
          enum:
            - completion
          title: Type
          type: string
      required:
        - content
      title: Completion Template
      type: object
    ChatPrompt:
      properties:
        messages:
          items:
            discriminator:
              mapping:
                assistant:
                  $ref: '#/components/schemas/AssistantMessage'
                function:
                  $ref: '#/components/schemas/FunctionMessage'
                placeholder:
                  $ref: '#/components/schemas/PlaceholderMessage'
                system:
                  $ref: '#/components/schemas/SystemMessage'
                tool:
                  $ref: '#/components/schemas/ToolMessage'
                user:
                  $ref: '#/components/schemas/UserMessage'
                developer:
                  $ref: '#/components/schemas/DeveloperMessage'
              propertyName: role
            oneOf:
              - $ref: '#/components/schemas/SystemMessage'
              - $ref: '#/components/schemas/UserMessage'
              - $ref: '#/components/schemas/AssistantMessage'
              - $ref: '#/components/schemas/FunctionMessage'
              - $ref: '#/components/schemas/ToolMessage'
              - $ref: '#/components/schemas/PlaceholderMessage'
              - $ref: '#/components/schemas/DeveloperMessage'
          title: Messages
          type: array
        functions:
          anyOf:
            - items:
                $ref: '#/components/schemas/Function'
              type: array
            - type: 'null'
          default: null
          title: Functions
        tools:
          anyOf:
            - items:
                $ref: '#/components/schemas/Tool'
              type: array
            - type: 'null'
          default: null
          title: Tools
        function_call:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/MessageFunctionCall'
            - type: 'null'
          default: null
          title: Function Call
        tool_choice:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/ChatToolChoice'
            - type: 'null'
          default: null
          title: Tool Choice
        type:
          const: chat
          default: chat
          enum:
            - chat
          title: Type
          type: string
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
      required:
        - messages
      title: Chat Template
      type: object
    Metadata:
      title: Metadata
      type: object
      additionalProperties: true
      properties:
        model:
          anyOf:
            - $ref: '#/components/schemas/Model'
            - type: 'null'
          default: null
          title: Model
      description: >-
        Metadata associated with the prompt blueprint. Supports additional
        custom fields beyond the model field.
    ExternalId:
      properties:
        source:
          type: string
          maxLength: 128
          minLength: 1
          title: Source
          description: The external system or namespace that owns the ID.
        external_id:
          type: string
          maxLength: 512
          minLength: 1
          title: External Id
          description: The identifier for this entity in the external system.
      type: object
      required:
        - source
        - external_id
      additionalProperties: false
      title: ExternalId
      description: >-
        Customer-defined mapping between a PromptLayer entity and an external
        system identifier.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    TextContent:
      properties:
        type:
          const: text
          default: text
          enum:
            - text
          title: Type
          type: string
        text:
          title: Text
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        annotations:
          anyOf:
            - items:
                oneOf:
                  - $ref: '#/components/schemas/WebAnnotation'
                  - $ref: '#/components/schemas/FileAnnotation'
                  - $ref: '#/components/schemas/MapAnnotation'
                  - $ref: '#/components/schemas/ContainerFileAnnotation'
              type: array
            - type: 'null'
          default: null
          title: Annotations
          description: >-
            Citations and references within the text (web citations, file
            citations, map citations, container file citations).
        thought_signature:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Thought Signature
      required:
        - text
      title: TextContent
      type: object
    ThinkingContent:
      properties:
        signature:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Signature
        type:
          const: thinking
          default: thinking
          enum:
            - thinking
          title: Type
          type: string
        thinking:
          title: Thinking
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
      required:
        - thinking
      title: ThinkingContent
      type: object
    CodeContent:
      description: Code content block (e.g. from code execution tools).
      properties:
        type:
          const: code
          default: code
          enum:
            - code
          title: Type
          type: string
        code:
          type: string
          title: Code
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        container_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Container Id
      required:
        - code
      title: CodeContent
      type: object
    ImageContent:
      properties:
        type:
          const: image_url
          default: image_url
          enum:
            - image_url
          title: Type
          type: string
        image_url:
          $ref: '#/components/schemas/ImageURL'
        image_variable:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Image Variable
      required:
        - image_url
      title: ImageContent
      type: object
    MediaContent:
      properties:
        type:
          const: media
          default: media
          enum:
            - media
          title: Type
          type: string
        media:
          $ref: '#/components/schemas/Media'
      required:
        - media
      title: MediaContent
      type: object
    MediaVariable:
      properties:
        type:
          const: media_variable
          default: media_variable
          enum:
            - media_variable
          title: Type
          type: string
        name:
          type: string
          title: Name
          description: Name of the media variable
      required:
        - name
      title: MediaVariable
      type: object
    OutputMediaContent:
      description: LLM-generated media output (e.g. from image generation tools).
      properties:
        type:
          const: output_media
          default: output_media
          enum:
            - output_media
          title: Type
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        url:
          type: string
          title: Url
        mime_type:
          type: string
          default: image/png
          title: Mime Type
        media_type:
          enum:
            - image
            - video
            - audio
          default: image
          title: Media Type
          type: string
        provider_metadata:
          anyOf:
            - type: object
            - type: 'null'
          default: null
          title: Provider Metadata
      required:
        - url
      title: OutputMediaContent
      type: object
    ServerToolUseContent:
      description: Server-side tool use block (e.g. web search, code execution).
      properties:
        type:
          const: server_tool_use
          default: server_tool_use
          enum:
            - server_tool_use
          title: Type
          type: string
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        input:
          type: object
          default: {}
          title: Input
      required:
        - id
        - name
      title: ServerToolUseContent
      type: object
    WebSearchToolResultContent:
      description: Results from a web search tool invocation.
      properties:
        type:
          const: web_search_tool_result
          default: web_search_tool_result
          enum:
            - web_search_tool_result
          title: Type
          type: string
        tool_use_id:
          type: string
          title: Tool Use Id
        content:
          items:
            $ref: '#/components/schemas/WebSearchResult'
          type: array
          default: []
          title: Content
      required:
        - tool_use_id
      title: WebSearchToolResultContent
      type: object
    CodeExecutionResultContent:
      description: Result from a code execution tool.
      properties:
        type:
          const: code_execution_result
          default: code_execution_result
          enum:
            - code_execution_result
          title: Type
          type: string
        output:
          type: string
          title: Output
        outcome:
          type: string
          default: OUTCOME_OK
          title: Outcome
      required:
        - output
      title: CodeExecutionResultContent
      type: object
    McpListToolsContent:
      description: MCP list tools response block.
      properties:
        type:
          const: mcp_list_tools
          default: mcp_list_tools
          enum:
            - mcp_list_tools
          title: Type
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        server_label:
          type: string
          default: ''
          title: Server Label
        tools:
          items:
            type: object
          type: array
          default: []
          title: Tools
        error:
          anyOf:
            - type: string
            - type: object
            - type: 'null'
          default: null
          title: Error
      title: McpListToolsContent
      type: object
    McpCallContent:
      description: MCP tool call block.
      properties:
        type:
          const: mcp_call
          default: mcp_call
          enum:
            - mcp_call
          title: Type
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        name:
          type: string
          default: ''
          title: Name
        server_label:
          type: string
          default: ''
          title: Server Label
        arguments:
          type: string
          default: ''
          title: Arguments
        output:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Output
        error:
          anyOf:
            - type: string
            - type: object
            - type: 'null'
          default: null
          title: Error
        approval_request_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Approval Request Id
      title: McpCallContent
      type: object
    McpApprovalRequestContent:
      description: MCP tool approval request block.
      properties:
        type:
          const: mcp_approval_request
          default: mcp_approval_request
          enum:
            - mcp_approval_request
          title: Type
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        name:
          type: string
          default: ''
          title: Name
        arguments:
          type: string
          default: ''
          title: Arguments
        server_label:
          type: string
          default: ''
          title: Server Label
      title: McpApprovalRequestContent
      type: object
    McpApprovalResponseContent:
      description: MCP tool approval response block.
      properties:
        type:
          const: mcp_approval_response
          default: mcp_approval_response
          enum:
            - mcp_approval_response
          title: Type
          type: string
        approval_request_id:
          type: string
          title: Approval Request Id
        approve:
          type: boolean
          title: Approve
      required:
        - approval_request_id
        - approve
      title: McpApprovalResponseContent
      type: object
    BashCodeExecutionToolResultContent:
      description: Result from bash code execution tool.
      properties:
        type:
          const: bash_code_execution_tool_result
          default: bash_code_execution_tool_result
          enum:
            - bash_code_execution_tool_result
          title: Type
          type: string
        tool_use_id:
          type: string
          title: Tool Use Id
        content:
          type: object
          default: {}
          title: Content
      required:
        - tool_use_id
      title: BashCodeExecutionToolResultContent
      type: object
    TextEditorCodeExecutionToolResultContent:
      description: Result from text editor code execution tool.
      properties:
        type:
          const: text_editor_code_execution_tool_result
          default: text_editor_code_execution_tool_result
          enum:
            - text_editor_code_execution_tool_result
          title: Type
          type: string
        tool_use_id:
          type: string
          title: Tool Use Id
        content:
          type: object
          default: {}
          title: Content
      required:
        - tool_use_id
      title: TextEditorCodeExecutionToolResultContent
      type: object
    ShellCallContent:
      description: Shell tool call block.
      properties:
        type:
          const: shell_call
          default: shell_call
          enum:
            - shell_call
          title: Type
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        call_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Call Id
        action:
          type: object
          default: {}
          title: Action
        status:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Status
      title: ShellCallContent
      type: object
    ShellCallOutputContent:
      description: Shell tool output block.
      properties:
        type:
          const: shell_call_output
          default: shell_call_output
          enum:
            - shell_call_output
          title: Type
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        call_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Call Id
        output:
          items:
            type: object
          type: array
          default: []
          title: Output
        status:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Status
      title: ShellCallOutputContent
      type: object
    ApplyPatchCallContent:
      description: Apply patch tool call block.
      properties:
        type:
          const: apply_patch_call
          default: apply_patch_call
          enum:
            - apply_patch_call
          title: Type
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        call_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Call Id
        operation:
          type: object
          default: {}
          title: Operation
        status:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Status
      title: ApplyPatchCallContent
      type: object
    ApplyPatchCallOutputContent:
      description: Apply patch tool output block.
      properties:
        type:
          const: apply_patch_call_output
          default: apply_patch_call_output
          enum:
            - apply_patch_call_output
          title: Type
          type: string
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        call_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Call Id
        output:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Output
        status:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Status
      title: ApplyPatchCallOutputContent
      type: object
    AssistantMessage:
      properties:
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
        template_format:
          default: f-string
          enum:
            - f-string
            - jinja2
          title: Template Format
          type: string
        content:
          anyOf:
            - items:
                discriminator:
                  mapping:
                    text:
                      $ref: '#/components/schemas/TextContent'
                    thinking:
                      $ref: '#/components/schemas/ThinkingContent'
                    code:
                      $ref: '#/components/schemas/CodeContent'
                    image_url:
                      $ref: '#/components/schemas/ImageContent'
                    media:
                      $ref: '#/components/schemas/MediaContent'
                    media_variable:
                      $ref: '#/components/schemas/MediaVariable'
                    output_media:
                      $ref: '#/components/schemas/OutputMediaContent'
                    server_tool_use:
                      $ref: '#/components/schemas/ServerToolUseContent'
                    web_search_tool_result:
                      $ref: '#/components/schemas/WebSearchToolResultContent'
                    code_execution_result:
                      $ref: '#/components/schemas/CodeExecutionResultContent'
                    mcp_list_tools:
                      $ref: '#/components/schemas/McpListToolsContent'
                    mcp_call:
                      $ref: '#/components/schemas/McpCallContent'
                    mcp_approval_request:
                      $ref: '#/components/schemas/McpApprovalRequestContent'
                    mcp_approval_response:
                      $ref: '#/components/schemas/McpApprovalResponseContent'
                    bash_code_execution_tool_result:
                      $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                    text_editor_code_execution_tool_result:
                      $ref: >-
                        #/components/schemas/TextEditorCodeExecutionToolResultContent
                    shell_call:
                      $ref: '#/components/schemas/ShellCallContent'
                    shell_call_output:
                      $ref: '#/components/schemas/ShellCallOutputContent'
                    apply_patch_call:
                      $ref: '#/components/schemas/ApplyPatchCallContent'
                    apply_patch_call_output:
                      $ref: '#/components/schemas/ApplyPatchCallOutputContent'
                  propertyName: type
                oneOf:
                  - $ref: '#/components/schemas/TextContent'
                  - $ref: '#/components/schemas/ThinkingContent'
                  - $ref: '#/components/schemas/CodeContent'
                  - $ref: '#/components/schemas/ImageContent'
                  - $ref: '#/components/schemas/MediaContent'
                  - $ref: '#/components/schemas/MediaVariable'
                  - $ref: '#/components/schemas/OutputMediaContent'
                  - $ref: '#/components/schemas/ServerToolUseContent'
                  - $ref: '#/components/schemas/WebSearchToolResultContent'
                  - $ref: '#/components/schemas/CodeExecutionResultContent'
                  - $ref: '#/components/schemas/McpListToolsContent'
                  - $ref: '#/components/schemas/McpCallContent'
                  - $ref: '#/components/schemas/McpApprovalRequestContent'
                  - $ref: '#/components/schemas/McpApprovalResponseContent'
                  - $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                  - $ref: >-
                      #/components/schemas/TextEditorCodeExecutionToolResultContent
                  - $ref: '#/components/schemas/ShellCallContent'
                  - $ref: '#/components/schemas/ShellCallOutputContent'
                  - $ref: '#/components/schemas/ApplyPatchCallContent'
                  - $ref: '#/components/schemas/ApplyPatchCallOutputContent'
              type: array
            - type: 'null'
          title: Content
        role:
          const: assistant
          title: Role
          default: assistant
        function_call:
          anyOf:
            - $ref: '#/components/schemas/FunctionCall'
            - type: 'null'
          title: Function Call
          deprecated: true
          description: >-
            This field is deprecated. Please use `tool_calls` field to specify
            tool calls.
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        tool_calls:
          anyOf:
            - items:
                $ref: '#/components/schemas/ToolCall'
              type: array
            - type: 'null'
          title: Tool Calls
      type: object
      title: AssistantMessage
    FunctionMessage:
      properties:
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
        template_format:
          default: f-string
          enum:
            - f-string
            - jinja2
          title: Template Format
          type: string
        content:
          anyOf:
            - items:
                discriminator:
                  mapping:
                    text:
                      $ref: '#/components/schemas/TextContent'
                    thinking:
                      $ref: '#/components/schemas/ThinkingContent'
                    code:
                      $ref: '#/components/schemas/CodeContent'
                    image_url:
                      $ref: '#/components/schemas/ImageContent'
                    media:
                      $ref: '#/components/schemas/MediaContent'
                    media_variable:
                      $ref: '#/components/schemas/MediaVariable'
                    output_media:
                      $ref: '#/components/schemas/OutputMediaContent'
                    server_tool_use:
                      $ref: '#/components/schemas/ServerToolUseContent'
                    web_search_tool_result:
                      $ref: '#/components/schemas/WebSearchToolResultContent'
                    code_execution_result:
                      $ref: '#/components/schemas/CodeExecutionResultContent'
                    mcp_list_tools:
                      $ref: '#/components/schemas/McpListToolsContent'
                    mcp_call:
                      $ref: '#/components/schemas/McpCallContent'
                    mcp_approval_request:
                      $ref: '#/components/schemas/McpApprovalRequestContent'
                    mcp_approval_response:
                      $ref: '#/components/schemas/McpApprovalResponseContent'
                    bash_code_execution_tool_result:
                      $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                    text_editor_code_execution_tool_result:
                      $ref: >-
                        #/components/schemas/TextEditorCodeExecutionToolResultContent
                    shell_call:
                      $ref: '#/components/schemas/ShellCallContent'
                    shell_call_output:
                      $ref: '#/components/schemas/ShellCallOutputContent'
                    apply_patch_call:
                      $ref: '#/components/schemas/ApplyPatchCallContent'
                    apply_patch_call_output:
                      $ref: '#/components/schemas/ApplyPatchCallOutputContent'
                  propertyName: type
                oneOf:
                  - $ref: '#/components/schemas/TextContent'
                  - $ref: '#/components/schemas/ThinkingContent'
                  - $ref: '#/components/schemas/CodeContent'
                  - $ref: '#/components/schemas/ImageContent'
                  - $ref: '#/components/schemas/MediaContent'
                  - $ref: '#/components/schemas/MediaVariable'
                  - $ref: '#/components/schemas/OutputMediaContent'
                  - $ref: '#/components/schemas/ServerToolUseContent'
                  - $ref: '#/components/schemas/WebSearchToolResultContent'
                  - $ref: '#/components/schemas/CodeExecutionResultContent'
                  - $ref: '#/components/schemas/McpListToolsContent'
                  - $ref: '#/components/schemas/McpCallContent'
                  - $ref: '#/components/schemas/McpApprovalRequestContent'
                  - $ref: '#/components/schemas/McpApprovalResponseContent'
                  - $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                  - $ref: >-
                      #/components/schemas/TextEditorCodeExecutionToolResultContent
                  - $ref: '#/components/schemas/ShellCallContent'
                  - $ref: '#/components/schemas/ShellCallOutputContent'
                  - $ref: '#/components/schemas/ApplyPatchCallContent'
                  - $ref: '#/components/schemas/ApplyPatchCallOutputContent'
              type: array
            - type: 'null'
          title: Content
        role:
          const: function
          title: Role
          default: function
        name:
          type: string
          title: Name
      type: object
      required:
        - name
      title: FunctionMessage
    PlaceholderMessage:
      properties:
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
        template_format:
          default: f-string
          enum:
            - f-string
            - jinja2
          title: Template Format
          type: string
        content:
          anyOf:
            - items:
                discriminator:
                  mapping:
                    text:
                      $ref: '#/components/schemas/TextContent'
                    thinking:
                      $ref: '#/components/schemas/ThinkingContent'
                    code:
                      $ref: '#/components/schemas/CodeContent'
                    image_url:
                      $ref: '#/components/schemas/ImageContent'
                    media:
                      $ref: '#/components/schemas/MediaContent'
                    media_variable:
                      $ref: '#/components/schemas/MediaVariable'
                    output_media:
                      $ref: '#/components/schemas/OutputMediaContent'
                    server_tool_use:
                      $ref: '#/components/schemas/ServerToolUseContent'
                    web_search_tool_result:
                      $ref: '#/components/schemas/WebSearchToolResultContent'
                    code_execution_result:
                      $ref: '#/components/schemas/CodeExecutionResultContent'
                    mcp_list_tools:
                      $ref: '#/components/schemas/McpListToolsContent'
                    mcp_call:
                      $ref: '#/components/schemas/McpCallContent'
                    mcp_approval_request:
                      $ref: '#/components/schemas/McpApprovalRequestContent'
                    mcp_approval_response:
                      $ref: '#/components/schemas/McpApprovalResponseContent'
                    bash_code_execution_tool_result:
                      $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                    text_editor_code_execution_tool_result:
                      $ref: >-
                        #/components/schemas/TextEditorCodeExecutionToolResultContent
                    shell_call:
                      $ref: '#/components/schemas/ShellCallContent'
                    shell_call_output:
                      $ref: '#/components/schemas/ShellCallOutputContent'
                    apply_patch_call:
                      $ref: '#/components/schemas/ApplyPatchCallContent'
                    apply_patch_call_output:
                      $ref: '#/components/schemas/ApplyPatchCallOutputContent'
                  propertyName: type
                oneOf:
                  - $ref: '#/components/schemas/TextContent'
                  - $ref: '#/components/schemas/ThinkingContent'
                  - $ref: '#/components/schemas/CodeContent'
                  - $ref: '#/components/schemas/ImageContent'
                  - $ref: '#/components/schemas/MediaContent'
                  - $ref: '#/components/schemas/MediaVariable'
                  - $ref: '#/components/schemas/OutputMediaContent'
                  - $ref: '#/components/schemas/ServerToolUseContent'
                  - $ref: '#/components/schemas/WebSearchToolResultContent'
                  - $ref: '#/components/schemas/CodeExecutionResultContent'
                  - $ref: '#/components/schemas/McpListToolsContent'
                  - $ref: '#/components/schemas/McpCallContent'
                  - $ref: '#/components/schemas/McpApprovalRequestContent'
                  - $ref: '#/components/schemas/McpApprovalResponseContent'
                  - $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                  - $ref: >-
                      #/components/schemas/TextEditorCodeExecutionToolResultContent
                  - $ref: '#/components/schemas/ShellCallContent'
                  - $ref: '#/components/schemas/ShellCallOutputContent'
                  - $ref: '#/components/schemas/ApplyPatchCallContent'
                  - $ref: '#/components/schemas/ApplyPatchCallOutputContent'
              type: array
            - type: 'null'
          default: null
          title: Content
        raw_request_display_role:
          default: ''
          title: Raw Request Display Role
          type: string
        role:
          const: placeholder
          default: placeholder
          enum:
            - placeholder
          title: Role
          type: string
        name:
          type: string
          title: Name
      required:
        - name
      title: PlaceholderMessage
      type: object
    SystemMessage:
      properties:
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
        template_format:
          default: f-string
          enum:
            - f-string
            - jinja2
          title: Template Format
          type: string
        content:
          items:
            discriminator:
              mapping:
                text:
                  $ref: '#/components/schemas/TextContent'
                thinking:
                  $ref: '#/components/schemas/ThinkingContent'
                code:
                  $ref: '#/components/schemas/CodeContent'
                image_url:
                  $ref: '#/components/schemas/ImageContent'
                media:
                  $ref: '#/components/schemas/MediaContent'
                media_variable:
                  $ref: '#/components/schemas/MediaVariable'
                output_media:
                  $ref: '#/components/schemas/OutputMediaContent'
                server_tool_use:
                  $ref: '#/components/schemas/ServerToolUseContent'
                web_search_tool_result:
                  $ref: '#/components/schemas/WebSearchToolResultContent'
                code_execution_result:
                  $ref: '#/components/schemas/CodeExecutionResultContent'
                mcp_list_tools:
                  $ref: '#/components/schemas/McpListToolsContent'
                mcp_call:
                  $ref: '#/components/schemas/McpCallContent'
                mcp_approval_request:
                  $ref: '#/components/schemas/McpApprovalRequestContent'
                mcp_approval_response:
                  $ref: '#/components/schemas/McpApprovalResponseContent'
                bash_code_execution_tool_result:
                  $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                text_editor_code_execution_tool_result:
                  $ref: >-
                    #/components/schemas/TextEditorCodeExecutionToolResultContent
                shell_call:
                  $ref: '#/components/schemas/ShellCallContent'
                shell_call_output:
                  $ref: '#/components/schemas/ShellCallOutputContent'
                apply_patch_call:
                  $ref: '#/components/schemas/ApplyPatchCallContent'
                apply_patch_call_output:
                  $ref: '#/components/schemas/ApplyPatchCallOutputContent'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/TextContent'
              - $ref: '#/components/schemas/ThinkingContent'
              - $ref: '#/components/schemas/CodeContent'
              - $ref: '#/components/schemas/ImageContent'
              - $ref: '#/components/schemas/MediaContent'
              - $ref: '#/components/schemas/MediaVariable'
              - $ref: '#/components/schemas/OutputMediaContent'
              - $ref: '#/components/schemas/ServerToolUseContent'
              - $ref: '#/components/schemas/WebSearchToolResultContent'
              - $ref: '#/components/schemas/CodeExecutionResultContent'
              - $ref: '#/components/schemas/McpListToolsContent'
              - $ref: '#/components/schemas/McpCallContent'
              - $ref: '#/components/schemas/McpApprovalRequestContent'
              - $ref: '#/components/schemas/McpApprovalResponseContent'
              - $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/TextEditorCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/ShellCallContent'
              - $ref: '#/components/schemas/ShellCallOutputContent'
              - $ref: '#/components/schemas/ApplyPatchCallContent'
              - $ref: '#/components/schemas/ApplyPatchCallOutputContent'
          title: Content
          type: array
        role:
          const: system
          title: Role
          default: system
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
      type: object
      required:
        - content
      title: SystemMessage
    ToolMessage:
      properties:
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
        template_format:
          default: f-string
          enum:
            - f-string
            - jinja2
          title: Template Format
          type: string
        content:
          items:
            discriminator:
              mapping:
                text:
                  $ref: '#/components/schemas/TextContent'
                thinking:
                  $ref: '#/components/schemas/ThinkingContent'
                code:
                  $ref: '#/components/schemas/CodeContent'
                image_url:
                  $ref: '#/components/schemas/ImageContent'
                media:
                  $ref: '#/components/schemas/MediaContent'
                media_variable:
                  $ref: '#/components/schemas/MediaVariable'
                output_media:
                  $ref: '#/components/schemas/OutputMediaContent'
                server_tool_use:
                  $ref: '#/components/schemas/ServerToolUseContent'
                web_search_tool_result:
                  $ref: '#/components/schemas/WebSearchToolResultContent'
                code_execution_result:
                  $ref: '#/components/schemas/CodeExecutionResultContent'
                mcp_list_tools:
                  $ref: '#/components/schemas/McpListToolsContent'
                mcp_call:
                  $ref: '#/components/schemas/McpCallContent'
                mcp_approval_request:
                  $ref: '#/components/schemas/McpApprovalRequestContent'
                mcp_approval_response:
                  $ref: '#/components/schemas/McpApprovalResponseContent'
                bash_code_execution_tool_result:
                  $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                text_editor_code_execution_tool_result:
                  $ref: >-
                    #/components/schemas/TextEditorCodeExecutionToolResultContent
                shell_call:
                  $ref: '#/components/schemas/ShellCallContent'
                shell_call_output:
                  $ref: '#/components/schemas/ShellCallOutputContent'
                apply_patch_call:
                  $ref: '#/components/schemas/ApplyPatchCallContent'
                apply_patch_call_output:
                  $ref: '#/components/schemas/ApplyPatchCallOutputContent'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/TextContent'
              - $ref: '#/components/schemas/ThinkingContent'
              - $ref: '#/components/schemas/CodeContent'
              - $ref: '#/components/schemas/ImageContent'
              - $ref: '#/components/schemas/MediaContent'
              - $ref: '#/components/schemas/MediaVariable'
              - $ref: '#/components/schemas/OutputMediaContent'
              - $ref: '#/components/schemas/ServerToolUseContent'
              - $ref: '#/components/schemas/WebSearchToolResultContent'
              - $ref: '#/components/schemas/CodeExecutionResultContent'
              - $ref: '#/components/schemas/McpListToolsContent'
              - $ref: '#/components/schemas/McpCallContent'
              - $ref: '#/components/schemas/McpApprovalRequestContent'
              - $ref: '#/components/schemas/McpApprovalResponseContent'
              - $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/TextEditorCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/ShellCallContent'
              - $ref: '#/components/schemas/ShellCallOutputContent'
              - $ref: '#/components/schemas/ApplyPatchCallContent'
              - $ref: '#/components/schemas/ApplyPatchCallOutputContent'
          title: Content
          type: array
        role:
          const: tool
          title: Role
          default: tool
        tool_call_id:
          type: string
          title: Tool Call Id
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
      type: object
      required:
        - content
        - tool_call_id
      title: ToolMessage
    UserMessage:
      properties:
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
        template_format:
          default: f-string
          enum:
            - f-string
            - jinja2
          title: Template Format
          type: string
        content:
          items:
            discriminator:
              mapping:
                text:
                  $ref: '#/components/schemas/TextContent'
                thinking:
                  $ref: '#/components/schemas/ThinkingContent'
                code:
                  $ref: '#/components/schemas/CodeContent'
                image_url:
                  $ref: '#/components/schemas/ImageContent'
                media:
                  $ref: '#/components/schemas/MediaContent'
                media_variable:
                  $ref: '#/components/schemas/MediaVariable'
                output_media:
                  $ref: '#/components/schemas/OutputMediaContent'
                server_tool_use:
                  $ref: '#/components/schemas/ServerToolUseContent'
                web_search_tool_result:
                  $ref: '#/components/schemas/WebSearchToolResultContent'
                code_execution_result:
                  $ref: '#/components/schemas/CodeExecutionResultContent'
                mcp_list_tools:
                  $ref: '#/components/schemas/McpListToolsContent'
                mcp_call:
                  $ref: '#/components/schemas/McpCallContent'
                mcp_approval_request:
                  $ref: '#/components/schemas/McpApprovalRequestContent'
                mcp_approval_response:
                  $ref: '#/components/schemas/McpApprovalResponseContent'
                bash_code_execution_tool_result:
                  $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                text_editor_code_execution_tool_result:
                  $ref: >-
                    #/components/schemas/TextEditorCodeExecutionToolResultContent
                shell_call:
                  $ref: '#/components/schemas/ShellCallContent'
                shell_call_output:
                  $ref: '#/components/schemas/ShellCallOutputContent'
                apply_patch_call:
                  $ref: '#/components/schemas/ApplyPatchCallContent'
                apply_patch_call_output:
                  $ref: '#/components/schemas/ApplyPatchCallOutputContent'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/TextContent'
              - $ref: '#/components/schemas/ThinkingContent'
              - $ref: '#/components/schemas/CodeContent'
              - $ref: '#/components/schemas/ImageContent'
              - $ref: '#/components/schemas/MediaContent'
              - $ref: '#/components/schemas/MediaVariable'
              - $ref: '#/components/schemas/OutputMediaContent'
              - $ref: '#/components/schemas/ServerToolUseContent'
              - $ref: '#/components/schemas/WebSearchToolResultContent'
              - $ref: '#/components/schemas/CodeExecutionResultContent'
              - $ref: '#/components/schemas/McpListToolsContent'
              - $ref: '#/components/schemas/McpCallContent'
              - $ref: '#/components/schemas/McpApprovalRequestContent'
              - $ref: '#/components/schemas/McpApprovalResponseContent'
              - $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/TextEditorCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/ShellCallContent'
              - $ref: '#/components/schemas/ShellCallOutputContent'
              - $ref: '#/components/schemas/ApplyPatchCallContent'
              - $ref: '#/components/schemas/ApplyPatchCallOutputContent'
          title: Content
          type: array
        role:
          const: user
          title: Role
          default: user
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
      type: object
      required:
        - content
      title: UserMessage
    DeveloperMessage:
      properties:
        input_variables:
          default: []
          items:
            type: string
          title: Input Variables
          type: array
        template_format:
          default: f-string
          enum:
            - f-string
            - jinja2
          title: Template Format
          type: string
        content:
          items:
            discriminator:
              mapping:
                text:
                  $ref: '#/components/schemas/TextContent'
                thinking:
                  $ref: '#/components/schemas/ThinkingContent'
                code:
                  $ref: '#/components/schemas/CodeContent'
                image_url:
                  $ref: '#/components/schemas/ImageContent'
                media:
                  $ref: '#/components/schemas/MediaContent'
                media_variable:
                  $ref: '#/components/schemas/MediaVariable'
                output_media:
                  $ref: '#/components/schemas/OutputMediaContent'
                server_tool_use:
                  $ref: '#/components/schemas/ServerToolUseContent'
                web_search_tool_result:
                  $ref: '#/components/schemas/WebSearchToolResultContent'
                code_execution_result:
                  $ref: '#/components/schemas/CodeExecutionResultContent'
                mcp_list_tools:
                  $ref: '#/components/schemas/McpListToolsContent'
                mcp_call:
                  $ref: '#/components/schemas/McpCallContent'
                mcp_approval_request:
                  $ref: '#/components/schemas/McpApprovalRequestContent'
                mcp_approval_response:
                  $ref: '#/components/schemas/McpApprovalResponseContent'
                bash_code_execution_tool_result:
                  $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
                text_editor_code_execution_tool_result:
                  $ref: >-
                    #/components/schemas/TextEditorCodeExecutionToolResultContent
                shell_call:
                  $ref: '#/components/schemas/ShellCallContent'
                shell_call_output:
                  $ref: '#/components/schemas/ShellCallOutputContent'
                apply_patch_call:
                  $ref: '#/components/schemas/ApplyPatchCallContent'
                apply_patch_call_output:
                  $ref: '#/components/schemas/ApplyPatchCallOutputContent'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/TextContent'
              - $ref: '#/components/schemas/ThinkingContent'
              - $ref: '#/components/schemas/CodeContent'
              - $ref: '#/components/schemas/ImageContent'
              - $ref: '#/components/schemas/MediaContent'
              - $ref: '#/components/schemas/MediaVariable'
              - $ref: '#/components/schemas/OutputMediaContent'
              - $ref: '#/components/schemas/ServerToolUseContent'
              - $ref: '#/components/schemas/WebSearchToolResultContent'
              - $ref: '#/components/schemas/CodeExecutionResultContent'
              - $ref: '#/components/schemas/McpListToolsContent'
              - $ref: '#/components/schemas/McpCallContent'
              - $ref: '#/components/schemas/McpApprovalRequestContent'
              - $ref: '#/components/schemas/McpApprovalResponseContent'
              - $ref: '#/components/schemas/BashCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/TextEditorCodeExecutionToolResultContent'
              - $ref: '#/components/schemas/ShellCallContent'
              - $ref: '#/components/schemas/ShellCallOutputContent'
              - $ref: '#/components/schemas/ApplyPatchCallContent'
              - $ref: '#/components/schemas/ApplyPatchCallOutputContent'
          title: Content
          type: array
        role:
          const: developer
          title: Role
          default: developer
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
      type: object
      required:
        - content
      title: DeveloperMessage
    Function:
      properties:
        name:
          type: string
          title: Name
        description:
          type: string
          title: Description
          default: ''
        strict:
          type: boolean
          title: Strict
          default: false
          description: >-
            Whether to enable strict schema validation for the function
            parameters.
        parameters:
          type: object
          title: Parameters
          default:
            type: object
            properties: {}
      type: object
      required:
        - name
      title: Function
    Tool:
      discriminator:
        propertyName: type
        mapping:
          function:
            $ref: '#/components/schemas/FunctionTool'
          web_search:
            $ref: '#/components/schemas/BuiltInTool'
          file_search:
            $ref: '#/components/schemas/BuiltInTool'
          code_interpreter:
            $ref: '#/components/schemas/BuiltInTool'
          image_generation:
            $ref: '#/components/schemas/BuiltInTool'
          google_maps:
            $ref: '#/components/schemas/BuiltInTool'
          url_context:
            $ref: '#/components/schemas/BuiltInTool'
          mcp:
            $ref: '#/components/schemas/BuiltInTool'
          bash:
            $ref: '#/components/schemas/BuiltInTool'
          shell:
            $ref: '#/components/schemas/BuiltInTool'
          apply_patch:
            $ref: '#/components/schemas/BuiltInTool'
          text_editor:
            $ref: '#/components/schemas/BuiltInTool'
      oneOf:
        - $ref: '#/components/schemas/FunctionTool'
        - $ref: '#/components/schemas/BuiltInTool'
      title: Tool
    MessageFunctionCall:
      properties:
        name:
          type: string
          title: Name
      type: object
      required:
        - name
      title: MessageFunctionCall
    ChatToolChoice:
      properties:
        type:
          const: function
          title: Type
          default: function
        function:
          $ref: '#/components/schemas/MessageFunctionCall'
      type: object
      required:
        - function
      title: ChatToolChoice
    Model:
      title: Model
      type: object
      properties:
        provider:
          title: Provider
          type: string
          description: >-
            The LLM provider (e.g. openai, anthropic, google, openai.azure,
            vertexai, mistral, cohere, amazon.bedrock, huggingface).
        model_config_display_name:
          anyOf:
            - type: string
              maxLength: 255
            - type: 'null'
          default: null
          title: Model Config Display Name
          description: Optional display name for the model configuration.
        base_model:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          default: null
          title: Base Model
          description: The base model name (e.g. for fine-tuned models).
        name:
          title: Name
          type: string
          description: The model name (e.g. gpt-4o, claude-sonnet-4-20250514).
        parameters:
          title: Parameters
          default: {}
          type: object
          description: Model parameters (e.g. temperature, max_tokens, top_p).
        display_params:
          title: Display Params
          default: {}
          type: object
          description: Display-friendly parameter values shown in the UI.
        api_type:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Api Type
          description: >-
            The API type (e.g. chat.completions, responses, images). Used to
            select the correct API endpoint for the provider.
      required:
        - provider
        - name
    WebAnnotation:
      properties:
        type:
          const: url_citation
          title: Type
          type: string
        title:
          type: string
          title: Title
        url:
          type: string
          title: Url
        start_index:
          type: integer
          title: Start Index
        end_index:
          type: integer
          title: End Index
        cited_text:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Cited Text
        encrypted_index:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Encrypted Index
      type: object
      required:
        - type
        - title
        - url
        - start_index
        - end_index
      title: WebAnnotation
    FileAnnotation:
      properties:
        type:
          const: file_citation
          title: Type
          type: string
        index:
          type: integer
          title: Index
        file_id:
          type: string
          title: File Id
        filename:
          type: string
          title: Filename
      type: object
      required:
        - type
        - index
        - file_id
        - filename
      title: FileAnnotation
    MapAnnotation:
      properties:
        type:
          const: map_citation
          title: Type
          type: string
        title:
          type: string
          title: Title
        url:
          type: string
          title: Url
        place_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Place Id
        start_index:
          type: integer
          title: Start Index
        end_index:
          type: integer
          title: End Index
        cited_text:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Cited Text
      type: object
      required:
        - type
        - title
        - url
        - start_index
        - end_index
      title: MapAnnotation
    ContainerFileAnnotation:
      properties:
        type:
          const: container_file_citation
          title: Type
          type: string
        container_id:
          type: string
          title: Container Id
        start_index:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Start Index
        end_index:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: End Index
        filename:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Filename
        file_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: File Id
      type: object
      required:
        - type
        - container_id
      title: ContainerFileAnnotation
    ImageURL:
      properties:
        url:
          type: string
          title: Url
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
      type: object
      required:
        - url
      title: ImageURL
    Media:
      properties:
        title:
          type: string
          title: Title
          default: media
          description: Title of the media
        type:
          anyOf:
            - type: string
            - type: 'null'
          title: Type
          default: image/jpeg
          description: MIME type of the media. For example, image/png, image/jpeg
        url:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Url
        format:
          type: string
          enum:
            - base64
            - url
            - neither
          title: Format
          default: neither
          description: Format of the media data.
      type: object
      title: Media
    WebSearchResult:
      properties:
        type:
          const: web_search_result
          default: web_search_result
          enum:
            - web_search_result
          title: Type
          type: string
        url:
          type: string
          default: ''
          title: Url
        title:
          type: string
          default: ''
          title: Title
        encrypted_content:
          type: string
          default: ''
          title: Encrypted Content
        page_age:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Page Age
      title: WebSearchResult
      type: object
    FunctionCall:
      properties:
        name:
          type: string
          title: Name
        arguments:
          type: string
          title: Arguments
      type: object
      required:
        - name
        - arguments
      title: FunctionCall
    ToolCall:
      properties:
        tool_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Tool Id
        id:
          type: string
          title: Id
        type:
          const: function
          title: Type
          default: function
        function:
          $ref: '#/components/schemas/FunctionCall'
      type: object
      required:
        - id
        - function
      title: ToolCall
    FunctionTool:
      description: A custom function tool definition.
      properties:
        type:
          const: function
          title: Type
          default: function
        function:
          $ref: '#/components/schemas/Function'
      type: object
      required:
        - function
      title: FunctionTool
    BuiltInTool:
      description: >-
        A provider-native built-in tool (e.g. web search, code interpreter,
        bash).
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        description:
          type: string
          title: Description
        provider:
          type: string
          title: Provider
        type:
          enum:
            - web_search
            - file_search
            - code_interpreter
            - image_generation
            - google_maps
            - url_context
            - mcp
            - bash
            - shell
            - apply_patch
            - text_editor
          title: Type
          type: string
        config:
          type: object
          title: Config
          description: >-
            Provider-specific tool configuration. Structure varies by provider
            and tool type.
      required:
        - id
        - name
        - description
        - provider
        - type
        - config
      title: BuiltInTool
      type: object
  responses:
    UnauthorizedError:
      description: Unauthorized - missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ValidationError:
      description: Validation error - request parameters or body are invalid.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/HTTPValidationError'
              - $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````