Download OpenAPI specification:Download
This page describe tha API exposed by the Notification Service Server of the Product Plane of the Open Data Mesh Platform.
The Notification Module of the Open Data Mesh platform manages the lifecycle of Observers and the dispatch of Notification to them.An Observer is an Adapter of the Notification API service in the Utility Plane. In addition to this, it also keeps track of every dispatched Notification and their status.
Get the Observer identified by the given ID
id required | integer <int64> ID of the desired Observer |
{- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "id": 0,
- "name": "string",
- "displayName": "string",
- "observerServerBaseUrl": "string"
}
Update a specific listening Notification Adapter
id required | integer <int64> ID of the Observer to update |
An Observer JSON object
createdAt | string <date-time> The creation timestamp. Automatically handled by the API: can not be modified. |
updatedAt | string <date-time> The last update timestamp. Automatically handled by the API: can not be modified. |
id | integer <int64> Auto-generated ID of the Policy |
name | string Unique name of the listening Notification Adapter |
displayName | string Human readable display name of the listening Notification Adapter |
observerServerBaseUrl | string Observer server base URL (i.e., protocol, hostname and port) to reach the listening Notification Adapter |
Example of a listening Notification Adapter
{- "id": 1,
- "name": "custom-observer",
- "displayName": "Custom Observer Updated",
- "createdAt": "2024-03-21T12:04:11.000+00:00"
}
engine1
{- "id": 1,
- "name": "custom-observer",
- "displayName": "Custom Observer",
- "createdAt": "2024-03-21T12:04:11.000+00:00",
- "updatedAt": "2024-03-21T12:14:29.000+00:00"
}
Remove a single listening Notification Adapter given its ID
id required | integer <int64> ID of the Observer to delete |
{- "status": 0,
- "code": "string",
- "description": "string",
- "message": "string",
- "path": "string",
- "timestamp": 0
}
Get all the registered Observers paginated
required | object (Pageable) |
searchOptions required | object (ObserverSearchOptions) |
[- {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "id": 0,
- "name": "string",
- "displayName": "string",
- "observerServerBaseUrl": "string"
}
]
Add a single listening Notification Adapter (i.e., an Observer)
An Observer JSON object
createdAt | string <date-time> The creation timestamp. Automatically handled by the API: can not be modified. |
updatedAt | string <date-time> The last update timestamp. Automatically handled by the API: can not be modified. |
id | integer <int64> Auto-generated ID of the Policy |
name | string Unique name of the listening Notification Adapter |
displayName | string Human readable display name of the listening Notification Adapter |
observerServerBaseUrl | string Observer server base URL (i.e., protocol, hostname and port) to reach the listening Notification Adapter |
Example of a listening Notification Adapter
"{\n \"name\": \"custom-observer\",\n \"displayName\": \"Custom Observer\",\n \"observerServerAddress\": \"http://localhost:9009/api/v1/up/notification-service\",\n}"
observer
{- "id": 1,
- "name": "custom-observer",
- "displayName": "Custom Observer",
- "createdAt": "2024-03-21T12:04:11.000+00:00",
- "updatedAt": "2024-03-21T12:14:29.000+00:00"
}
Update a specific Notification
id required | integer <int64> ID of the Notification to update |
A Notification JSON object
id | integer <int64> Auto generated ID of the Notification |
required | object (EventResource) |
status | string Enum: "UNPROCESSABLE" "PROCESSING" "PROCESSED" "PROCESS_ERROR" Status of the Notification |
processingOutput | string Output of the Notification processing phase |
object (ObserverResource) Observer that handle this specific notification | |
receivedAt | string <date-time> Timestamp of the Notification reception |
processedAt | string <date-time> Timestamp of the Notification processing phase |
{- "id": 0,
- "event": {
- "id": 0,
- "type": "string",
- "entityId": "string",
- "beforeState": "string",
- "afterState": "string",
- "time": "2019-08-24T14:15:22Z"
}, - "status": "UNPROCESSABLE",
- "processingOutput": "string",
- "observer": {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "id": 0,
- "name": "string",
- "displayName": "string",
- "observerServerBaseUrl": "string"
}, - "receivedAt": "2019-08-24T14:15:22Z",
- "processedAt": "2019-08-24T14:15:22Z"
}
{- "id": 0,
- "event": {
- "id": 0,
- "type": "string",
- "entityId": "string",
- "beforeState": "string",
- "afterState": "string",
- "time": "2019-08-24T14:15:22Z"
}, - "status": "UNPROCESSABLE",
- "processingOutput": "string",
- "observer": {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "id": 0,
- "name": "string",
- "displayName": "string",
- "observerServerBaseUrl": "string"
}, - "receivedAt": "2019-08-24T14:15:22Z",
- "processedAt": "2019-08-24T14:15:22Z"
}
Get all the registered Notifications paginated and, eventually, filtered
required | object (Pageable) |
required | object (EventNotificationSearchOptions) |
[- {
- "id": 0,
- "event": {
- "id": 0,
- "type": "string",
- "entityId": "string",
- "beforeState": "string",
- "afterState": "string",
- "time": "2019-08-24T14:15:22Z"
}, - "status": "UNPROCESSABLE",
- "processingOutput": "string",
- "observer": {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "id": 0,
- "name": "string",
- "displayName": "string",
- "observerServerBaseUrl": "string"
}, - "receivedAt": "2019-08-24T14:15:22Z",
- "processedAt": "2019-08-24T14:15:22Z"
}
]
Get the Notification identified by the given ID
notificationId required | integer <int64> ID of the desired Notification |
{- "id": 0,
- "event": {
- "id": 0,
- "type": "string",
- "entityId": "string",
- "beforeState": "string",
- "afterState": "string",
- "time": "2019-08-24T14:15:22Z"
}, - "status": "UNPROCESSABLE",
- "processingOutput": "string",
- "observer": {
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "id": 0,
- "name": "string",
- "displayName": "string",
- "observerServerBaseUrl": "string"
}, - "receivedAt": "2019-08-24T14:15:22Z",
- "processedAt": "2019-08-24T14:15:22Z"
}
Get all the registered Events paginated
required | object (Pageable) |
searchOptions required | object (EventSearchOptions) |
[- {
- "id": 0,
- "type": "string",
- "entityId": "string",
- "beforeState": "string",
- "afterState": "string",
- "time": "2019-08-24T14:15:22Z"
}
]
Dispatch an Event to all registered Observers
An Event JSON object
id | integer <int64> Auto generated ID of the Event |
type required | string Event type |
entityId required | string ID of the Entity subject of the Event |
beforeState | string Entity state before the Event |
afterState | string Entity state after the Event |
time required | string <date-time> Event timestamp |
Example of a dispatchable Event
"{\n \"type\": \"DATA_PRODUCT_CREATED\",\n \"entityId\": \"abc123\",\n \"beforeState\": null,\n \"beforeState\": \"{\"id\":1, \"name\": \"DP abc 123\"}\",\n \"time\": \"2024-03-21T12:04:11.000+00:00\"\n}"
{- "status": 0,
- "code": "string",
- "description": "string",
- "message": "string",
- "path": "string",
- "timestamp": 0
}