---
components:
  schemas:
    ThreadObject:
      type: object
      properties:
        id:
          type: string
          description: |
            The identifier of the thread, defaults to foldername.
          example: thread_....
        object:
          type: string
          description: |
            Type of the object, defaults to thread.
          example: thread
        title:
          type: string
          description: >
            A brief summary or description of the thread, defaults to an empty
            string.
          example: funny physics joke
        assistants:
          type: array
          description: ""
          items:
            properties:
              assistant_id:
                type: string
                description: |
                  The identifier of assistant, defaults to "jan"
                example: jan
              model:
                type: object
                properties:
                  id:
                    type: string
                    description: ""
                    example: ...
                  settings:
                    type: object
                    description: >
                      Defaults to and overrides assistant.json's "settings" (and if none,
                      then model.json "settings")
                  parameters:
                    type: object
                    description: >
                      Defaults to and overrides assistant.json's "parameters" (and if
                      none, then model.json "parameters")
        created:
          type: integer
          format: int64
          description: >
            Unix timestamp representing the creation time of the thread,
            defaults to file creation time.
          example: 1231231
        metadata:
          type: object
          description: |
            Metadata associated with the thread, defaults to an empty object.
          example: {}
    GetThreadResponse:
      type: object
      properties:
        id:
          type: string
          description: The identifier of the thread.
          example: thread_abc123
        object:
          type: string
          description: Type of the object
          example: thread
        created_at:
          type: integer
          format: int64
          description: Unix timestamp representing the creation time of the thread.
          example: 1699014083
        assistants:
          type: array
          items:
            type: string
          description: List of assistants involved in the thread.
          example:
            - assistant-001
        metadata:
          type: object
          description: Metadata associated with the thread.
          example: {}
        messages:
          type: array
          items:
            type: string
          description: List of messages within the thread.
          example: []
    CreateThreadResponse:
      type: object
      properties:
        id:
          type: string
          description: The identifier of the newly created thread.
          example: thread_abc123
        object:
          type: string
          description: Type of the object, indicating it's a thread.
          example: thread
        created_at:
          type: integer
          format: int64
          description: Unix timestamp representing the creation time of the thread.
          example: 1699014083
        metadata:
          type: object
          description: Metadata associated with the newly created thread.
          example: {}
    CreateThreadObject:
      type: object
      properties:
        object:
          type: string
          description: Type of the object, indicating it's a thread.
          example: thread
        title:
          type: string
          description: >
            A brief summary or description of the thread, defaults to an empty
            string.
          example: funny physics joke
        assistants:
          type: array
          description: assistant involved in the thread
          items:
            properties:
              assistant_id:
                type: string
                description: |
                  The identifier of assistant, defaults to "jan"
                example: jan
              assistant_name:
                type: string
                description: |
                  The name of assistant, defaults to "Jan"
                example: Jan
              instructions:
                type: string
                description: >
                  The instruction of assistant, defaults to "Be my grammar corrector"
              model:
                type: object
                properties:
                  id:
                    type: string
                    description: Model id
                    example: mistral-ins-7b-q4
                  settings:
                    type: object
                    description: >
                      Defaults to and overrides assistant.json's "settings" (and if none,
                      then model.json "settings")
                  parameters:
                    type: object
                    description: >
                      Defaults to and overrides assistant.json's "parameters" (and if
                      none, then model.json "parameters")
                  engine:
                    type: string
                    description: Engine id
                    example: nitro
        metadata:
          type: object
          description: |
            Metadata associated with the thread, defaults to an empty object.
    ThreadMessageObject:
      type: object
      properties:
        role:
          type: string
          description: |
            "Role of the sender, either 'user' or 'assistant'."
          enum:
            - user
            - assistant
        content:
          type: string
          description: |
            "Text content of the message."
        file_ids:
          type: array
          items:
            type: string
          description: |
            "Array of file IDs associated with the message, if any."
    ModifyThreadResponse:
      type: object
      properties:
        id:
          type: string
          description: |
            "The identifier of the modified thread."
          example: thread_abc123
        object:
          type: string
          description: Type of the object, indicating it's a thread.
          example: thread
        created_at:
          type: integer
          format: int64
          description: Unix timestamp representing the creation time of the thread.
          example: 1699014083
        metadata:
          type: object
          description: Metadata associated with the modified thread.
          example: {}
    DeleteThreadResponse:
      type: object
      properties:
        id:
          type: string
          description: The identifier of the deleted thread.
          example: thread_abc123
        object:
          type: string
          description: Type of the object, indicating the thread has been deleted.
          example: thread.deleted
        deleted:
          type: boolean
          description: Indicates whether the thread was successfully deleted.
          example: true
