components:
  schemas:
    agentCollectionResponse:
      description: A list of agent resources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of agent resources.
          items:
            $ref: "#/components/schemas/minimizedAgent"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: agentCollectionResponse
      type: object
    asyncQueryResponse:
      description: The response model for an asynchronous query.
      properties:
        queryId:
          title: Queryid
          type: string
        querySessionId:
          title: Querysessionid
          type: string
      required:
        - queryId
        - querySessionId
      title: asyncQueryResponse
      type: object
    collectionCollectionResponse:
      description: A list of collection resources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of collection resources.
          items:
            $ref: "#/components/schemas/minimizedCollection"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: collectionCollectionResponse
      type: object
    llmCallCollectionResponse:
      description: A list of LLM call resources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of LLM call resources.
          items:
            $ref: "#/components/schemas/minimizedLlmCall"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: llmCallCollectionResponse
      type: object
    llmCallInput:
      description: The representation of an LLM call input.
      properties:
        content:
          nullable: true
          title: Content
          type: string
        modelName:
          nullable: true
          title: Modelname
          type: string
        modelProvider:
          nullable: true
          title: Modelprovider
          type: string
        temperature:
          nullable: true
          title: Temperature
          type: number
      title: llmCallInput
      type: object
    llmCallOutput:
      description: The representation of an LLM call output.
      properties:
        response:
          nullable: true
          title: Response
          type: string
        toolCalls:
          nullable: true
          title: Toolcalls
          type: array
      title: llmCallOutput
      type: object
    llmCollectionResponse:
      description: A list of LLM resources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of LLM resources.
          items:
            $ref: "#/components/schemas/minimizedLlm"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: llmCollectionResponse
      type: object
    minimizedAgent:
      description: A representation of an agent that includes only a subset of fields.
      properties:
        description:
          nullable: true
          title: Description
          type: string
        id:
          nullable: true
          title: Id
          type: string
        name:
          nullable: true
          title: Name
          type: string
      title: minimizedAgent
      type: object
    minimizedCollection:
      description: A representation of a collection that includes only a subset of fields.
      properties:
        description:
          nullable: true
          title: Description
          type: string
        id:
          nullable: true
          title: Id
          type: string
        name:
          nullable: true
          title: Name
          type: string
      title: minimizedCollection
      type: object
    minimizedLlm:
      description: A representation of an LLM that includes only a subset of fields.
      properties:
        description:
          nullable: true
          title: Description
          type: string
        id:
          nullable: true
          title: Id
          type: string
        name:
          nullable: true
          title: Name
          type: string
        type:
          nullable: true
          title: Type
          type: string
      title: minimizedLlm
      type: object
    minimizedLlmCall:
      description: A representation of an LLM call that includes only a subset of fields.
      properties:
        completionCost:
          anyOf:
            - type: number
            - type: integer
          nullable: true
          title: Completioncost
        completionTokens:
          nullable: true
          title: Completiontokens
          type: integer
        id:
          nullable: true
          title: Id
          type: string
        input:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/llmCallInput"
          type: object
        llmId:
          nullable: true
          title: Llmid
          type: string
        output:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/llmCallOutput"
          type: object
        parentQueryId:
          nullable: true
          title: Parentqueryid
          type: string
        promptCost:
          anyOf:
            - type: number
            - type: integer
          nullable: true
          title: Promptcost
        promptTokens:
          nullable: true
          title: Prompttokens
          type: integer
      title: minimizedLlmCall
      type: object
    minimizedQuerySession:
      description: A representation of a query session that includes only a subset of fields.
      properties:
        id:
          nullable: true
          title: Id
          type: string
        insertTimestamp:
          nullable: true
          title: Inserttimestamp
          type: string
        title:
          nullable: true
          title: Title
          type: string
        updateTimestamp:
          nullable: true
          title: Updatetimestamp
          type: string
      title: minimizedQuerySession
      type: object
    minimizedRetrievalCall:
      description: A representation of a retrieval call that includes only a subset of fields.
      properties:
        completionCost:
          anyOf:
            - type: number
            - type: integer
          nullable: true
          title: Completioncost
        completionTokens:
          nullable: true
          title: Completiontokens
          type: integer
        id:
          nullable: true
          title: Id
          type: string
        input:
          nullable: true
          title: Input
          type: object
        output:
          nullable: true
          title: Output
          type: object
        parentQueryId:
          nullable: true
          title: Parentqueryid
          type: string
      title: minimizedRetrievalCall
      type: object
    minimizedToolCall:
      description: A representation of a tool call that includes only a subset of fields.
      properties:
        cost:
          anyOf:
            - type: number
            - type: integer
          nullable: true
          title: Cost
        id:
          nullable: true
          title: Id
          type: string
        input:
          nullable: true
          title: Input
          type: object
        output:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/toolCallOutput"
          type: object
        parentQueryId:
          nullable: true
          title: Parentqueryid
          type: string
        toolName:
          nullable: true
          title: Toolname
          type: string
        toolServerId:
          nullable: true
          title: Toolserverid
          type: string
      title: minimizedToolCall
      type: object
    queryCollectionResponse:
      description: A list of query resources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of query resources.
          items:
            $ref: "#/components/schemas/queryResponse"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: queryCollectionResponse
      type: object
    queryOutput:
      description: The model for the query's response.
      properties:
        answer:
          nullable: true
          title: Answer
          type: string
        context:
          nullable: true
          title: Context
          type: array
        toolCalls:
          nullable: true
          title: Toolcalls
          type: array
        usageMetadata:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/usageMetadata"
          type: object
      title: queryOutput
      type: object
    queryResponse:
      description: The model for the query's response.
      properties:
        content:
          title: Content
          type: string
        errorCode:
          title: Errorcode
          type: integer
        errorText:
          nullable: true
          title: Errortext
          type: string
        id:
          title: Id
          type: string
        origin:
          title: Origin
          type: string
        parentQueryId:
          nullable: true
          title: Parentqueryid
          type: string
        querySessionId:
          title: Querysessionid
          type: string
        response:
          nullable: true
          oneOf:
            - $ref: "#/components/schemas/queryOutput"
          type: object
        target:
          title: Target
          type: string
        targetId:
          additionalProperties: true
          title: Targetid
          type: object
        userEmail:
          title: Useremail
          type: string
      required:
        - id
        - content
        - userEmail
        - errorCode
        - querySessionId
        - origin
        - target
        - targetId
      title: queryResponse
      type: object
    querySessionCollectionResponse:
      description: A list of query session resources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of query session resources.
          items:
            $ref: "#/components/schemas/minimizedQuerySession"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: querySessionCollectionResponse
      type: object
    responseMessage:
      description: The response model for creating a source object.
      properties:
        message:
          description: A confirmation message indicating the result of the source creation.
          title: Message
          type: string
      required:
        - message
      title: responseMessage
      type: object
    retrievalCallCollectionResponse:
      description: A list of retrieval call resources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of retrieval call resources.
          items:
            $ref: "#/components/schemas/minimizedRetrievalCall"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: retrievalCallCollectionResponse
      type: object
    sasApiException:
      description: A custom exception for SAS API errors.
      properties:
        details:
          example:
            - "correlator: 123e4567-e89b-12d3-a456-426614174000"
          items:
            type: string
          title: Details
          type: array
        errorCode:
          example: 401
          title: Error Code
          type: number
        httpStatusCode:
          example: 401
          title: HTTP Status Code
          type: number
        message:
          example: Credentials could not be validated.
          title: Message
          type: string
        version:
          example: 2
          title: Version
          type: number
      title: sasApiException
      type: object
    source:
      description: The model for a source object.
      properties:
        description:
          nullable: true
          title: Description
          type: string
        id:
          description: The source primary key.
          title: Id
          type: string
        inputType:
          description: The input type of the source.
          title: Inputtype
          type: string
        insertTimestamp:
          description: Insert timestamp for the source.
          nullable: true
          title: Inserttimestamp
          type: string
        localUri:
          description: The local URI of the source.
          nullable: true
          title: Localuri
          type: string
        metadata:
          description: Metadata associated with the source.
          nullable: true
          title: Metadata
          type: object
        name:
          description: The source name.
          title: Name
          type: string
        remoteUri:
          description: The remote URI of the source.
          nullable: true
          title: Remoteuri
          type: string
        secrets:
          description: Secrets associated with the source.
          nullable: true
          title: Secrets
          type: object
        sourceTemplateId:
          nullable: true
          title: Sourcetemplateid
          type: string
        sourceTemplateVersion:
          nullable: true
          title: Sourcetemplateversion
          type: integer
        sourceType:
          description: The type of the source.
          title: Sourcetype
          type: string
        updateTimestamp:
          description: Update timestamp for the source.
          nullable: true
          title: Updatetimestamp
          type: string
      required:
        - id
        - name
        - sourceType
        - inputType
      title: Source
      type: object
    sourceCollection:
      description: A list of sources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of collection resources.
          items:
            $ref: "#/components/schemas/source"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          default: sources
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: sourceCollection
      type: object
    sourceFile:
      description: The model for a source file object.
      properties:
        filepath:
          description: The file path.
          title: Filepath
          type: string
        filters:
          description: Filters associated with the source file.
          nullable: true
          title: Filters
          type: object
        insertTimestamp:
          description: The time that the file was created.
          nullable: true
          title: Inserttimestamp
          type: string
        metadata:
          description: Metadata associated with the source file.
          nullable: true
          title: Metadata
          type: object
        sourceFileId:
          description: "Note: This is a Primary Key.<pk/>"
          title: Sourcefileid
          type: string
        sourceId:
          description: "Note: This is a Foreign Key to `source.id`.<fk table='source' column='id'/>"
          title: Sourceid
          type: string
        updateTimestamp:
          description: The time that the file was last modified.
          nullable: true
          title: Updatetimestamp
          type: string
      required:
        - sourceFileId
        - sourceId
        - filepath
      title: sourceFile
      type: object
    sourceFileCollection:
      description: A list of sources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of collection resources.
          items:
            $ref: "#/components/schemas/sourceFile"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          default: sourceFiles
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: sourceFileCollection
      type: object
    toolCallCollectionResponse:
      description: A list of tool call resources.
      properties:
        count:
          description: The number of results returned in the collection.
          nullable: true
          title: Count
          type: integer
        items:
          description: The representation of tool call resources.
          items:
            $ref: "#/components/schemas/minimizedToolCall"
          nullable: true
          title: Items
          type: array
        limit:
          description: The maximum number of results requested.
          nullable: true
          title: Limit
          type: integer
        name:
          description: The name of the collection requested.
          nullable: true
          title: Name
          type: string
        start:
          description: The starting index of the collection.
          nullable: true
          title: Start
          type: integer
      title: toolCallCollectionResponse
      type: object
    toolCallOutput:
      description: The representation of a tool call output.
      properties:
        content:
          nullable: true
          title: Content
          type: array
        isError:
          nullable: true
          title: Iserror
          type: boolean
        structuredContent:
          nullable: true
          title: Structuredcontent
          type: object
      title: toolCallOutput
      type: object
    uploadSourceFile:
      description: The schema to upload a source file.
      properties:
        file:
          format: binary
          title: File
          type: string
      required:
        - file
      title: Body_createSourceFile
      type: object
    usageMetadata:
      description: A model for usage metadata concerning a query.
      properties:
        llmCompletionCost:
          description: The cost of completion tokens.
          nullable: true
          title: Llmcompletioncost
          type: number
        llmCompletionTokens:
          description: The number of completion tokens used.
          nullable: true
          title: Llmcompletiontokens
          type: integer
        llmPromptCost:
          description: The cost of prompt tokens.
          nullable: true
          title: Llmpromptcost
          type: number
        llmPromptTokens:
          description: The number of prompt tokens used.
          nullable: true
          title: Llmprompttokens
          type: integer
        llmTotalCost:
          description: The total cost of tokens.
          nullable: true
          title: Llmtotalcost
          type: number
        llmTotalTokens:
          description: The total number of tokens used.
          nullable: true
          title: Llmtotaltokens
          type: integer
      title: usageMetadata
      type: object
    userAgentQueryRequest:
      additionalProperties: false
      description: A query from a user against a published agent.
      properties:
        agentId:
          title: Agentid
          type: string
        content:
          title: Content
          type: string
        querySessionId:
          nullable: true
          title: Querysessionid
          type: string
      required:
        - content
        - agentId
      title: userAgentQueryRequest
      type: object
    userCollectionQueryRequest:
      additionalProperties: false
      description: A query from a non-administrator user against a set of collections.
      properties:
        collectionIds:
          items:
            type: string
          title: Collectionids
          type: array
        content:
          title: Content
          type: string
        querySessionId:
          nullable: true
          title: Querysessionid
          type: string
      required:
        - content
        - collectionIds
      title: userCollectionQueryRequest
      type: object
  securitySchemes:
    httpBearer:
      description: The custom HTTP bearer token authentication.
      scheme: bearer
      type: http
info:
  contact:
    email: devex@sas.com
    name: SAS Developers
    url: https://developer.sas.com
  description: The Retrieval Agent Manager API enables users to query collections or agents for conversation and retrieve conversational responses.
  termsOfService: https://www.sas.com/en_us/legal/copyright.html
  title: SAS Retrieval Agent Manager
  version: "1"
openapi: 3.0.3
paths:
  /:
    get:
      description: Returns a list of the public endpoints.
      operationId: root
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  summary: An example response to a root request
                  value:
                    links:
                      - href: /
                        method: GET
                        rel: self
                        responseType: application/json
                        type: application/json
                        uri: /
                    version: "1"
          description: Successful Response
          headers:
            Content-Type:
              schema:
                example: application/json
                type: string
        "401":
          content:
            application/json:
              examples:
                example-1:
                  summary: An example response when a user is not authorized
                  value:
                    details:
                      - "correlator: 123e4567-e89b-12d3-a456-426614174000"
                    errorCode: 401
                    httpStatusCode: 401
                    message: The credentials could not be validated.
                    version: 2
              schema:
                $ref: "#/components/schemas/sasApiException"
          description: The user was not authenticated.
      security:
        - httpBearer: []
      summary: Get a list of the public endpoints
      tags:
        - Root
  /query:
    post:
      description: Creates a query.
      operationId: createQuery
      parameters:
        - description: This is an indicator for whether the query response is returned. If 'true', this call returns the query response. If 'false', the query is executed asynchronously and the response must be fetched separately. This parameter is required.
          in: query
          name: synchronous
          required: true
          schema:
            description: This is an indicator for whether the query response is returned. If 'true', this call returns the query response. If 'false', the query is executed asynchronously and the response must be fetched separately. This parameter is required.
            title: Synchronous
            type: boolean
        - description: This is an indicator for whether to persist the query in the SAS Retrieval Agent Manager database. If 'true', the query persists. If 'false', the query is not retained in the database.
          in: query
          name: persistent
          required: false
          schema:
            default: true
            description: This is an indicator for whether to persist the query in the SAS Retrieval Agent Manager database. If 'true', the query persists. If 'false', the query is not retained in the database.
            title: Persistent
            type: boolean
      requestBody:
        content:
          application/json:
            examples:
              example-1:
                summary: An example request by the user to query an agent
                value:
                  agentId: 6fd000e3-5945-40cf-83ef-0c7fc19fcde1
                  content: What is the weather like today?
                  querySessionId: 4fd000e3-5945-40cf-83ef-0c7fc19fcde1
              example-2:
                summary: An example request by the user to query a collection
                value:
                  collectionIds:
                    - 079b46b9-fbc4-44ce-8cb1-163330e4d812
                    - 86cc0aae-04ed-4e0f-97d2-53e8b7dc9881
                  content: What is the weather like today?
                  querySessionId: 4fd000e3-5945-40cf-83ef-0c7fc19fcde1
            schema:
              anyOf:
                - $ref: "#/components/schemas/userAgentQueryRequest"
                - $ref: "#/components/schemas/userCollectionQueryRequest"
              title: Query
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                example-1:
                  summary: An example response to a synchronous query
                  value:
                    content: What is a business result?
                    errorCode: 0
                    id: 6fd000e3-5945-40cf-83ef-0c7fc19fcde1
                    origin: agent
                    parentQueryId: 4fd000e3-5945-40cf-83ef-0c7fc19fcde1
                    querySessionId: 21647604-55c0-4283-b5df-7e1c273d86aa
                    response:
                      answer: A business result is a measurable outcome that indicates the success or progress of a company in achieving its strategic goals and objectives.
                      context: []
                      toolCalls: []
                      usageMetadata:
                        llmCompletionCost: 0.00056
                        llmCompletionTokens: 28
                        llmPromptCost: 0.00016
                        llmPromptTokens: 8
                        llmTotalCost: 0.00072
                        llmTotalTokens: 36
                    target: collection
                    targetId:
                      configurationIds:
                        - 86cc0aae-04ed-4e0f-97d2-53e8b7dc9881
                        - 079b46b9-fbc4-44ce-8cb1-163330e4d812
                    userEmail: appadmin@example.com
              schema:
                $ref: "#/components/schemas/queryResponse"
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                example: application/json
                type: string
        "201":
          content:
            application/json:
              examples:
                example-1:
                  summary: An example response to a synchronous query
                  value:
                    content: What is a business result?
                    errorCode: 0
                    id: 6fd000e3-5945-40cf-83ef-0c7fc19fcde1
                    origin: agent
                    parentQueryId: 4fd000e3-5945-40cf-83ef-0c7fc19fcde1
                    querySessionId: 21647604-55c0-4283-b5df-7e1c273d86aa
                    response:
                      answer: A business result is a measurable outcome that indicates the success or progress of a company in achieving its strategic goals and objectives.
                      context: []
                      toolCalls: []
                      usageMetadata:
                        llmCompletionCost: 0.00056
                        llmCompletionTokens: 28
                        llmPromptCost: 0.00016
                        llmPromptTokens: 8
                        llmTotalCost: 0.00072
                        llmTotalTokens: 36
                    target: collection
                    targetId:
                      configurationIds:
                        - 86cc0aae-04ed-4e0f-97d2-53e8b7dc9881
                        - 079b46b9-fbc4-44ce-8cb1-163330e4d812
                    userEmail: appadmin@example.com
                example-2:
                  summary: An example response to an asynchronous query
                  value:
                    queryId: 6fd000e3-5945-40cf-83ef-0c7fc19fcde1
                    querySessionId: 4fd000e3-5945-40cf-83ef-0c7fc19fcde1
              schema:
                oneOf:
                  - $ref: "#/components/schemas/queryResponse"
                  - $ref: "#/components/schemas/asyncQueryResponse"
          description: A resource was created.
          headers:
            Content-Type:
              schema:
                example: application/json
                type: string
        "400":
          content:
            application/json:
              examples:
                example-1:
                  summary: An example response when the request is invalid
                  value:
                    details:
                      - "correlator: 123e4567-e89b-12d3-a456-426614174000"
                    errorCode: 400
                    httpStatusCode: 400
                    message: Invalid query parameter.
                    version: 2
              schema:
                $ref: "#/components/schemas/sasApiException"
          description: The request was invalid.
        "401":
          content:
            application/json:
              examples:
                example-1:
                  summary: An example response when a user is not authorized
                  value:
                    details:
                      - "correlator: 123e4567-e89b-12d3-a456-426614174000"
                    errorCode: 401
                    httpStatusCode: 401
                    message: The credentials could not be validated.
                    version: 2
              schema:
                $ref: "#/components/schemas/sasApiException"
          description: The user was not authenticated.
        "422":
          content:
            application/json:
              examples:
                example-1:
                  summary: An example response when a validation error occurs
                  value:
                    details:
                      - "correlator: 123e4567-e89b-12d3-a456-426614174000"
                    errorCode: 422
                    httpStatusCode: 422
                    message: Missing or invalid fields in request body or parameters.
                    version: 2
              schema:
                $ref: "#/components/schemas/sasApiException"
          description: The server understands the request but was unable to process the contained instructions.
      security:
        - httpBearer: []
      summary: Create a query
      tags:
        - Query
servers:
  - description: The base URL for the service.
    url: https://example.com/SASRetrievalAgentManager/api/v1
tags:
  - description: Contains the operations for the root resource.
    name: Root
  - description: Contains the operations to manage a query.
    name: Query
  - description: Contains the operations to manage query sessions.
    name: Query Sessions
  - description: Contains the operations to manage collections.
    name: Collections
  - description: Contains the operations to manage LLMs.
    name: Llms
  - description: Contains the operations to manage LLM calls.
    name: Llm Calls
  - description: Contains the operations to manage tool calls.
    name: Tool Calls
  - description: Contains the operations to manage retrieval calls.
    name: Retrieval Calls
  - description: Contains the operations to manage agents.
    name: Agents
  - description: Contains the operations to sources and files.
    name: Source
