PUT /v1/dataQuality/testSuites
# Create a logical test suite
curl -X PUT "{base_url}/api/v1/dataQuality/testSuites" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "critical_data_quality_checks",
"displayName": "Critical Data Quality Checks",
"description": "Groups all critical data quality test cases across production tables"
}'
from metadata.sdk import configure
from metadata.sdk.entities import TestSuites
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
ts = TestSuites.retrieve("e86a9a11-852f-4bac-b5a7-993b2bbbb572")
ts.description = "Updated: Critical data quality checks for production tables"
updated = TestSuites.update(ts)
print(f"Updated to version {updated.version.root}")
// client is an initialized OpenMetadataClient.
var testSuiteId = "e86a9a11-852f-4bac-b5a7-993b2bbbb572";
var testSuite = client.testSuites().get(testSuiteId);
testSuite.setDescription("Updated: Critical data quality checks for production tables");
var updated = client.testSuites().update(testSuiteId, testSuite);
# Update by ID
curl -X PATCH "{base_url}/api/v1/dataQuality/testSuites/e86a9a11-852f-4bac-b5a7-993b2bbbb572" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Critical data quality checks for production tables"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/dataQuality/testSuites/name/sample_data.ecommerce_db.shopify.dim_address.testSuite" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated description"}
]'
{
"id": "e86a9a11-852f-4bac-b5a7-993b2bbbb572",
"name": "sample_data.ecommerce_db.shopify.dim_address.testSuite",
"displayName": "Data Contract - dim_address_comprehensive_contract",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.dim_address.testSuite",
"description": "Updated: Critical data quality checks for production tables",
"version": 0.2,
"updatedAt": 1769982800000,
"updatedBy": "admin",
"deleted": false,
"owners": [],
"basic": true
}
Update a Test Suite
Create or update a test suite with a full request body
PUT
/
v1
/
dataQuality
/
testSuites
PUT /v1/dataQuality/testSuites
# Create a logical test suite
curl -X PUT "{base_url}/api/v1/dataQuality/testSuites" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "critical_data_quality_checks",
"displayName": "Critical Data Quality Checks",
"description": "Groups all critical data quality test cases across production tables"
}'
from metadata.sdk import configure
from metadata.sdk.entities import TestSuites
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
ts = TestSuites.retrieve("e86a9a11-852f-4bac-b5a7-993b2bbbb572")
ts.description = "Updated: Critical data quality checks for production tables"
updated = TestSuites.update(ts)
print(f"Updated to version {updated.version.root}")
// client is an initialized OpenMetadataClient.
var testSuiteId = "e86a9a11-852f-4bac-b5a7-993b2bbbb572";
var testSuite = client.testSuites().get(testSuiteId);
testSuite.setDescription("Updated: Critical data quality checks for production tables");
var updated = client.testSuites().update(testSuiteId, testSuite);
# Update by ID
curl -X PATCH "{base_url}/api/v1/dataQuality/testSuites/e86a9a11-852f-4bac-b5a7-993b2bbbb572" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Critical data quality checks for production tables"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/dataQuality/testSuites/name/sample_data.ecommerce_db.shopify.dim_address.testSuite" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated description"}
]'
{
"id": "e86a9a11-852f-4bac-b5a7-993b2bbbb572",
"name": "sample_data.ecommerce_db.shopify.dim_address.testSuite",
"displayName": "Data Contract - dim_address_comprehensive_contract",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.dim_address.testSuite",
"description": "Updated: Critical data quality checks for production tables",
"version": 0.2,
"updatedAt": 1769982800000,
"updatedBy": "admin",
"deleted": false,
"owners": [],
"basic": true
}
Update a Test Suite
Create a test suite or update it if it already exists, usingPUT /v1/dataQuality/testSuites with the full request body. Send the complete definition, not just the fields you want to change. To change only some fields, use PATCH with a JSON Patch array and the application/json-patch+json content type, as shown in the PATCH examples below.
This endpoint creates or updates logical test suites.
Body Parameters
string
required
Name of the test suite. Must be unique.
string
Human-readable display name for the test suite.
string
Description of the test suite in Markdown format.
array
PUT /v1/dataQuality/testSuites
# Create a logical test suite
curl -X PUT "{base_url}/api/v1/dataQuality/testSuites" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "critical_data_quality_checks",
"displayName": "Critical Data Quality Checks",
"description": "Groups all critical data quality test cases across production tables"
}'
from metadata.sdk import configure
from metadata.sdk.entities import TestSuites
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
ts = TestSuites.retrieve("e86a9a11-852f-4bac-b5a7-993b2bbbb572")
ts.description = "Updated: Critical data quality checks for production tables"
updated = TestSuites.update(ts)
print(f"Updated to version {updated.version.root}")
// client is an initialized OpenMetadataClient.
var testSuiteId = "e86a9a11-852f-4bac-b5a7-993b2bbbb572";
var testSuite = client.testSuites().get(testSuiteId);
testSuite.setDescription("Updated: Critical data quality checks for production tables");
var updated = client.testSuites().update(testSuiteId, testSuite);
# Update by ID
curl -X PATCH "{base_url}/api/v1/dataQuality/testSuites/e86a9a11-852f-4bac-b5a7-993b2bbbb572" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Critical data quality checks for production tables"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/dataQuality/testSuites/name/sample_data.ecommerce_db.shopify.dim_address.testSuite" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated description"}
]'
{
"id": "e86a9a11-852f-4bac-b5a7-993b2bbbb572",
"name": "sample_data.ecommerce_db.shopify.dim_address.testSuite",
"displayName": "Data Contract - dim_address_comprehensive_contract",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.dim_address.testSuite",
"description": "Updated: Critical data quality checks for production tables",
"version": 0.2,
"updatedAt": 1769982800000,
"updatedBy": "admin",
"deleted": false,
"owners": [],
"basic": true
}
Returns
Returns the updated test suite object with the new version number.Response
string
Unique identifier for the test suite (UUID format).
string
Test suite name.
string
Fully qualified name of the test suite.
string
Updated description.
number
Incremented version number.
Error Handling
| Code | Error Type | Description |
|---|---|---|
400 | BAD_REQUEST | Invalid or malformed request body |
401 | UNAUTHORIZED | Invalid or missing authentication token |
403 | FORBIDDEN | User lacks permission to update this test suite |
409 | CONFLICT | Concurrent modification detected |
Was this page helpful?