OpenMetadata Test Cases API

Test case is a test definition to capture data quality tests against tables, columns, and other data assets.

Operations 26

GET /v1/dataQuality/testCases/{id}/failedRowsSample Get failed rows sample data #
PUT /v1/dataQuality/testCases/{id}/failedRowsSample Add failed rows sample data #
DELETE /v1/dataQuality/testCases/{id}/failedRowsSample Delete failed rows sample data #
PUT /v1/dataQuality/testCases/{id}/inspectionQuery Add inspection query data #
PUT /v1/dataQuality/testCases/logicalTestCases/bulk Add test cases to a logical test suite #
PUT /v1/dataQuality/testCases/logicalTestCases Add test cases to a logical test suite #
GET /v1/dataQuality/testCases List test cases #
PUT /v1/dataQuality/testCases Update test case #
POST /v1/dataQuality/testCases Create a test case #
POST /v1/dataQuality/testCases/createMany Create multiple test cases at once #
GET /v1/dataQuality/testCases/name/{fqn} Get a test case by fully qualified name #
DELETE /v1/dataQuality/testCases/name/{fqn} Delete a test case by fully qualified name #
GET /v1/dataQuality/testCases/{id} Get a test case by Id #
DELETE /v1/dataQuality/testCases/{id} Delete a test case by Id #
PATCH /v1/dataQuality/testCases/{id} Update a test case #
DELETE /v1/dataQuality/testCases/async/{id} Asynchronously delete a test case by Id #
DELETE /v1/dataQuality/testCases/logicalTestCases/{testSuiteId}/{id} Delete a logical test case by Id from a test suite #
GET /v1/dataQuality/testCases/name/{name}/export Export test cases in CSV format #
GET /v1/dataQuality/testCases/name/{name}/exportAsync Export test cases in CSV format asynchronously #
GET /v1/dataQuality/testCases/{id}/versions/{version} Get a version of the test case #
PUT /v1/dataQuality/testCases/name/{name}/import Import test cases from CSV #
PUT /v1/dataQuality/testCases/name/{name}/importAsync Import test cases from CSV asynchronously #
GET /v1/dataQuality/testCases/history List all entity versions within a time range #
GET /v1/dataQuality/testCases/search/list List test cases using search service #
GET /v1/dataQuality/testCases/{id}/versions List test case versions #
PUT /v1/dataQuality/testCases/restore Restore a soft deleted test case #

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/openmetadata-test-cases-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

openmetadata-test-cases-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenMetadata APIs Agent Executions Test Cases API
  description: Common types and API definition for OpenMetadata
  contact:
    name: OpenMetadata
    url: https://open-metadata.org
    email: openmetadata-dev@googlegroups.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1.13'
servers:
- url: /api
  description: Current Host
- url: http://localhost:8585/api
  description: Endpoint URL
security:
- BearerAuth: []
tags:
- name: Test Cases
  description: Test case is a test definition to capture data quality tests against tables, columns, and other data assets.
paths:
  /v1/dataQuality/testCases/{id}/failedRowsSample:
    get:
      tags:
      - Test Cases
      summary: Get failed rows sample data
      description: Get a sample of failed rows for this test case.
      operationId: getFailedRowsSample
      parameters:
      - name: id
        in: path
        description: Id of the table
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successfully retrieved the test case with failed rows sample data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableData'
    put:
      tags:
      - Test Cases
      summary: Add failed rows sample data
      description: Add a sample of failed rows for this test case.
      operationId: addFailedRowsSample
      parameters:
      - name: id
        in: path
        description: Id of the test case
        required: true
        schema:
          type: string
          format: uuid
      - name: validate
        in: query
        schema:
          type: boolean
          default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TableData'
      responses:
        '200':
          description: Successfully update the test case with failed rows sample data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
        '400':
          description: Failed rows can only be added to a failed test case.
    delete:
      tags:
      - Test Cases
      summary: Delete failed rows sample data
      description: Delete a sample of failed rows for this test case.
      operationId: deleteFailedRowsSample
      parameters:
      - name: id
        in: path
        description: Id of the table
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: Failed rows sample data for test case {id} is not found.
  /v1/dataQuality/testCases/{id}/inspectionQuery:
    put:
      tags:
      - Test Cases
      summary: Add inspection query data
      description: Add an inspection query for this test case.
      operationId: addInspectionQuery
      parameters:
      - name: id
        in: path
        description: Id of the test case
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: string
      responses:
        '200':
          description: Successfully update the test case with an inspection query.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
  /v1/dataQuality/testCases/logicalTestCases/bulk:
    put:
      tags:
      - Test Cases
      summary: Add test cases to a logical test suite
      description: Add test cases to a logical test suite.
      operationId: addManyTestCasesToBundleTestSuite
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BundleSuiteBulkAddRequest'
      responses:
        '200':
          description: Successfully added test cases to the logical test suite.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuite'
  /v1/dataQuality/testCases/logicalTestCases:
    put:
      tags:
      - Test Cases
      summary: Add test cases to a logical test suite
      description: Add test cases to a logical test suite.
      operationId: addTestCasesToBundleTestSuite
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLogicalTestCases'
      responses:
        '200':
          description: Successfully added test cases to the logical test suite.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuite'
  /v1/dataQuality/testCases:
    get:
      tags:
      - Test Cases
      summary: List test cases
      description: Get a list of test. Use `fields` parameter to get only necessary fields. Use cursor-based pagination to limit the number entries in the list using `limit` and `before` or `after` query params.Use the `testSuite` field to get the Basic Test Suite linked to this test case or use the `testSuites` field to list test suites (Basic and Logical) linked.
      operationId: listTestCases
      parameters:
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,reviewers,entityStatus,testSuite,testDefinition,testSuites,incidentId,domains,tags,followers,dataProducts
      - name: limit
        in: query
        description: Limit the number tests returned. (1 to 1000000, default = 10)
        schema:
          maximum: 1000000
          minimum: 0
          type: integer
          format: int32
          default: 10
      - name: before
        in: query
        description: Returns list of tests before this cursor
        schema:
          type: string
      - name: after
        in: query
        description: Returns list of tests after this cursor
        schema:
          type: string
      - name: entityLink
        in: query
        description: Return list of tests by entity link
        schema:
          type: string
          example: <E#/{entityType}/{entityFQN}/{fieldName}>
      - name: columnName
        in: query
        description: Return list of tests by column names
        schema:
          type: string
          example: '{columnName}'
      - name: entityFQN
        in: query
        description: Return list of tests by entity FQN
        schema:
          type: string
          example: '{serviceName}.{databaseName}.{schemaName}.{tableName}.{columnName}'
      - name: testSuiteId
        in: query
        description: Returns list of tests filtered by the testSuite id
        schema:
          type: string
          format: uuid
      - name: includeAllTests
        in: query
        description: Include all the tests at the entity level
        schema:
          type: boolean
          default: false
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      - name: testCaseStatus
        in: query
        description: Filter test case by status
        schema:
          type: string
          enum:
          - Success
          - Failed
          - Aborted
          - Queued
      - name: testCaseType
        in: query
        description: Filter for test case type (e.g. column, table, all
        schema:
          type: string
          default: all
          enum:
          - column
          - table
          - all
      - name: createdBy
        in: query
        description: Filter test cases by the user who created them
        schema:
          type: string
      responses:
        '200':
          description: List of test definitions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCaseList'
    put:
      tags:
      - Test Cases
      summary: Update test case
      description: Create a TestCase, it it does not exist or update an existing TestCase.
      operationId: createOrUpdateTest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTestCase'
      responses:
        '200':
          description: The updated testCase.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
    post:
      tags:
      - Test Cases
      summary: Create a test case
      description: Create a test case
      operationId: createTestCase
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTestCase'
      responses:
        '200':
          description: The test
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
        '400':
          description: Bad request
  /v1/dataQuality/testCases/createMany:
    post:
      tags:
      - Test Cases
      summary: Create multiple test cases at once
      description: Create multiple test cases at once up to a limit of 100 per request.
      operationId: createManyTestCase
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CreateTestCase'
      responses:
        '200':
          description: The test
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
        '400':
          description: Bad request
        '413':
          description: Request entity too large (more than 100 test cases)
  /v1/dataQuality/testCases/name/{fqn}:
    get:
      tags:
      - Test Cases
      summary: Get a test case by fully qualified name
      description: Get a test case by `fullyQualifiedName`.
      operationId: getTestCaseByName
      parameters:
      - name: fqn
        in: path
        description: Fully qualified name of the test case
        required: true
        schema:
          type: string
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,reviewers,entityStatus,testSuite,testDefinition,testSuites,incidentId,domains,tags,followers,dataProducts
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      - name: includeRelations
        in: query
        description: 'Per-relation include control. Format: field:value,field2:value2. Example: owners:non-deleted,followers:all. Valid values: all, deleted, non-deleted. If not specified for a field, uses the entity''s include value.'
        schema:
          type: string
          example: owners:non-deleted,followers:all
      responses:
        '200':
          description: The TestCase
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
        '404':
          description: Test for instance {fqn} is not found
    delete:
      tags:
      - Test Cases
      summary: Delete a test case by fully qualified name
      description: Delete a testCase by `fullyQualifiedName`.
      operationId: deleteTestCaseByName
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: recursive
        in: query
        description: Recursively delete this entity and it's children. (Default `false`)
        schema:
          type: boolean
          default: false
      - name: fqn
        in: path
        description: Fully qualified name of the test case
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
        '404':
          description: TestCase for instance {fqn} is not found
  /v1/dataQuality/testCases/{id}:
    get:
      tags:
      - Test Cases
      summary: Get a test case by Id
      description: Get a TestCase by `Id`.
      operationId: get_3
      parameters:
      - name: id
        in: path
        description: Id of the test case
        required: true
        schema:
          type: string
          format: uuid
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,reviewers,entityStatus,testSuite,testDefinition,testSuites,incidentId,domains,tags,followers,dataProducts
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      - name: includeRelations
        in: query
        description: 'Per-relation include control. Format: field:value,field2:value2. Example: owners:non-deleted,followers:all. Valid values: all, deleted, non-deleted. If not specified for a field, uses the entity''s include value.'
        schema:
          type: string
          example: owners:non-deleted,followers:all
      responses:
        '200':
          description: The TestCases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
        '404':
          description: Test for instance {id} is not found
    delete:
      tags:
      - Test Cases
      summary: Delete a test case by Id
      description: Delete a test case by `Id`.
      operationId: deleteTestCase
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: recursive
        in: query
        description: Recursively delete this entity and it's children. (Default `false`)
        schema:
          type: boolean
          default: false
      - name: id
        in: path
        description: Id of the test case
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: Test case for instance {id} is not found
    patch:
      tags:
      - Test Cases
      summary: Update a test case
      description: Update an existing test using JsonPatch.
      externalDocs:
        description: JsonPatch RFC
        url: https://tools.ietf.org/html/rfc6902
      operationId: patchTest
      parameters:
      - name: id
        in: path
        description: Id of the test case
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: JsonPatch with array of operations
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/JsonPatch'
            example: '[{op:remove, path:/a},{op:add, path: /b, value: val}]'
      responses:
        default:
          description: default response
          content:
            application/json: {}
  /v1/dataQuality/testCases/async/{id}:
    delete:
      tags:
      - Test Cases
      summary: Asynchronously delete a test case by Id
      description: Asynchronously delete a test case by `Id`.
      operationId: deleteTestCaseAsync
      parameters:
      - name: hardDelete
        in: query
        description: Hard delete the entity. (Default = `false`)
        schema:
          type: boolean
          default: false
      - name: recursive
        in: query
        description: Recursively delete this entity and it's children. (Default `false`)
        schema:
          type: boolean
          default: false
      - name: id
        in: path
        description: Id of the test case
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: Test case for instance {id} is not found
  /v1/dataQuality/testCases/logicalTestCases/{testSuiteId}/{id}:
    delete:
      tags:
      - Test Cases
      summary: Delete a logical test case by Id from a test suite
      description: Delete a logical test case by `Id` a test suite.
      operationId: deleteLogicalTestCase
      parameters:
      - name: testSuiteId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '404':
          description: Logical test case for instance {id} is not found
  /v1/dataQuality/testCases/name/{name}/export:
    get:
      tags:
      - Test Cases
      summary: Export test cases in CSV format
      description: 'Export test cases in CSV format. You can export test cases at different levels:

        - Table level: Provide table FQN to export test cases for that table

        - Test suite level: Provide test suite FQN to export test cases in that test suite

        - Platform-wide: Use ''*'' to export all test cases across the platform'
      operationId: exportTestCases
      parameters:
      - name: name
        in: path
        description: Name can be table FQN, test suite FQN, or '*' for platform-wide export
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Exported CSV with test cases
          content:
            text/plain:
              schema:
                type: string
  /v1/dataQuality/testCases/name/{name}/exportAsync:
    get:
      tags:
      - Test Cases
      summary: Export test cases in CSV format asynchronously
      description: 'Export test cases in CSV format asynchronously. You can export test cases at different levels:

        - Table level: Provide table FQN to export test cases for that table

        - Test suite level: Provide test suite FQN to export test cases in that test suite

        - Platform-wide: Use ''*'' to export all test cases across the platform'
      operationId: exportTestCasesAsync
      parameters:
      - name: name
        in: path
        description: Name can be table FQN, test suite FQN, or '*' for platform-wide export
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Export initiated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
  /v1/dataQuality/testCases/{id}/versions/{version}:
    get:
      tags:
      - Test Cases
      summary: Get a version of the test case
      description: Get a version of the test case by given `Id`
      operationId: getSpecificTestCaseVersion
      parameters:
      - name: id
        in: path
        description: Id of the test case
        required: true
        schema:
          type: string
          format: uuid
      - name: version
        in: path
        description: Test version number in the form `major`.`minor`
        required: true
        schema:
          type: string
          example: 0.1 or 1.1
      responses:
        '200':
          description: Test
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
        '404':
          description: Test for instance {id} and version {version} is not found
  /v1/dataQuality/testCases/name/{name}/import:
    put:
      tags:
      - Test Cases
      summary: Import test cases from CSV
      description: Import test cases from CSV to create or update test cases. The CSV should follow the test case CSV format.
      operationId: importTestCases
      parameters:
      - name: name
        in: path
        description: Name parameter (currently not used, reserved for future use)
        required: true
        schema:
          type: string
      - name: dryRun
        in: query
        description: Dry-run when true is used for validating the CSV without really importing it. (default=true)
        schema:
          type: boolean
          default: true
      - name: targetEntityType
        in: query
        description: The entity type for which the TestCase are being added (e.g., 'testSuite' or 'table')
        schema:
          type: string
      requestBody:
        content:
          text/plain:
            schema:
              type: string
      responses:
        '200':
          description: Import result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CsvImportResult'
  /v1/dataQuality/testCases/name/{name}/importAsync:
    put:
      tags:
      - Test Cases
      summary: Import test cases from CSV asynchronously
      description: Import test cases from CSV asynchronously to create or update test cases. The CSV should follow the test case CSV format.
      operationId: importTestCasesAsync
      parameters:
      - name: name
        in: path
        description: Name parameter (currently not used, reserved for future use)
        required: true
        schema:
          type: string
      - name: dryRun
        in: query
        description: Dry-run when true is used for validating the CSV without really importing it. (default=true)
        schema:
          type: boolean
          default: true
      - name: targetEntityType
        in: query
        description: The entity type for which the TestCase are being added (e.g., 'testSuite' or 'table')
        schema:
          type: string
      requestBody:
        content:
          text/plain:
            schema:
              type: string
      responses:
        '200':
          description: Import initiated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
  /v1/dataQuality/testCases/history:
    get:
      tags:
      - Test Cases
      summary: List all entity versions within a time range
      description: 'Get a paginated list of all entity versions within a given time range specified by `startTs` and `endTs` in milliseconds since epoch. '
      operationId: listAllEntityVersionsByTimestamp_21
      parameters:
      - name: startTs
        in: query
        description: Start timestamp in milliseconds since epoch
        required: true
        schema:
          type: integer
          format: int64
      - name: endTs
        in: query
        description: End timestamp in milliseconds since epoch
        required: true
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: Limit the number of entity returned (1 to 1000000, default = 10)
        schema:
          maximum: 500
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: before
        in: query
        description: Returns list of entity versions before this cursor
        schema:
          type: string
      - name: after
        in: query
        description: Returns list of entity versions after this cursor
        schema:
          type: string
      responses:
        '200':
          description: List of all versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultList'
  /v1/dataQuality/testCases/search/list:
    get:
      tags:
      - Test Cases
      summary: List test cases using search service
      description: Get a list of test cases using the search service. Use `fields` parameter to get only necessary fields. Use offset/limit pagination to limit the number entries in the list using `limit` and `offset` query params.Use the `testSuite` field to get the Basic Test Suite linked to this test case or use the `testSuites` field to list test suites (Basic and Logical) linked.
      operationId: listTestCasesFromSearchService
      parameters:
      - name: fields
        in: query
        description: Fields requested in the returned resource
        schema:
          type: string
          example: owners,reviewers,entityStatus,testSuite,testDefinition,testSuites,incidentId,domains,tags,followers,dataProducts
      - name: limit
        in: query
        description: Limit the number tests returned. (1 to 1000000, default = 10)
        schema:
          maximum: 1000000
          minimum: 0
          type: integer
          format: int32
          default: 10
      - name: offset
        in: query
        description: Returns list of tests after this offset
        schema:
          type: string
          default: '0'
      - name: entityLink
        in: query
        description: Return list of tests by entity link
        schema:
          type: string
          example: <E#/{entityType}/{entityFQN}/{fieldName}>
      - name: testSuiteId
        in: query
        description: Returns list of tests filtered by a testSuite id
        schema:
          type: string
      - name: includeAllTests
        in: query
        description: Include all the tests at the entity level
        schema:
          type: boolean
          default: false
      - name: include
        in: query
        description: Include all, deleted, or non-deleted entities.
        schema:
          type: string
          default: non-deleted
          enum:
          - all
          - deleted
          - non-deleted
      - name: testCaseStatus
        in: query
        description: Filter test case by status
        schema:
          type: string
          enum:
          - Success
          - Failed
          - Aborted
          - Queued
      - name: testCaseType
        in: query
        description: Filter for test case type (e.g. column, table, all)
        schema:
          type: string
          default: all
          enum:
          - column
          - table
          - all
      - name: testPlatforms
        in: query
        description: Filter for test case by source (e.g. OpenMetadata, dbt, etc.)
        schema:
          type: string
      - name: dataQualityDimension
        in: query
        description: Filter for test case by data quality dimension (e.g. OpenMetadata, dbt, etc.)
        schema:
          type: string
      - name: startTimestamp
        in: query
        description: Parameter used to filter (inclusive) the test cases by the last execution timestamp (in milliseconds). Must be used in conjunction with `endTimestamp`
        schema:
          type: integer
          format: int64
      - name: endTimestamp
        in: query
        description: Parameter used to filter (inclusive) the test cases by the last execution timestamp (in milliseconds). Must be used in conjunction with `startTimestamp`
        schema:
          type: integer
          format: int64
      - name: sortField
        in: query
        description: Field used to sort the test cases listing
        schema:
          type: string
      - name: sortNestedPath
        in: query
        description: Set this field if your mapping is nested and you want to sort on a nested field
        schema:
          type: string
      - name: sortNestedMode
        in: query
        description: Set this field if your mapping is nested and you want to sort on a nested field
        schema:
          type: string
          example: min,max,avg,sum,median
      - name: sortType
        in: query
        description: Sort type
        schema:
          type: string
          default: desc
          enum:
          - asc
          - desc
      - name: includeFields
        in: query
        description: Return only required fields in the response
        schema:
          type: string
      - name: domain
        in: query
        description: domain filter to use in list
        schema:
          type: string
      - name: owner
        in: query
        description: owner filter to use in list
        schema:
          type: string
      - name: tags
        in: query
        description: tags filter to use in list
        schema:
          type: string
      - name: tier
        in: query
        description: tier filter to use in list
        schema:
          type: string
      - name: serviceName
        in: query
        description: service filter to use in list
        schema:
          type: string
      - name: q
        in: query
        description: search query term to use in list
        schema:
          type: string
      - name: queryString
        in: query
        description: raw elasticsearch query to use in list
        schema:
          type: string
      - name: createdBy
        in: query
        description: Filter test cases by the user who created them
        schema:
          type: string
      - name: followedBy
        in: query
        description: Filter test cases by entities followed by a user
        schema:
          type: string
      - name: columnName
        in: query
        description: Return list of tests by column names
        schema:
          type: string
          example: '{columnName}'
      responses:
        '200':
          description: List of test cases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCaseList'
  /v1/dataQuality/testCases/{id}/versions:
    get:
      tags:
      - Test Cases
      summary: List test case versions
      description: Get a list of all the versions of a testCases identified by `Id`
      operationId: listAllTestCaseVersion
      parameters:
      - name: id
        in: path
        description: Id of the test case
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: List of test versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityHistory'
  /v1/dataQuality/testCases/restore:
    put:
      tags:
      - Test Cases
      summary: Restore a soft deleted test case
      description: Restore a soft deleted test case.
      operationId: restore_17
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RestoreEntity'
      responses:
        '200':
          description: 'Successfully restored the Chart '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestCase'
components:
  schemas:
    Link:
      type: object
      properties:
        type:
          type: string
        params:
          type: object
          additionalProperties:
            type: string
        uri:
          type: string
          format: uri
        title:
          type: string
        uriBuilder:
          $ref: '#/components/schemas/UriBuilder'
        rel:
          type: string
        rels:
          type: array
          items:
            type: string
    EntityHistory:
      required:
      - entityType
      - versions
      type: object
      properties:
        entityType:
          type: string
        versions:
          type: array
          items:
            type: object
    AccessDetails:
      required:
      - timestamp
      type: object
      properties:
        timestamp:
          type: integer
          format: int64
        accessedBy:
          $ref: '#/components/schemas/EntityReference'
        accessedByAProcess:
          type: string
    NewCookie:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
        version:
          type: integer
          format: int32
        path:
          type: string
        domain:
          type: string
        comment:
          type: string
        maxAge:
          type: integer
          format: int32
        expiry:
          type: string
          format: date-time
        secure:
          type: boolean
        httpOnly:
          type: bo

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openmetadata/refs/heads/main/openapi/openmetadata-test-cases-api-openapi.yml