PUT /v1/services/messagingServices
curl -X PUT "{base_url}/api/v1/services/messagingServices" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "sample_kafka",
"serviceType": "Kafka",
"description": "Production Kafka messaging service",
"connection": {
"config": {
"type": "Kafka",
"bootstrapServers": "localhost:9092",
"securityProtocol": "PLAINTEXT",
"saslMechanism": "PLAIN",
"schemaRegistryTopicSuffixName": "-value",
"supportsMetadataExtraction": true
}
}
}'
import requests
base_url = "https://your-company.open-metadata.org/api"
headers = {
"Authorization": "Bearer your-jwt-token",
"Content-Type": "application/json-patch+json"
}
# Update by ID
response = requests.patch(
f"{base_url}/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
json=[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"},
{"op": "replace", "path": "/displayName", "value": "Sample Kafka (Updated)"}
],
headers=headers
)
updated = response.json()
print(f"Updated to version {updated['version']}")
import org.openmetadata.schema.entity.services.MessagingService;
import org.openmetadata.sdk.fluent.MessagingServices;
// Retrieve, modify, and update
MessagingService service = MessagingServices.retrieve("469ef25e-9bdf-4d5f-8553-eb0ce8581f30");
service.setDescription("Updated Kafka messaging service");
MessagingService updated = MessagingServices.update(service);
# Update by ID
curl -X PATCH "{base_url}/api/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"},
{"op": "replace", "path": "/displayName", "value": "Sample Kafka (Updated)"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/services/messagingServices/name/sample_kafka" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"}
]'
{
"id": "469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
"name": "sample_kafka",
"fullyQualifiedName": "sample_kafka",
"serviceType": "Kafka",
"description": "Updated Kafka messaging service",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
"connection": {
"config": {
"type": "Kafka",
"bootstrapServers": "localhost:9092",
"securityProtocol": "PLAINTEXT",
"saslMechanism": "PLAIN",
"schemaRegistryTopicSuffixName": "-value",
"supportsMetadataExtraction": true
}
},
"owners": [],
"tags": [],
"deleted": false,
"domains": []
}
Update a Messaging Service
Create or update a messaging service with a full request body
PUT
/
v1
/
services
/
messagingServices
PUT /v1/services/messagingServices
curl -X PUT "{base_url}/api/v1/services/messagingServices" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "sample_kafka",
"serviceType": "Kafka",
"description": "Production Kafka messaging service",
"connection": {
"config": {
"type": "Kafka",
"bootstrapServers": "localhost:9092",
"securityProtocol": "PLAINTEXT",
"saslMechanism": "PLAIN",
"schemaRegistryTopicSuffixName": "-value",
"supportsMetadataExtraction": true
}
}
}'
import requests
base_url = "https://your-company.open-metadata.org/api"
headers = {
"Authorization": "Bearer your-jwt-token",
"Content-Type": "application/json-patch+json"
}
# Update by ID
response = requests.patch(
f"{base_url}/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
json=[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"},
{"op": "replace", "path": "/displayName", "value": "Sample Kafka (Updated)"}
],
headers=headers
)
updated = response.json()
print(f"Updated to version {updated['version']}")
import org.openmetadata.schema.entity.services.MessagingService;
import org.openmetadata.sdk.fluent.MessagingServices;
// Retrieve, modify, and update
MessagingService service = MessagingServices.retrieve("469ef25e-9bdf-4d5f-8553-eb0ce8581f30");
service.setDescription("Updated Kafka messaging service");
MessagingService updated = MessagingServices.update(service);
# Update by ID
curl -X PATCH "{base_url}/api/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"},
{"op": "replace", "path": "/displayName", "value": "Sample Kafka (Updated)"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/services/messagingServices/name/sample_kafka" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"}
]'
{
"id": "469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
"name": "sample_kafka",
"fullyQualifiedName": "sample_kafka",
"serviceType": "Kafka",
"description": "Updated Kafka messaging service",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
"connection": {
"config": {
"type": "Kafka",
"bootstrapServers": "localhost:9092",
"securityProtocol": "PLAINTEXT",
"saslMechanism": "PLAIN",
"schemaRegistryTopicSuffixName": "-value",
"supportsMetadataExtraction": true
}
},
"owners": [],
"tags": [],
"deleted": false,
"domains": []
}
Update a Messaging Service
Create a messaging service or update it if it already exists, usingPUT /v1/services/messagingServices 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
string
required
Name of the messaging service. Must be unique across all messaging services.
string
required
Type of messaging service, for example
Kafka, Redpanda, Kinesis, CustomMessaging.string
Description of the messaging service in Markdown format.
string
Human-readable display name for the messaging service.
object
required
Connection configuration specific to the service type.
Show properties
Show properties
object
Service-specific connection configuration, for example
bootstrapServers, securityProtocol for Kafka.array
array
Fully qualified names of the domains to assign for governance purposes.
array
PUT /v1/services/messagingServices
curl -X PUT "{base_url}/api/v1/services/messagingServices" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "sample_kafka",
"serviceType": "Kafka",
"description": "Production Kafka messaging service",
"connection": {
"config": {
"type": "Kafka",
"bootstrapServers": "localhost:9092",
"securityProtocol": "PLAINTEXT",
"saslMechanism": "PLAIN",
"schemaRegistryTopicSuffixName": "-value",
"supportsMetadataExtraction": true
}
}
}'
import requests
base_url = "https://your-company.open-metadata.org/api"
headers = {
"Authorization": "Bearer your-jwt-token",
"Content-Type": "application/json-patch+json"
}
# Update by ID
response = requests.patch(
f"{base_url}/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
json=[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"},
{"op": "replace", "path": "/displayName", "value": "Sample Kafka (Updated)"}
],
headers=headers
)
updated = response.json()
print(f"Updated to version {updated['version']}")
import org.openmetadata.schema.entity.services.MessagingService;
import org.openmetadata.sdk.fluent.MessagingServices;
// Retrieve, modify, and update
MessagingService service = MessagingServices.retrieve("469ef25e-9bdf-4d5f-8553-eb0ce8581f30");
service.setDescription("Updated Kafka messaging service");
MessagingService updated = MessagingServices.update(service);
# Update by ID
curl -X PATCH "{base_url}/api/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"},
{"op": "replace", "path": "/displayName", "value": "Sample Kafka (Updated)"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/services/messagingServices/name/sample_kafka" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated Kafka messaging service"}
]'
{
"id": "469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
"name": "sample_kafka",
"fullyQualifiedName": "sample_kafka",
"serviceType": "Kafka",
"description": "Updated Kafka messaging service",
"version": 0.2,
"updatedAt": 1769982700000,
"updatedBy": "admin",
"href": "http://localhost:8585/api/v1/services/messagingServices/469ef25e-9bdf-4d5f-8553-eb0ce8581f30",
"connection": {
"config": {
"type": "Kafka",
"bootstrapServers": "localhost:9092",
"securityProtocol": "PLAINTEXT",
"saslMechanism": "PLAIN",
"schemaRegistryTopicSuffixName": "-value",
"supportsMetadataExtraction": true
}
},
"owners": [],
"tags": [],
"deleted": false,
"domains": []
}
Returns
Returns the updated messaging service object with the new version number.Response
string
Unique identifier for the messaging service (UUID format).
string
Messaging service name.
string
Fully qualified name of the service.
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 messaging service |
409 | CONFLICT | Concurrent modification detected |
Was this page helpful?