AppDirect Data Sources API

Manage knowledge bases and data sources for AI assistants

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appdirect-data-sources-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appdirect-data-sources-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: The Companies API allows developers to manage marketplace companies and their user memberships.
  title: Companies AI Embed Data Sources API
  license:
    name: Apache License, Version 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  version: v296.0-SNAPSHOT
servers:
- url: https://marketplace.appdirect.com/api
- url: https://virtserver.swaggerhub.com
tags:
- name: Data Sources
  description: Manage knowledge bases and data sources for AI assistants
paths:
  /api/v1/ai/{aiId}/data-sources:
    get:
      tags:
      - Data Sources
      summary: List data sources for the AI
      description: Retrieves a list of data sources associated with the given AI identifier.
      operationId: listAIDataSources
      parameters:
      - name: aiId
        in: path
        required: true
        description: The identifier of the AI whose data sources are to be retrieved.
        schema:
          type: string
      responses:
        '200':
          description: A list of data sources associated with the AI.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDataSourcesResponse'
        '404':
          description: AI not found with the given identifier.
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
    post:
      tags:
      - Data Sources
      summary: Add an existing data source to the specified AI
      description: Associates an existing data source with the specified AI.
      operationId: addDataSourceToAI
      parameters:
      - name: aiId
        in: path
        required: true
        description: The unique identifier for the AI to which the data source is to be added.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dataSourceId:
                  type: string
                  description: The unique identifier of the existing data source to be added.
              required:
              - dataSourceId
      responses:
        '201':
          description: Data source successfully added to the AI.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAIDataSourceResponse'
        '400':
          description: Bad request, malformed request syntax or invalid request message framing.
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: Not Found, either of the specified AI or data source are not found.
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
    delete:
      tags:
      - Data Sources
      summary: Delete all data sources from the AI
      description: Requests deletion of all data sources associated with the specified AI.
      operationId: deleteAllAIDataSources
      parameters:
      - name: aiId
        in: path
        required: true
        description: The identifier of the AI whose data sources are to be deleted.
        schema:
          type: string
      responses:
        '204':
          description: Delete request accepted.
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: AI not found with the given identifier.
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/api:
    post:
      tags:
      - Data Sources
      summary: Create a new API data source for the specified AI
      description: Adds a new API data source with a specified name and JSON payload for the given AI.
      operationId: createApiDataSource
      parameters:
      - name: aiId
        in: path
        required: true
        description: The unique identifier for the AI.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the data source.
                data:
                  type: object
                  description: The JSON payload to be used as the data source's knowledge.
              required:
              - name
              - data
      responses:
        '201':
          description: Data source successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSource'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: AI not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/file:
    post:
      tags:
      - Data Sources
      summary: 'Adds a file upload data source for the specified AI. Max file size: 4.5Mb.'
      parameters:
      - in: path
        name: aiId
        required: true
        schema:
          type: string
        description: The unique identifier for the AI.
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '201':
          description: File uploaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSource'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: AI not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/file-blob:
    post:
      tags:
      - Data Sources
      summary: Initialize a file-blob upload for the AI
      description: Generates a signed upload token for Vercel Blob and creates the data source after upload.
      operationId: createFileBlobDataSource
      parameters:
      - in: path
        name: aiId
        required: true
        schema:
          type: string
        description: The unique identifier for the AI.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: Upload token created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VercelBlobUploadResponse'
        '400':
          description: Bad request
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/web-urls:
    post:
      tags:
      - Data Sources
      summary: Create a web URL data source for the AI
      description: Creates a web URL knowledge source and associates it with the AI.
      operationId: createWebUrlDataSource
      parameters:
      - in: path
        name: aiId
        required: true
        schema:
          type: string
        description: The unique identifier for the AI.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebUrlDataSourceInput'
      responses:
        '201':
          description: Data source created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSource'
        '403':
          description: Forbidden - web URL data source requires a paid plan.
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/google-drive:
    post:
      tags:
      - Data Sources
      summary: Create Google Drive data sources for the AI
      description: Creates Google Drive knowledge sources and associates them with the AI.
      operationId: createGoogleDriveDataSources
      parameters:
      - in: path
        name: aiId
        required: true
        schema:
          type: string
        description: The unique identifier for the AI.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGoogleDriveKnowledgeRequest'
      responses:
        '201':
          description: Data sources created.
        '400':
          description: Bad request
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/onedrive:
    post:
      tags:
      - Data Sources
      summary: Create a OneDrive data source for the AI
      description: Creates a OneDrive knowledge source and associates it with the AI.
      operationId: createOneDriveDataSource
      parameters:
      - in: path
        name: aiId
        required: true
        schema:
          type: string
        description: The unique identifier for the AI.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOneDriveKnowledgeRequest'
      responses:
        '201':
          description: Data source created.
        '400':
          description: Bad request
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/confluence:
    post:
      tags:
      - Data Sources
      summary: Create a Confluence data source for the AI
      description: Creates a Confluence knowledge source and associates it with the AI.
      operationId: createConfluenceDataSource
      parameters:
      - in: path
        name: aiId
        required: true
        schema:
          type: string
        description: The unique identifier for the AI.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConfluenceKnowledgeRequest'
      responses:
        '201':
          description: Data source created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSource'
        '403':
          description: Forbidden - Confluence data source requires a paid plan.
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/jira:
    post:
      tags:
      - Data Sources
      summary: Create a Jira data source for the AI
      description: Creates a Jira knowledge source and associates it with the AI.
      operationId: createJiraDataSource
      parameters:
      - in: path
        name: aiId
        required: true
        schema:
          type: string
        description: The unique identifier for the AI.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateJiraKnowledgeRequest'
      responses:
        '201':
          description: Data source created.
        '403':
          description: Forbidden - Jira data source requires a paid plan.
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/github:
    post:
      tags:
      - Data Sources
      summary: Create a GitHub data source for the AI
      description: Creates a GitHub knowledge source and associates it with the AI.
      operationId: createGithubDataSource
      parameters:
      - in: path
        name: aiId
        required: true
        schema:
          type: string
        description: The unique identifier for the AI.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGithubKnowledgeRequest'
      responses:
        '201':
          description: Data source created.
        '403':
          description: Forbidden - GitHub data source requires a paid plan.
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/{dataSourceId}:
    delete:
      tags:
      - Data Sources
      summary: Remove a data source from the AI
      description: Removes the specified data source from the AI.
      operationId: removeAIDataSource
      parameters:
      - name: aiId
        in: path
        required: true
        description: The identifier of the AI.
        schema:
          type: string
      - name: dataSourceId
        in: path
        required: true
        description: The identifier of the data source to remove.
        schema:
          type: string
      responses:
        '204':
          description: Data source removed.
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: AI or data source not found.
      security:
      - ApiKeyAuth: []
  /api/v1/ai/{aiId}/data-sources/delete:
    post:
      tags:
      - Data Sources
      summary: Delete multiple data sources from the AI
      description: Bulk delete data sources by ID for the specified AI.
      operationId: deleteAIDataSources
      parameters:
      - name: aiId
        in: path
        required: true
        description: The identifier of the AI.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteAIDataSourcesRequest'
      responses:
        '204':
          description: Delete request accepted.
        '400':
          description: Bad request
        '403':
          description: Forbidden, the user is not authorized to perform this action.
      security:
      - ApiKeyAuth: []
  /api/v1/data-sources:
    get:
      tags:
      - Data Sources
      summary: List all data sources
      description: Retrieves a list of data sources associated which the user has access to.
      operationId: listDataSources
      parameters:
      - name: search
        in: query
        required: false
        description: Search term for data sources.
        schema:
          type: string
      - name: type
        in: query
        required: false
        description: Filter by data source type.
        schema:
          $ref: '#/components/schemas/DataSourceType'
      - name: orderBy
        in: query
        required: false
        description: 'Order by field and direction. Prefix field name with ''+'' for ascending or ''-'' for descending order. Allowed fields: createdAt, lastIndexedAt, usageCount.'
        schema:
          type: string
          pattern: ^[+-](createdAt|lastIndexedAt|usageCount)$
      - name: page
        in: query
        required: false
        description: Page number for paginated results.
        schema:
          type: integer
      responses:
        '200':
          description: A list of all data sources which the user has access to.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDataSourceWithAiDetailsResponse'
        '500':
          description: Internal Server Error.
      security:
      - ApiKeyAuth: []
  /api/v1/data-sources/{dataSourceId}:
    patch:
      tags:
      - Data Sources
      summary: Update a Data Source
      description: Updates properties for the specified data source.
      operationId: updateDataSource
      parameters:
      - name: dataSourceId
        in: path
        required: true
        description: The unique identifier of the data source to update.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDataSourceRequest'
      responses:
        '200':
          description: Data source updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSource'
        '400':
          description: Bad request
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: Not Found, the specified data source ID does not exist.
      security:
      - ApiKeyAuth: []
    delete:
      tags:
      - Data Sources
      summary: Delete a Data Source
      description: Deletes a specific data source associated with the given AI identifier.
      operationId: deleteDataSource
      parameters:
      - name: dataSourceId
        in: path
        required: true
        description: The unique identifier of the data source to be deleted.
        schema:
          type: string
      responses:
        '204':
          description: Data source successfully deleted, no content to return.
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: Not Found, the specified data source ID does not exist.
      security:
      - ApiKeyAuth: []
  /api/v1/data-sources/{dataSourceId}/refresh:
    put:
      tags:
      - Data Sources
      summary: Refresh a Data Source
      description: This endpoint refreshes the specified data source.
      operationId: refreshDataSource
      parameters:
      - name: dataSourceId
        in: path
        required: true
        description: The unique identifier of the data source to be refreshed.
        schema:
          type: string
      - in: query
        name: forceRefresh
        description: Indicates if the data source should be refreshed even if the content has not been updated
        schema:
          type: boolean
      responses:
        '202':
          description: Request has been accepted for processing.
        '401':
          description: Missing authorization context. User must be authenticated.
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: Data source not found with the specified ID.
      security:
      - ApiKeyAuth: []
  /api/v1/data-sources/{dataSourceId}/stats:
    get:
      tags:
      - Data Sources
      summary: Get data source stats
      description: Retrieves indexing statistics for the specified data source.
      operationId: getDataSourceStats
      parameters:
      - name: dataSourceId
        in: path
        required: true
        description: The unique identifier of the data source.
        schema:
          type: string
      responses:
        '200':
          description: Data source stats.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceKnowledgeStats'
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: Data source not found.
      security:
      - ApiKeyAuth: []
  /api/v1/data-sources/{dataSourceId}/knowledge:
    get:
      tags:
      - Data Sources
      summary: List knowledge items for a data source
      description: Retrieves paginated knowledge items for the specified data source.
      operationId: listDataSourceKnowledge
      parameters:
      - name: dataSourceId
        in: path
        required: true
        description: The unique identifier of the data source.
        schema:
          type: string
      - name: first
        in: query
        required: false
        description: Number of items to return.
        schema:
          type: integer
      - name: cursor
        in: query
        required: false
        description: Cursor for pagination.
        schema:
          type: string
      - name: page
        in: query
        required: false
        description: Page number for pagination.
        schema:
          type: integer
      responses:
        '200':
          description: Paginated knowledge results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetKnowledgeResponse'
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: Data source not found.
      security:
      - ApiKeyAuth: []
  /api/v1/data-sources/{dataSourceId}/knowledge/{knowledgeId}:
    patch:
      tags:
      - Data Sources
      summary: Update a knowledge item
      description: Updates a knowledge item for the specified data source.
      operationId: updateKnowledgeItem
      parameters:
      - name: dataSourceId
        in: path
        required: true
        description: The unique identifier of the data source.
        schema:
          type: string
      - name: knowledgeId
        in: path
        required: true
        description: The identifier of the knowledge item.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateKnowledgeRequest'
      responses:
        '200':
          description: Knowledge item updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Knowledge'
        '400':
          description: Bad request
        '403':
          description: Forbidden, the user is not authorized to perform this action.
        '404':
          description: Data source or knowledge item not found.
      security:
      - ApiKeyAuth: []
components:
  schemas:
    CreateAIDataSourceResponse:
      type: object
      properties:
        aiId:
          type: string
        dataSourceId:
          type: string
      required:
      - aiId
      - dataSourceId
    AIReference:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        src:
          type: string
    KnowledgeOriginalContent:
      type: object
      properties:
        contentBlobUrl:
          type: string
        filename:
          type: string
        mimeType:
          type: string
        isContentStoredExternally:
          type: boolean
        contentUrl:
          type: string
    CreateConfluenceKnowledgeRequest:
      type: object
      properties:
        oauthTokenId:
          type: string
        pageId:
          type: string
        pageName:
          type: string
        contentType:
          type: string
        spaceId:
          type: string
        dataRefreshPeriod:
          $ref: '#/components/schemas/DataSourceRefreshPeriod'
        indexChildPages:
          type: boolean
        indexDriveFiles:
          type: boolean
        indexAttachments:
          type: boolean
        selectedDriveAccount:
          type: string
        archive:
          type: boolean
        allSpaces:
          type: boolean
      required:
      - oauthTokenId
      - pageName
    Knowledge:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          $ref: '#/components/schemas/DataSourceType'
        uniqueId:
          type: string
          nullable: true
        parentUniqueId:
          type: string
          nullable: true
        indexStatus:
          $ref: '#/components/schemas/KnowledgeIndexStatus'
        documentCount:
          type: integer
          nullable: true
        tokenCount:
          type: integer
          nullable: true
        originalContent:
          $ref: '#/components/schemas/KnowledgeOriginalContent'
          nullable: true
        documentsBlobUrl:
          type: string
          nullable: true
        indexPercentage:
          type: string
        metadata:
          type: object
          nullable: true
        isBlobStorageDeleted:
          type: boolean
        cite:
          type: boolean
    UserSummary:
      type: object
      properties:
        id:
          type: string
        email:
          type: string
        name:
          type: string
          nullable: true
    CreateGithubKnowledgeRequest:
      type: object
      properties:
        mode:
          type: string
          enum:
          - repos
          - all
        gitHubAppInstallationId:
          type: integer
        repos:
          type: array
          items:
            type: string
        dataRefreshPeriod:
          $ref: '#/components/schemas/DataSourceRefreshPeriod'
      required:
      - mode
      - gitHubAppInstallationId
    UpdateKnowledgeRequest:
      type: object
      properties:
        cite:
          type: boolean
      required:
      - cite
    GetKnowledgeResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Knowledge'
        pagination:
          type: object
          properties:
            nextCursor:
              type: string
    Error:
      type: object
      properties:
        error:
          type: string
    DataSourceIndexStatus:
      type: string
      description: The indexing status of the data source.
      enum:
      - INITIALIZED
      - INDEXING
      - REFRESHING
      - PARTIALLY_COMPLETED
      - COMPLETED
      - FAILED
      - DELETION_REQUESTED
      - DELETED
      - MISSING
    GoogleDriveFile:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    UpdateDataSourceRequest:
      type: object
      properties:
        refreshPeriod:
          $ref: '#/components/schemas/DataSourceRefreshPeriod'
        cite:
          type: boolean
          nullable: true
        ais:
          type: array
          items:
            type: string
        orgVisible:
          type: boolean
          nullable: true
    DeleteAIDataSourcesRequest:
      type: object
      properties:
        dataSourceIds:
          type: array
          items:
            type: string
      required:
      - dataSourceIds
    ListDataSourcesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/DataSource'
    PaginatedDataSourceWithAiDetailsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/DataSourceWithAiDetails'
        total:
          type: integer
    CreateGoogleDriveKnowledgeRequest:
      type: object
      properties:
        oauthTokenId:
          type: string
        files:
          type: array
          items:
            $ref: '#/components/schemas/GoogleDriveFile'
        dataRefreshPeriod:
          $ref: '#/components/schemas/DataSourceRefreshPeriod'
      required:
      - files
    DataSource:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the data source.
        createdAt:
          type: string
          format: date-time
          description: The date and time when the data source was created.
        updatedAt:
          type: string
          format: date-time
          description: The date and time when the data source was last updated.
        lastIndexedAt:
          type: string
          format: date-time
          nullable: true
          description: The date and time when the data source was last indexed, if applicable.
        orgId:
          type: string
          description: Organization ID that owns the data source.
        ownerUserId:
          type: string
          description: User ID that created the data source.
        name:
          type: string
          description: Name of the data source.
        type:
          $ref: '#/components/schemas/DataSourceType'
        refreshPeriod:
          $ref: '#/components/schemas/DataSourceRefreshPeriod'
        indexStatus:
          $ref: '#/components/schemas/DataSourceIndexStatus'
        indexPercentage:
          type: string
          description: Percentage of the indexing process completed, if applicable.
        data:
          type: object
          nullable: true
          description: Provider-specific data source configuration.
        cite:
          type: boolean
          description: Whether this data source should be cited in responses.
        orgVisible:
          type: boolean
          description: Whether this data source is visible to the organization.
    WebUrlFileType:
      type: string
      enum:
      - TEXT
      - CSV
      - PDF
      - MARKDOWN
      - DOC
      - XLS
    DataSourceKnowledgeStats:
      type: object
      properties:
        doneCount:
          type: integer
        failedCount:
          type: integer
        pendingCount:
          type: integer
        indexingCount:
          type: integer
        totalCount:
          type: integer
    VercelBlobUploadResponse:
      type: object
      properties:
        url:
          type: string
        pathname:
          type: string
        contentType:
          type: string
        size:
          type: integer
      additionalProperties: true
    DataSourceType:
      type: string
      description: The type of the data source.
      enum:
      - API
      - FILE_UPLOAD
      - GOOGLE_DRIVE
      - ONEDRIVE
      - WEB_URL
      - CONFLUENCE
      - JIRA
      - GITHUB
    DataSourceRefreshPeriod:
      type: string
      description: How frequently the data source should be refreshed.
      enum:
      - NEVER
      - DAILY
      - WEEKLY
      - MONTHLY
    CreateJiraKnowledgeRequest:
      type: object
      properties:
        oauthTokenId:
          type: string
        projectName:
          type: string
        projectKey:
          type: string
        dataRefreshPeriod:
          $ref: '#/components/schemas/DataSourceRefreshPeriod'
      required:
      - oauthTokenId
      - projectName
      - projectKey
    CreateOneDriveKnowledgeRequest:
      type: object
      properties:
        oauthTokenId:
          type: string
        fileId:
          type: string
        filename:
          type: string
        dataRefreshPeriod:
          $ref: '#/components/schemas/DataSourceRefreshPeriod'
      required:
      - oauthTokenId
      - fileId
      - filename
    WebUrlDataSourceInput:
      type: object
      properties:
        url:
          type: string
        dataRefreshPeriod:
          $ref: '#/components/schemas/DataSourceRefreshPeriod'
        includeFiles:
          type: boolean
        includedFileTypes:
          type: array
          items:
            $ref: '#/components/schemas/WebUrlFileType'
        includeUrlGlobs:
          type: array
          items:
            type: string
        excludeUrlGlobs:
          type: array
          items:
            type: string
        maxPages:
          type: integer
        maxMemory:
          type: integer
        timeout:
          type: integer
      required:
      - url
      - dataRefreshPeriod
      - includeFiles
      - includedFileTypes
    KnowledgeIndexStatus:
      type: string
      enum:
      - INITIALIZED
      - RETRIEVING_CONTENT
      - CONTENT_RETRIEVED
      - DOCUMENTS_CREATED
      - INDEXING
      - PARTIALLY_COMPLETED
      - COMPLETED
      - FAILED
      - DELETED
    DataSourceWithAiDetails:
      allOf:
      - $ref: '#/components/schemas/DataSource'
      - type: object
        properties:
          ais:
            type: array
            items:
              $ref: '#/components/schemas/AIReference'
          ownerUser:
            $ref: '#/components/schemas/UserSummary'
            nullable: true