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
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
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?