PUT /v1/services/databaseServices
curl -X PUT "{base_url}/api/v1/services/databaseServices" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "sample_data",
"serviceType": "BigQuery",
"description": "Sample data service for BigQuery",
"connection": {
"config": {
"type": "BigQuery",
"scheme": "bigquery",
"hostPort": "bigquery.googleapis.com",
"taxonomyLocation": "us",
"usageLocation": "us",
"supportsMetadataExtraction": true,
"supportsUsageExtraction": true,
"supportsLineageExtraction": true,
"supportsDBTExtraction": true,
"supportsProfiler": true,
"supportsQueryComment": true
}
}
}'
from metadata.sdk import configure
from metadata.sdk.entities import DatabaseServices
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
service = DatabaseServices.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890")
service.description = "Updated production Snowflake warehouse"
service.displayName = "Snowflake Prod (Updated)"
updated = DatabaseServices.update(service)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.services.DatabaseService;
import org.openmetadata.sdk.fluent.DatabaseServices;
// Retrieve, modify, and update
DatabaseService service = DatabaseServices.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890");
service.setDescription("Updated production Snowflake warehouse");
DatabaseService updated = DatabaseServices.update(service);
# Update by ID
curl -X PATCH "{base_url}/api/v1/services/databaseServices/fd2193af-fe09-4366-92b7-1e0d01cd8c09" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated BigQuery data service"},
{"op": "replace", "path": "/displayName", "value": "Sample Data (Updated)"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/services/databaseServices/name/sample_data" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated BigQuery data service"}
]'
{
"id": "fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"name": "sample_data",
"fullyQualifiedName": "sample_data",
"serviceType": "BigQuery",
"description": "Updated BigQuery data service",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/services/databaseServices/fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"connection": {
"config": {
"type": "BigQuery",
"scheme": "bigquery",
"hostPort": "bigquery.googleapis.com",
"taxonomyProjectID": [],
"taxonomyLocation": "us",
"usageLocation": "us",
"supportsMetadataExtraction": true,
"supportsUsageExtraction": true,
"supportsLineageExtraction": true,
"supportsDBTExtraction": true,
"supportsProfiler": true,
"supportsQueryComment": true
}
},
"owners": [],
"tags": [],
"deleted": false,
"domains": [],
"entityStatus": "Unprocessed"
}
Update a Database Service
Create or update a database service with a full request body
PUT
/
v1
/
services
/
databaseServices
PUT /v1/services/databaseServices
curl -X PUT "{base_url}/api/v1/services/databaseServices" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "sample_data",
"serviceType": "BigQuery",
"description": "Sample data service for BigQuery",
"connection": {
"config": {
"type": "BigQuery",
"scheme": "bigquery",
"hostPort": "bigquery.googleapis.com",
"taxonomyLocation": "us",
"usageLocation": "us",
"supportsMetadataExtraction": true,
"supportsUsageExtraction": true,
"supportsLineageExtraction": true,
"supportsDBTExtraction": true,
"supportsProfiler": true,
"supportsQueryComment": true
}
}
}'
from metadata.sdk import configure
from metadata.sdk.entities import DatabaseServices
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
service = DatabaseServices.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890")
service.description = "Updated production Snowflake warehouse"
service.displayName = "Snowflake Prod (Updated)"
updated = DatabaseServices.update(service)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.services.DatabaseService;
import org.openmetadata.sdk.fluent.DatabaseServices;
// Retrieve, modify, and update
DatabaseService service = DatabaseServices.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890");
service.setDescription("Updated production Snowflake warehouse");
DatabaseService updated = DatabaseServices.update(service);
# Update by ID
curl -X PATCH "{base_url}/api/v1/services/databaseServices/fd2193af-fe09-4366-92b7-1e0d01cd8c09" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated BigQuery data service"},
{"op": "replace", "path": "/displayName", "value": "Sample Data (Updated)"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/services/databaseServices/name/sample_data" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated BigQuery data service"}
]'
{
"id": "fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"name": "sample_data",
"fullyQualifiedName": "sample_data",
"serviceType": "BigQuery",
"description": "Updated BigQuery data service",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/services/databaseServices/fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"connection": {
"config": {
"type": "BigQuery",
"scheme": "bigquery",
"hostPort": "bigquery.googleapis.com",
"taxonomyProjectID": [],
"taxonomyLocation": "us",
"usageLocation": "us",
"supportsMetadataExtraction": true,
"supportsUsageExtraction": true,
"supportsLineageExtraction": true,
"supportsDBTExtraction": true,
"supportsProfiler": true,
"supportsQueryComment": true
}
},
"owners": [],
"tags": [],
"deleted": false,
"domains": [],
"entityStatus": "Unprocessed"
}
Update a Database Service
Create a database service or update it if it already exists, usingPUT /v1/services/databaseServices 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.
Body Parameters
Type of database service, for example
Snowflake, BigQuery, Postgres, Mysql, Redshift, Databricks.PUT /v1/services/databaseServices
curl -X PUT "{base_url}/api/v1/services/databaseServices" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "sample_data",
"serviceType": "BigQuery",
"description": "Sample data service for BigQuery",
"connection": {
"config": {
"type": "BigQuery",
"scheme": "bigquery",
"hostPort": "bigquery.googleapis.com",
"taxonomyLocation": "us",
"usageLocation": "us",
"supportsMetadataExtraction": true,
"supportsUsageExtraction": true,
"supportsLineageExtraction": true,
"supportsDBTExtraction": true,
"supportsProfiler": true,
"supportsQueryComment": true
}
}
}'
from metadata.sdk import configure
from metadata.sdk.entities import DatabaseServices
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
service = DatabaseServices.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890")
service.description = "Updated production Snowflake warehouse"
service.displayName = "Snowflake Prod (Updated)"
updated = DatabaseServices.update(service)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.services.DatabaseService;
import org.openmetadata.sdk.fluent.DatabaseServices;
// Retrieve, modify, and update
DatabaseService service = DatabaseServices.retrieve("a1b2c3d4-e5f6-7890-abcd-ef1234567890");
service.setDescription("Updated production Snowflake warehouse");
DatabaseService updated = DatabaseServices.update(service);
# Update by ID
curl -X PATCH "{base_url}/api/v1/services/databaseServices/fd2193af-fe09-4366-92b7-1e0d01cd8c09" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated BigQuery data service"},
{"op": "replace", "path": "/displayName", "value": "Sample Data (Updated)"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/services/databaseServices/name/sample_data" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated BigQuery data service"}
]'
{
"id": "fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"name": "sample_data",
"fullyQualifiedName": "sample_data",
"serviceType": "BigQuery",
"description": "Updated BigQuery data service",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/services/databaseServices/fd2193af-fe09-4366-92b7-1e0d01cd8c09",
"connection": {
"config": {
"type": "BigQuery",
"scheme": "bigquery",
"hostPort": "bigquery.googleapis.com",
"taxonomyProjectID": [],
"taxonomyLocation": "us",
"usageLocation": "us",
"supportsMetadataExtraction": true,
"supportsUsageExtraction": true,
"supportsLineageExtraction": true,
"supportsDBTExtraction": true,
"supportsProfiler": true,
"supportsQueryComment": true
}
},
"owners": [],
"tags": [],
"deleted": false,
"domains": [],
"entityStatus": "Unprocessed"
}
Returns
Returns the updated database service 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 database service |
409 | CONFLICT | Concurrent modification detected |
Was this page helpful?