Skip to main content

Schema test suites

Generated from apiome-rest/openapi.yaml (API version 1.204.1) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: schema-test-suites · 11 operations

GET /v1/tenants/{tenant_slug}/schema-suites​

List saved schema test suites

Suites for the authenticated tenant, newest first, each carrying its newest run summary — including the regression flag the version and catalog detail surfaces badge on. ref narrows to the suites attached to one artifact ({kind}/{artifact} — a version or type segment is tolerated and ignored).

Operation id: list_schema_test_suites_v1_tenants__tenant_slug__schema_suites_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
refquerystring or nullnoNarrow to one artifact's suites.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list saved schema test suites.application/json array of SchemaTestSuiteModel
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/schema-suites​

Create a saved schema test suite

Persist a named set of payloads plus expected verdicts, attached to a stable schema reference (IXH-5.7). The reference survives revisions: either the stable form {kind}/{artifact}, or a full IXH-5.1 reference whose version segment is discarded ({kind}/{artifact}/{version}[/{type}]). registry/… is rejected — registry types have no revisions to track a regression across. Payload expectations use the IXH-1.1 corpus vocabulary: a valid payload must validate, every other class must not.

Operation id: create_schema_test_suite_v1_tenants__tenant_slug__schema_suites_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for create a saved schema test suite.

Responses

StatusDescriptionBody
201Successful response for create a saved schema test suite.application/json SchemaTestSuiteModel
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/schema-suites/import​

Import a suite from an IXH-1.1 corpus manifest

Create a suite from a corpus manifest plus its payload files — the inverse of the export endpoint, and the same reading the CLI's --suite mode performs: entries carrying the instance-payload feature become payloads, expected verdicts derive from validity_class, and non-payload entries are ignored.

Operation id: import_schema_test_suite_v1_tenants__tenant_slug__schema_suites_import_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for import a suite from an ixh-1.1 corpus manifest.

Responses

StatusDescriptionBody
201Successful response for import a suite from an ixh-1.1 corpus manifest.application/json SchemaTestSuiteModel
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/schema-suites/{suite_id}​

One suite with its payloads

Read one suite in full.

Raises: HTTPException: 403 without types:view, 404 when the suite is not visible.

Operation id: get_schema_test_suite_v1_tenants__tenant_slug__schema_suites__suite_id__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suite_idpathstringyesPath parameter identifying the suite id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for one suite with its payloads.application/json SchemaTestSuiteModel
422Validation Errorapplication/json HTTPValidationError

PATCH /v1/tenants/{tenant_slug}/schema-suites/{suite_id}​

Rename or re-describe a suite

Apply a metadata patch (payload edits use the payloads route).

Raises: HTTPException: 403 without types:edit, 404 when not visible, 409 for a duplicate name.

Operation id: update_schema_test_suite_v1_tenants__tenant_slug__schema_suites__suite_id__patch

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suite_idpathstringyesPath parameter identifying the suite id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for rename or re-describe a suite.

Responses

StatusDescriptionBody
200Successful response for rename or re-describe a suite.application/json SchemaTestSuiteModel
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/tenants/{tenant_slug}/schema-suites/{suite_id}​

Delete a suite and its history

Delete a suite; payloads, runs and results follow.

Raises: HTTPException: 403 without types:delete, 404 when the suite is not visible.

Operation id: delete_schema_test_suite_v1_tenants__tenant_slug__schema_suites__suite_id__delete

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suite_idpathstringyesPath parameter identifying the suite id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
204Successful response for delete a suite and its history.—
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/schema-suites/{suite_id}/export​

Export a suite in the IXH-1.1 corpus manifest format

The suite as a corpus manifest plus payload files. Materialize each files[*].content at its files[*].path next to a manifest.json holding manifest, and the set runs in CI unchanged: apiome schema test --schema <ref> --suite manifest.json.

Operation id: export_schema_test_suite_v1_tenants__tenant_slug__schema_suites__suite_id__export_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suite_idpathstringyesPath parameter identifying the suite id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for export a suite in the ixh-1.1 corpus manifest format.application/json SuiteExportEnvelope
422Validation Errorapplication/json HTTPValidationError

PUT /v1/tenants/{tenant_slug}/schema-suites/{suite_id}/payloads​

Replace a suite's payload set

Replace-all semantics, bumping suite_version so every run can state which content version it executed. Partial edits are a client-side concern: read, modify, put back.

Operation id: replace_schema_test_suite_payloads_v1_tenants__tenant_slug__schema_suites__suite_id__payloads_put

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suite_idpathstringyesPath parameter identifying the suite id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for replace a suite's payload set.

Responses

StatusDescriptionBody
200Successful response for replace a suite's payload set.application/json SchemaTestSuiteModel
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/schema-suites/{suite_id}/runs​

A suite's run history

Newest first. limit is clamped to 1..100.

Operation id: list_schema_test_suite_runs_v1_tenants__tenant_slug__schema_suites__suite_id__runs_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suite_idpathstringyesPath parameter identifying the suite id segment.
limitqueryintegernoMaximum number of rows to return.
offsetqueryintegernoNumber of rows to skip before returning results.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for a suite's run history.application/json array of SuiteRunSummaryModel
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/schema-suites/{suite_id}/runs​

Run a suite against a revision

Execute every payload against the schema the suite is attached to, at the requested version (a label, a revision id, or latest), judge each verdict against its expectation, and record the run. The reference is resolved once and pinned to the resolved revision, so a moving latest cannot split a run across revisions. Each verdict is diffed against the suite's previous completed run: a payload that passed there and failed here is flagged as a regression, on the result and on the run. An unresolvable reference records a run with status: error — that the suite could not run against a revision is history, not an exception.

Gated on types:view, like the 5.1 validate endpoint this run repeats payload by payload: the run reads schemas and leaves bookkeeping about that read behind.

Operation id: run_schema_test_suite_v1_tenants__tenant_slug__schema_suites__suite_id__runs_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suite_idpathstringyesPath parameter identifying the suite id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for run a suite against a revision.

Responses

StatusDescriptionBody
201Successful response for run a suite against a revision.application/json SuiteRunDetailModel
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/schema-suites/{suite_id}/runs/{run_id}​

One run with its per-payload results

The full verdict record: per payload, the expectation, the tri-state validation outcome, the judged status, the previous run's status for the same payload, the regression flag, and the capped findings.

Operation id: get_schema_test_suite_run_v1_tenants__tenant_slug__schema_suites__suite_id__runs__run_id__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
suite_idpathstringyesPath parameter identifying the suite id segment.
run_idpathstringyesPath parameter identifying the run id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for one run with its per-payload results.application/json SuiteRunDetailModel
422Validation Errorapplication/json HTTPValidationError

Schemas used​

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

SchemaTestSuiteCreateRequest​

A new suite: a name, a stable schema reference, and optional initial payloads.

PropertyTypeRequiredDescription
namestringyesSuite name, unique per tenant.
descriptionstring or nullnoOptional description.
refstringyesThe schema reference the suite is attached to. Either the stable form {kind}/{artifact}[/latest/{type}] or a full IXH-5.1 reference {kind}/{artifact}/{version}[/{type}] — the version segment is discarded, because a suite outlives any one revision. registry/… is rejected: registry types have no revisions, so there is nothing to track a regression across.
payloadsarray of SuitePayloadModelnoPayloads.

SchemaTestSuiteModel​

A suite as every read returns it.

PropertyTypeRequiredDescription
idstringyesStable resource identifier.
namestringyesHuman-readable name.
descriptionstring or nullnoFree-text description.
refstringyesThe stable reference: {kind}/{artifact}[/{type}].
ref_kindenum "project", "catalog"yesRef Kind.
ref_artifactstringyesRef Artifact.
ref_artifact_idstring or nullnoRef Artifact ID.
ref_typestring or nullnoRef Type.
suite_versionintegeryesSuite Version.
payload_countintegernoNumber of payload.
payloadsarray of SuitePayloadModel or nullnoPopulated on detail reads; omitted from listings.
latest_runSuiteRunSummaryModel or nullnoThe newest run, so listings can feed the regression badge.
created_atstring (date-time) or nullnoCreation timestamp (ISO 8601).
updated_atstring (date-time) or nullnoLast update timestamp (ISO 8601).

SchemaTestSuiteUpdateRequest​

A metadata patch: rename and/or re-describe. Payload edits use the payloads route.

PropertyTypeRequiredDescription
namestring or nullnoHuman-readable name.
descriptionstring or nullnoFree-text description.
clear_descriptionbooleannoSet the description to null (distinct from omitting it).

SuiteExportEnvelope​

A suite in the IXH-1.1 corpus manifest format: the manifest plus the payload files.

Materialize files[*].content at files[*].path next to a manifest.json holding manifest and the set runs in CI unchanged: apiome schema test --schema <ref> --suite manifest.json.

PropertyTypeRequiredDescription
suiteSchemaTestSuiteModelyesSuite.
manifestobjectyesAn IXH-1.1 corpus manifest document.
filesarray of SuiteFileModelnoFiles.

SuiteImportRequest​

A suite to create from a corpus manifest plus its payload files.

PropertyTypeRequiredDescription
namestringyesName for the created suite.
descriptionstring or nullnoFree-text description.
refstringyesThe schema reference to attach the suite to (create-form grammar).
manifestobjectyesAn IXH-1.1 corpus manifest document.
filesarray of SuiteFileModelnoFiles.

SuitePayloadsReplaceRequest​

The full replacement payload set; applying it bumps suite_version.

PropertyTypeRequiredDescription
payloadsarray of SuitePayloadModelnoPayloads.

SuiteRunDetailModel​

A run with its per-payload results.

PropertyTypeRequiredDescription
idstringyesStable resource identifier.
suite_versionintegeryesSuite content version the run executed.
requested_refstringyesThe concrete reference the run was asked to target.
resolved_revision_idstring or nullnoThe pinned revision; null when resolution failed.
resolved_version_labelstring or nullnoResolved Version Label.
triggerenum "manual", "revision"yesTrigger.
statusenum "completed", "error"yescompleted = every payload judged; error = the run could not execute.
totalintegeryesTotal.
passedintegeryesPassed.
failedintegeryesFailed.
erroredintegeryesErrored.
regressionbooleanyesTrue when any payload previously passed and now failed.
baseline_run_idstring or nullnoThe prior completed run the verdict diff was computed against.
messagestring or nullnoMessage.
created_atstring (date-time) or nullnoCreation timestamp (ISO 8601).
resultsarray of SuiteRunResultModelnoResults.

SuiteRunRequest​

What to run a suite against.

PropertyTypeRequiredDescription
versionstringnoA version label, a revision id, or latest.
triggerenum "manual", "revision"nomanual for a user-initiated run; revision when fired for a new revision.
max_findingsintegernoFindings persisted per payload; 0 uses the server default (APIOME_SCHEMA_SUITE_RESULT_FINDINGS_CAP).

SuiteRunSummaryModel​

One run of a suite, without its per-payload results.

PropertyTypeRequiredDescription
idstringyesStable resource identifier.
suite_versionintegeryesSuite content version the run executed.
requested_refstringyesThe concrete reference the run was asked to target.
resolved_revision_idstring or nullnoThe pinned revision; null when resolution failed.
resolved_version_labelstring or nullnoResolved Version Label.
triggerenum "manual", "revision"yesTrigger.
statusenum "completed", "error"yescompleted = every payload judged; error = the run could not execute.
totalintegeryesTotal.
passedintegeryesPassed.
failedintegeryesFailed.
erroredintegeryesErrored.
regressionbooleanyesTrue when any payload previously passed and now failed.
baseline_run_idstring or nullnoThe prior completed run the verdict diff was computed against.
messagestring or nullnoMessage.
created_atstring (date-time) or nullnoCreation timestamp (ISO 8601).