Notify API Reference
| Field | Value |
|---|---|
| Source spec | notify/openapi/v1.json |
| OpenAPI version | 3.1.1 |
| API version | 1.0.0 |
| Operations | 205 |
| Path filter | All paths |
Operations
GET /api/v1/assurance/reporting-timeline-profiles
Lists assurance reporting timeline profiles
Returns pack-owned reporting profile metadata that maps NIS2 and CRA workflows onto the shared Notify incident reporting timeline.
| Property | Value |
|---|---|
| Operation ID | ListAssuranceReportingTimelineProfiles |
| Tags | Assurance Reporting Timeline Profiles |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
frameworkId | query | no | |
reportType | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/assurance/reporting-timeline-profiles/{timelineProfileId}
Gets an assurance reporting timeline profile
| Property | Value |
|---|---|
| Operation ID | GetAssuranceReportingTimelineProfile |
| Tags | Assurance Reporting Timeline Profiles |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
timelineProfileId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/assurance/reporting-timeline-profiles/{timelineProfileId}/readiness
Gets redacted setup readiness for an assurance reporting timeline profile
Reports stable reason codes for operator handoff and auto-submit readiness without exposing secret values.
| Property | Value |
|---|---|
| Operation ID | GetAssuranceReportingTimelineProfileReadiness |
| Tags | Assurance Reporting Timeline Profiles |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
timelineProfileId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/buildinfo
API alias for /buildinfo.json (same payload).
| Property | Value |
|---|---|
| Operation ID | StellaOpsBuildInfoApi |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/events/platform
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Events |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/events/{producer}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Events |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
producer | path | yes | |
allowPastTimestamp | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/anomaly-subscriptions
List tenant-scoped Timeline anomaly notification subscriptions.
| Property | Value |
|---|---|
| Operation ID | ListNotifyAnomalySubscriptions |
| Tags | Notify Anomaly Subscriptions |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
enabled | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/anomaly-subscriptions
Create or replace a tenant-scoped Timeline anomaly notification subscription.
| Property | Value |
|---|---|
| Operation ID | CreateNotifyAnomalySubscription |
| Tags | Notify Anomaly Subscriptions |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v1/notify/anomaly-subscriptions/{id}
Update a tenant-scoped Timeline anomaly notification subscription.
| Property | Value |
|---|---|
| Operation ID | UpdateNotifyAnomalySubscription |
| Tags | Notify Anomaly Subscriptions |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
id | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v1/notify/anomaly-subscriptions/{id}
Delete a tenant-scoped Timeline anomaly notification subscription.
| Property | Value |
|---|---|
| Operation ID | DeleteNotifyAnomalySubscription |
| Tags | Notify Anomaly Subscriptions |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
id | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/audit
notify.audit.list_description
| Property | Value |
|---|---|
| Operation ID | NotifyListAuditEntries |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
actorId | query | no | |
correlationId | query | no | |
cursor | query | no | |
endDate | query | no | |
limit | query | no | |
offset | query | no | |
resourceId | query | no | |
resourceType | query | no | |
startDate | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/audit
notify.audit.create_description
| Property | Value |
|---|---|
| Operation ID | NotifyCreateAuditEntry |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/channels
notify.channels.list_description
| Property | Value |
|---|---|
| Operation ID | NotifyListChannels |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
purpose | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/channels
notify.channels.upsert_description
| Property | Value |
|---|---|
| Operation ID | NotifyUpsertChannel |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/channels/{channelId}
notify.channels.get_description
| Property | Value |
|---|---|
| Operation ID | NotifyGetChannel |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v1/notify/channels/{channelId}
notify.channels.delete_description
| Property | Value |
|---|---|
| Operation ID | NotifyDeleteChannel |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/channels/{channelId}/health
Returns connector diagnostics for the specified channel.
| Property | Value |
|---|---|
| Operation ID | NotifyGetChannelHealth |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/channels/{channelId}/test
notify.channels.test_description
| Property | Value |
|---|---|
| Operation ID | NotifyTestChannel |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/deliveries
notify.deliveries.list_description
| Property | Value |
|---|---|
| Operation ID | NotifyListDeliveries |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | query | no | |
correlationId | query | no | |
cveId | query | no | |
eventType | query | no | |
fixtureId | query | no | |
limit | query | no | |
offset | query | no | |
since | query | no | |
status | query | no | |
until | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/deliveries
notify.deliveries.create_description
| Property | Value |
|---|---|
| Operation ID | NotifyCreateDelivery |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v1/notify/deliveries
Delete tenant-scoped Notify deliveries matching cleanup filters
| Property | Value |
|---|---|
| Operation ID | NotifyDeleteDeliveries |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
correlationId | query | no | |
cveId | query | no | |
fixtureId | query | no | |
tenant | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/deliveries/{deliveryId}
notify.deliveries.get_description
| Property | Value |
|---|---|
| Operation ID | NotifyGetDelivery |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
deliveryId | path | yes | |
tenant | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/delivery/stats
Get delivery statistics for the last 24 hours
| Property | Value |
|---|---|
| Operation ID | NotifyDeliveryStats |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/digests
notify.digests.upsert_description
| Property | Value |
|---|---|
| Operation ID | NotifyUpsertDigest |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/digests/{actionKey}
notify.digests.get_description
| Property | Value |
|---|---|
| Operation ID | NotifyGetDigest |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
actionKey | path | yes | |
channelId | query | yes | |
recipient | query | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v1/notify/digests/{actionKey}
notify.digests.delete_description
| Property | Value |
|---|---|
| Operation ID | NotifyDeleteDigest |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
actionKey | path | yes | |
channelId | query | yes | |
recipient | query | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/internal/nis2-incident-ledger/consumers/{consumerId}
Registers/resets the Findings consumer or reports its exact durable cursor for the producer retention floor.
| Property | Value |
|---|---|
| Operation ID | ReportNotifyNis2IncidentLedgerConsumer |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
consumerId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/internal/nis2-incident-ledger/events
Returns ordered NIS2 ledger hand-off envelopes plus explicit epoch and retention-gap state.
| Property | Value |
|---|---|
| Operation ID | ReadNotifyNis2IncidentLedgerStream |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
afterSeq | query | no | |
limit | query | no | |
streamEpoch | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/locks/acquire
notify.locks.acquire_description
| Property | Value |
|---|---|
| Operation ID | NotifyAcquireLock |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/locks/release
notify.locks.release_description
| Property | Value |
|---|---|
| Operation ID | NotifyReleaseLock |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/rules
notify.rules.list_description
| Property | Value |
|---|---|
| Operation ID | NotifyListRules |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/rules
notify.rules.upsert_description
| Property | Value |
|---|---|
| Operation ID | NotifyUpsertRule |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/rules/{ruleId}
notify.rules.get_description
| Property | Value |
|---|---|
| Operation ID | NotifyGetRule |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ruleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v1/notify/rules/{ruleId}
notify.rules.delete_description
| Property | Value |
|---|---|
| Operation ID | NotifyDeleteRule |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ruleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/templates
notify.templates.list_description
| Property | Value |
|---|---|
| Operation ID | NotifyListTemplates |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/notify/templates
notify.templates.upsert_description
| Property | Value |
|---|---|
| Operation ID | NotifyUpsertTemplate |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/notify/templates/{templateId}
notify.templates.get_description
| Property | Value |
|---|---|
| Operation ID | NotifyGetTemplate |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
templateId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v1/notify/templates/{templateId}
notify.templates.delete_description
| Property | Value |
|---|---|
| Operation ID | NotifyDeleteTemplate |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
templateId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/chaos/experiments
Lists chaos experiments
notifier.observability.chaos_list_description
| Property | Value |
|---|---|
| Operation ID | ListChaosExperiments |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
limit | query | yes | |
status | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/observability/chaos/experiments
Starts a new chaos experiment
notifier.observability.chaos_start_description
| Property | Value |
|---|---|
| Operation ID | StartChaosExperiment |
| Tags | Observability |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/chaos/experiments/{experimentId}
Gets a chaos experiment
notifier.observability.chaos_get_description
| Property | Value |
|---|---|
| Operation ID | GetChaosExperiment |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
experimentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/chaos/experiments/{experimentId}/results
Gets chaos experiment results
notifier.observability.chaos_results_description
| Property | Value |
|---|---|
| Operation ID | GetChaosResults |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
experimentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/observability/chaos/experiments/{experimentId}/stop
Stops a running chaos experiment
notifier.observability.chaos_stop_description
| Property | Value |
|---|---|
| Operation ID | StopChaosExperiment |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
experimentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/dead-letters
Lists the caller’s tenant dead letter entries
Lists the dead-lettered deliveries of the caller’s tenant, newest first, with limit (default 100) and offset paging.
| Property | Value |
|---|---|
| Operation ID | GetDeadLetters |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
limit | query | no | |
offset | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v1/observability/dead-letters/purge
Purges old dead letter entries of the caller’s tenant
Deletes the caller’s tenant dead-letter entries older than olderThanDays (default 7) and returns the number deleted. Other tenants’ entries are not touched.
| Property | Value |
|---|---|
| Operation ID | PurgeDeadLetters |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
olderThanDays | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/dead-letters/stats
Gets dead letter statistics of the caller’s tenant
Returns the dead-letter counts of the caller’s tenant by status, reason and channel, with the oldest and newest entry times.
| Property | Value |
|---|---|
| Operation ID | GetDeadLetterStats |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/dead-letters/{entryId}
Gets a dead letter entry of the caller’s tenant
Returns one dead-lettered delivery of the caller’s tenant. An entry ID that belongs to another tenant returns 404, the same answer as an unknown ID.
| Property | Value |
|---|---|
| Operation ID | GetDeadLetterEntry |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
entryId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/observability/dead-letters/{entryId}/discard
Discards a dead letter entry of the caller’s tenant
Resolves a dead-lettered delivery of the caller’s tenant as discarded with the given reason. An entry ID that belongs to another tenant returns 404 and the entry is not changed.
| Property | Value |
|---|---|
| Operation ID | DiscardDeadLetter |
| Tags | Observability |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
entryId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/observability/dead-letters/{entryId}/retry
Retries a dead letter entry of the caller’s tenant
Marks a pending dead-lettered delivery of the caller’s tenant for re-dispatch and returns the retry result. An entry ID that belongs to another tenant returns 404 and the entry is not changed.
| Property | Value |
|---|---|
| Operation ID | RetryDeadLetter |
| Tags | Observability |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
entryId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/observability/retention/execute
Executes retention cleanup for the caller’s tenant
Runs retention cleanup now for the caller’s tenant under its retention policy, records the execution and returns the deleted counts. Other tenants’ data and history are not touched.
| Property | Value |
|---|---|
| Operation ID | ExecuteRetention |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/retention/policy
Gets the retention policy of the caller’s tenant
Returns the retention policy of the caller’s tenant, or the default policy when the tenant has not set one. The policy id is the tenant.
| Property | Value |
|---|---|
| Operation ID | GetRetentionPolicy |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v1/observability/retention/policy
Sets the retention policy of the caller’s tenant
Creates or replaces the retention policy of the caller’s tenant and returns the stored policy. The id in the body is ignored: the policy always belongs to the caller’s tenant.
| Property | Value |
|---|---|
| Operation ID | UpdateRetentionPolicy |
| Tags | Observability |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v1/observability/retention/policy
Resets the retention policy of the caller’s tenant
Resets the retention policy of the caller’s tenant to the default retention periods.
| Property | Value |
|---|---|
| Operation ID | DeleteRetentionPolicy |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/retention/policy/history
Gets the last retention execution of the caller’s tenant
Returns the most recent retention cleanup execution of the caller’s tenant as a list of at most one entry; an empty list when cleanup has not run.
| Property | Value |
|---|---|
| Operation ID | GetRetentionHistory |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/observability/retention/policy/preview
Previews retention cleanup for the caller’s tenant
Returns the cutoff dates and the estimated counts a retention cleanup of the caller’s tenant would delete now, without deleting anything.
| Property | Value |
|---|---|
| Operation ID | PreviewRetention |
| Tags | Observability |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/qa/fixtures/advanced-assurance-golden/notify-import
Imports the advanced-assurance golden fixture into Notify-owned delivery and reporting timeline rows
| Property | Value |
|---|---|
| Operation ID | ImportAdvancedAssuranceGoldenNotifyFixture |
| Tags | QA Fixtures |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
202 | Accepted | application/json |
400 | Bad Request | application/json |
GET /api/v1/qa/fixtures/advanced-assurance-golden/timeline-readiness
Queries Notify-owned NIS2, DORA, and CRA demonstration-timeline readiness for a golden-fixture evidence reference
| Property | Value |
|---|---|
| Operation ID | GetAdvancedAssuranceGoldenTimelineReadiness |
| Tags | QA Fixtures |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
evidenceRef | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | application/json |
400 | Bad Request | application/json |
POST /api/v1/regulatory/nis2/incidents
Opens a NIS2 Article-23 incident reporting timeline
Starts the 24h/72h/1-month reporting cadence and records the nis2.incident.opened ledger hand-off with the OPEN timeline row.
| Property | Value |
|---|---|
| Operation ID | OpenNis2Incident |
| Tags | Regulatory NIS2 Incident Reporting |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/regulatory/nis2/incidents/{incidentId}/classify
Classifies a NIS2 incident (significance + severity)
Records the Article-23 significance classification and its nis2.incident.classified hand-off.
| Property | Value |
|---|---|
| Operation ID | ClassifyNis2Incident |
| Tags | Regulatory NIS2 Incident Reporting |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/regulatory/nis2/incidents/{incidentId}/close
Closes a NIS2 incident reporting timeline
Closes the timeline after the final report and records nis2.incident.closed.
| Property | Value |
|---|---|
| Operation ID | CloseNis2Incident |
| Tags | Regulatory NIS2 Incident Reporting |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/regulatory/nis2/incidents/{incidentId}/csirt-submissions
Produces a signed NIS2 CSIRT handoff and records the milestone
Builds the NIS2 CSIRT envelope from the classified incident timeline and operator report inputs, invokes Nis2CsirtOutboundChannel.ProduceAsync, persists the Notify delivery ledger row, and records the report milestone.
| Property | Value |
|---|---|
| Operation ID | SubmitNis2IncidentCsirtReport |
| Tags | Regulatory NIS2 Incident Reporting |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v1/regulatory/nis2/incidents/{incidentId}/report
Records a NIS2 milestone report transmission
Advances the timeline by milestone (early_warning / notification / final_report) and records nis2.incident.reported.
| Property | Value |
|---|---|
| Operation ID | ReportNis2Incident |
| Tags | Regulatory NIS2 Incident Reporting |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/regulatory/reporting-timelines
Queries tenant-scoped incident reporting timelines
Returns deterministic Notify-owned incident reporting timelines with milestone deadlines, payload hashes, signer refs, evidence refs, ledger refs, audit refs, and the provenance of each timeline. Imported demonstration timelines (fixture-ledger provenance) are excluded unless provenance=demonstration or provenance=all is requested; an incidentId lookup returns the record with its provenance label.
| Property | Value |
|---|---|
| Operation ID | QueryRegulatoryReportingTimelines |
| Tags | Regulatory Reporting Timelines |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
active | query | no | |
cursor | query | no | |
evidenceRef | query | no | |
incidentId | query | no | |
limit | query | no | |
provenance | query | no | |
regime | query | no | |
state | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v1/regulatory/reporting-timelines/countdown-summary
Queries the bounded urgent regulatory countdown summary
Returns only the current persisted milestone deadline for each active operational NIS2, DORA, or CRA incident timeline; imported demonstration timelines never count down. The bounded projection is intended for framework cockpit countdown chips; use the full timeline route for incident details.
| Property | Value |
|---|---|
| Operation ID | QueryRegulatoryCountdownSummary |
| Tags | Regulatory Reporting Timelines |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
limit | query | no | |
regime | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/ack
Process an acknowledgment link
notifier.ack.link_description
| Property | Value |
|---|---|
| Operation ID | ProcessAckLink |
| Tags | Acknowledgment |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
token | query | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/ack
Process an acknowledgment
notifier.ack.process_description
| Property | Value |
|---|---|
| Operation ID | ProcessAck |
| Tags | Acknowledgment |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/ack/webhook/opsgenie/{tenantId}
Process OpsGenie webhook (per-tenant)
notifier.ack.opsgenie_description
| Property | Value |
|---|---|
| Operation ID | OpsGenieWebhook |
| Tags | Acknowledgment - Inbound Webhooks |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
tenantId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/ack/webhook/pagerduty/{tenantId}
Process PagerDuty webhook (per-tenant)
notifier.ack.pagerduty_description
| Property | Value |
|---|---|
| Operation ID | PagerDutyWebhook |
| Tags | Acknowledgment - Inbound Webhooks |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
tenantId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/escalation-policies
List escalation policies
notifier.escalation_policy.list_description
| Property | Value |
|---|---|
| Operation ID | ListEscalationPolicies |
| Tags | Escalation Policies |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/escalation-policies
Create an escalation policy
notifier.escalation_policy.create_description
| Property | Value |
|---|---|
| Operation ID | CreateEscalationPolicy |
| Tags | Escalation Policies |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/escalation-policies/{policyId}
Get an escalation policy
notifier.escalation_policy.get_description
| Property | Value |
|---|---|
| Operation ID | GetEscalationPolicy |
| Tags | Escalation Policies |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
policyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/escalation-policies/{policyId}
Update an escalation policy
notifier.escalation_policy.update_description
| Property | Value |
|---|---|
| Operation ID | UpdateEscalationPolicy |
| Tags | Escalation Policies |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
policyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/escalation-policies/{policyId}
Delete an escalation policy
notifier.escalation_policy.delete_description
| Property | Value |
|---|---|
| Operation ID | DeleteEscalationPolicy |
| Tags | Escalation Policies |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
policyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/escalations
List active escalations
notifier.escalation.list_description
| Property | Value |
|---|---|
| Operation ID | ListActiveEscalations |
| Tags | Escalations |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/escalations/{incidentId}
Get escalation state for an incident
notifier.escalation.get_description
| Property | Value |
|---|---|
| Operation ID | GetEscalationState |
| Tags | Escalations |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/escalations/{incidentId}/escalate
Manually escalate to next level
notifier.escalation.manual_description
| Property | Value |
|---|---|
| Operation ID | ManualEscalate |
| Tags | Escalations |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/escalations/{incidentId}/start
Start escalation for an incident
notifier.escalation.start_description
| Property | Value |
|---|---|
| Operation ID | StartEscalation |
| Tags | Escalations |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/escalations/{incidentId}/stop
Stop escalation
notifier.escalation.stop_description
| Property | Value |
|---|---|
| Operation ID | StopEscalation |
| Tags | Escalations |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/fallback/chains/{channelType}
Gets the fallback chain for a channel type
notifier.fallback.get_chain_description
| Property | Value |
|---|---|
| Operation ID | GetFallbackChain |
| Tags | Fallback |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelType | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/fallback/chains/{channelType}
Sets a custom fallback chain for a channel type
notifier.fallback.set_chain_description
| Property | Value |
|---|---|
| Operation ID | SetFallbackChain |
| Tags | Fallback |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelType | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/fallback/deliveries/{deliveryId}
Clears fallback state for a specific delivery
notifier.fallback.clear_delivery_description
| Property | Value |
|---|---|
| Operation ID | ClearDeliveryFallbackState |
| Tags | Fallback |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
deliveryId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/fallback/statistics
Gets fallback handling statistics for a tenant
notifier.fallback.stats_description
| Property | Value |
|---|---|
| Operation ID | GetFallbackStatistics |
| Tags | Fallback |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
windowHours | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/fallback/test
Tests fallback resolution without affecting real deliveries
notifier.fallback.test_description
| Property | Value |
|---|---|
| Operation ID | TestFallback |
| Tags | Fallback |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/incidents
Lists notification incidents (deliveries)
notifier.incident.list2_description
| Property | Value |
|---|---|
| Operation ID | ListIncidents |
| Tags | Incidents |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
continuationToken | query | no | |
kind | query | no | |
limit | query | no | |
ruleId | query | no | |
since | query | no | |
status | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/incidents/stats
Gets incident statistics
notifier.incident.stats_description
| Property | Value |
|---|---|
| Operation ID | GetIncidentStats |
| Tags | Incidents |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/incidents/{deliveryId}
Gets an incident by delivery ID
notifier.incident.get2_description
| Property | Value |
|---|---|
| Operation ID | GetIncident |
| Tags | Incidents |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
deliveryId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/incidents/{deliveryId}/ack
Acknowledges an incident
notifier.incident.ack2_description
| Property | Value |
|---|---|
| Operation ID | AcknowledgeIncident |
| Tags | Incidents |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
deliveryId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/localization/bundles
Lists all localization bundles for a tenant
notifier.localization.list_bundles_description
| Property | Value |
|---|---|
| Operation ID | ListLocalizationBundles |
| Tags | Localization |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/localization/bundles
Creates or updates a localization bundle
notifier.localization.upsert_bundle_description
| Property | Value |
|---|---|
| Operation ID | UpsertLocalizationBundle |
| Tags | Localization |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/localization/bundles/validate
Validates a localization bundle without saving
notifier.localization.validate_bundle_description
| Property | Value |
|---|---|
| Operation ID | ValidateLocalizationBundle |
| Tags | Localization |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/localization/bundles/{bundleId}
Deletes a localization bundle
notifier.localization.delete_bundle_description
| Property | Value |
|---|---|
| Operation ID | DeleteLocalizationBundle |
| Tags | Localization |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
bundleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/localization/bundles/{locale}
Gets all localized strings for a locale
notifier.localization.get_bundle_description
| Property | Value |
|---|---|
| Operation ID | GetLocalizationBundle |
| Tags | Localization |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
locale | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/localization/locales
Gets all supported locales for a tenant
notifier.localization.get_locales_description
| Property | Value |
|---|---|
| Operation ID | GetSupportedLocales |
| Tags | Localization |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/localization/strings/{key}
Gets a single localized string
notifier.localization.get_string_description
| Property | Value |
|---|---|
| Operation ID | GetLocalizedString |
| Tags | Localization |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
key | path | yes | |
locale | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/localization/strings/{key}/format
Gets a localized string with parameter substitution
notifier.localization.format_string_description
| Property | Value |
|---|---|
| Operation ID | FormatLocalizedString |
| Tags | Localization |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
key | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/channels
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
enabled | query | no | |
limit | query | no | |
offset | query | no | |
purpose | query | no | |
type | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/channels/{channelId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/notify/channels/{channelId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/notify/channels/{channelId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/deliveries
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | query | no | |
eventKind | query | no | |
limit | query | no | |
offset | query | no | |
ruleId | query | no | |
since | query | no | |
status | query | no | |
until | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/deliveries/stats
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/deliveries/{deliveryId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
deliveryId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/deliveries/{deliveryId}/retry
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
deliveryId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/escalation-policies
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/escalation-policies/{policyId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
policyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/notify/escalation-policies/{policyId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
policyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/notify/escalation-policies/{policyId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
policyId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/inbox
List user in-app inbox messages.
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
cursor | query | no | |
kind | query | no | |
limit | query | no | |
unreadOnly | query | no | |
userId | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
403 | Forbidden | application/problem+json |
503 | Service Unavailable | application/problem+json |
POST /api/v2/notify/inbox/read-all
Mark all user in-app inbox messages as read.
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
userId | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
403 | Forbidden | application/problem+json |
GET /api/v2/notify/inbox/unread-count
Return unread in-app inbox group count.
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
userId | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
403 | Forbidden | application/problem+json |
GET /api/v2/notify/inbox/{messageId}
Get one in-app inbox message.
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
messageId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
403 | Forbidden | application/problem+json |
404 | Not Found | application/problem+json |
DELETE /api/v2/notify/inbox/{messageId}
Archive one in-app inbox message.
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
messageId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
403 | Forbidden | application/problem+json |
404 | Not Found | application/problem+json |
POST /api/v2/notify/inbox/{messageId}/read
Mark one in-app inbox message as read.
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
messageId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
403 | Forbidden | application/problem+json |
404 | Not Found | application/problem+json |
GET /api/v2/notify/incidents
notifier.incident.list_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
cursor | query | no | |
eventKindPrefix | query | no | |
limit | query | no | |
since | query | no | |
status | query | no | |
until | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/incidents/{incidentId}/ack
notifier.incident.ack_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/incidents/{incidentId}/resolve
notifier.incident.resolve_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
incidentId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/overrides
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/overrides
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/overrides/{overrideId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
overrideId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/notify/overrides/{overrideId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
overrideId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/notify/overrides/{overrideId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
overrideId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/quiet-hours
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/quiet-hours/{quietHoursId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
quietHoursId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/notify/quiet-hours/{quietHoursId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
quietHoursId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/notify/quiet-hours/{quietHoursId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
quietHoursId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/rules
notifier.rule.list_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/rules
notifier.rule.create_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/rules/{ruleId}
notifier.rule.get_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ruleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/notify/rules/{ruleId}
notifier.rule.update_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ruleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/notify/rules/{ruleId}
notifier.rule.delete_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ruleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/simulate
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
400 | Bad Request | - |
502 | Bad Gateway | application/problem+json |
POST /api/v2/notify/simulate/event
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/templates
notifier.template.list_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelType | query | no | |
keyPrefix | query | no | |
limit | query | no | |
locale | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/templates
notifier.template.upsert_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/templates/preview
notifier.template.preview_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/notify/templates/validate
notifier.template.validate_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/templates/{templateId}
notifier.template.get_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
templateId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/notify/templates/{templateId}
notifier.template.delete_description
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
templateId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/throttle-configs
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/notify/throttle-configs/{throttleId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
throttleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/notify/throttle-configs/{throttleId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
throttleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/notify/throttle-configs/{throttleId}
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | Notify Admin Compat |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
throttleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/oncall-schedules
List on-call schedules
notifier.oncall_schedule.list_description
| Property | Value |
|---|---|
| Operation ID | ListOnCallSchedules |
| Tags | On-Call Schedules |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/oncall-schedules
Create an on-call schedule
notifier.oncall_schedule.create_description
| Property | Value |
|---|---|
| Operation ID | CreateOnCallSchedule |
| Tags | On-Call Schedules |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/oncall-schedules/{scheduleId}
Get an on-call schedule
notifier.oncall_schedule.get_description
| Property | Value |
|---|---|
| Operation ID | GetOnCallSchedule |
| Tags | On-Call Schedules |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
scheduleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/oncall-schedules/{scheduleId}
Update an on-call schedule
notifier.oncall_schedule.update_description
| Property | Value |
|---|---|
| Operation ID | UpdateOnCallSchedule |
| Tags | On-Call Schedules |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
scheduleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/oncall-schedules/{scheduleId}
Delete an on-call schedule
notifier.oncall_schedule.delete_description
| Property | Value |
|---|---|
| Operation ID | DeleteOnCallSchedule |
| Tags | On-Call Schedules |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
scheduleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/oncall-schedules/{scheduleId}/oncall
Get current on-call users
notifier.oncall_schedule.current_description
| Property | Value |
|---|---|
| Operation ID | GetCurrentOnCall |
| Tags | On-Call Schedules |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
scheduleId | path | yes | |
atTime | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/oncall-schedules/{scheduleId}/overrides
Create an on-call override
notifier.oncall_schedule.create_override_description
| Property | Value |
|---|---|
| Operation ID | CreateOnCallOverride |
| Tags | On-Call Schedules |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
scheduleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/oncall-schedules/{scheduleId}/overrides/{overrideId}
Delete an on-call override
notifier.oncall_schedule.delete_override_description
| Property | Value |
|---|---|
| Operation ID | DeleteOnCallOverride |
| Tags | On-Call Schedules |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
overrideId | path | yes | |
scheduleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/overrides
List active operator overrides
notifier.override.list_description
| Property | Value |
|---|---|
| Operation ID | ListOperatorOverrides |
| Tags | Overrides |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/overrides
Create an operator override
notifier.override.create_description
| Property | Value |
|---|---|
| Operation ID | CreateOperatorOverride |
| Tags | Overrides |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/overrides/check
Check for applicable override
notifier.override.check_description
| Property | Value |
|---|---|
| Operation ID | CheckOperatorOverride |
| Tags | Overrides |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/overrides/{overrideId}
Get an operator override
notifier.override.get_description
| Property | Value |
|---|---|
| Operation ID | GetOperatorOverride |
| Tags | Overrides |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
overrideId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/overrides/{overrideId}/revoke
Revoke an operator override
notifier.override.revoke_description
| Property | Value |
|---|---|
| Operation ID | RevokeOperatorOverride |
| Tags | Overrides |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
overrideId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/quiet-hours/calendars
List all quiet hours calendars
notifier.quiet_hours.list_description
| Property | Value |
|---|---|
| Operation ID | ListQuietHoursCalendars |
| Tags | QuietHours |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/quiet-hours/calendars
Create a quiet hours calendar
notifier.quiet_hours.create_description
| Property | Value |
|---|---|
| Operation ID | CreateQuietHoursCalendar |
| Tags | QuietHours |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/quiet-hours/calendars/{calendarId}
Get a quiet hours calendar
notifier.quiet_hours.get_description
| Property | Value |
|---|---|
| Operation ID | GetQuietHoursCalendar |
| Tags | QuietHours |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
calendarId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/quiet-hours/calendars/{calendarId}
Update a quiet hours calendar
notifier.quiet_hours.update_description
| Property | Value |
|---|---|
| Operation ID | UpdateQuietHoursCalendar |
| Tags | QuietHours |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
calendarId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/quiet-hours/calendars/{calendarId}
Delete a quiet hours calendar
notifier.quiet_hours.delete_description
| Property | Value |
|---|---|
| Operation ID | DeleteQuietHoursCalendar |
| Tags | QuietHours |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no | |
calendarId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/quiet-hours/evaluate
Evaluate quiet hours
notifier.quiet_hours.evaluate_description
| Property | Value |
|---|---|
| Operation ID | EvaluateQuietHours |
| Tags | QuietHours |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/rules
Lists all rules for a tenant
notifier.rule.list2_description
| Property | Value |
|---|---|
| Operation ID | ListRules |
| Tags | Rules |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
enabled | query | no | |
keyPrefix | query | no | |
limit | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/rules
Creates a new rule
notifier.rule.create2_description
| Property | Value |
|---|---|
| Operation ID | CreateRule |
| Tags | Rules |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/rules/{ruleId}
Gets a rule by ID
notifier.rule.get2_description
| Property | Value |
|---|---|
| Operation ID | GetRule |
| Tags | Rules |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ruleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/rules/{ruleId}
Updates an existing rule
notifier.rule.update2_description
| Property | Value |
|---|---|
| Operation ID | UpdateRule |
| Tags | Rules |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ruleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/rules/{ruleId}
Deletes a rule
notifier.rule.delete2_description
| Property | Value |
|---|---|
| Operation ID | DeleteRule |
| Tags | Rules |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
ruleId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/html/sanitize
Sanitizes HTML content using the specified profile (or the default profile if omitted), removing disallowed tags and attributes.
| Property | Value |
|---|---|
| Operation ID | SanitizeHtml |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/html/strip
Removes all HTML tags from the input, returning plain text. Useful for generating fallback plain-text notification bodies from HTML templates.
| Property | Value |
|---|---|
| Operation ID | StripHtmlTags |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/html/validate
Validates HTML content against the specified profile and returns whether it is safe, along with details of any disallowed elements found.
| Property | Value |
|---|---|
| Operation ID | ValidateHtml |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/keys/rotate
Rotates the active signing key. Previously signed tokens remain verifiable during the overlap window. Old keys are retired after the configured grace period.
| Property | Value |
|---|---|
| Operation ID | RotateSigningKey |
| Tags | Security |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/tenants/grants
Grants a target tenant time-bounded access to a resource owned by the caller’s tenant. The owner of a grant is always the caller’s tenant. Grant records are auditable and expire automatically.
| Property | Value |
|---|---|
| Operation ID | GrantCrossTenantAccess |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/security/tenants/grants
Revokes a grant owned by the caller’s tenant before its expiry. Revocation is immediate and recorded in the audit log.
| Property | Value |
|---|---|
| Operation ID | RevokeCrossTenantAccess |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/tenants/validate
Validates whether the caller’s tenant is permitted to access the specified resource type and ID for the requested operation. A denied access is recorded as a violation of the caller’s tenant.
| Property | Value |
|---|---|
| Operation ID | ValidateTenantAccess |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/security/tenants/violations
Returns the tenant isolation violations recorded for the caller’s tenant as the requesting tenant, optionally since a point in time.
| Property | Value |
|---|---|
| Operation ID | GetTenantViolations |
| Tags | Security |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
since | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/tokens/sign
Signs a token for the caller’s tenant: the token’s tenant is always the authenticated tenant, never a request value.
| Property | Value |
|---|---|
| Operation ID | SignToken |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/tokens/verify
Verifies a signed token and returns the decoded payload if valid. Returns an error if the token is expired, tampered, or issued by a rotated key.
| Property | Value |
|---|---|
| Operation ID | VerifyToken |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/security/tokens/{token}/info
Decodes and returns structural information about a token without performing cryptographic verification. Useful for debugging expired or unknown tokens.
| Property | Value |
|---|---|
| Operation ID | GetTokenInfo |
| Tags | Security |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
token | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/webhooks
Registers or replaces the webhook security configuration of a channel of the caller’s tenant, including the shared secret and allowed IP ranges.
| Property | Value |
|---|---|
| Operation ID | RegisterWebhookConfig |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/security/webhooks/validate
Validates an inbound webhook request against the caller’s tenant configuration for the channel, verifying the signature and checking the source IP against the allowlist.
| Property | Value |
|---|---|
| Operation ID | ValidateWebhook |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/security/webhooks/{channelId}
Returns the webhook security configuration of a channel of the caller’s tenant, with the secret masked. A channel of another tenant returns 404, the same answer as an unknown channel.
| Property | Value |
|---|---|
| Operation ID | GetWebhookConfig |
| Tags | Security |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/security/webhooks/{channelId}/allowlist
Replaces the IP allowlist of a webhook channel of the caller’s tenant. An empty list removes all IP restrictions. A channel of another tenant returns 404 and is not changed.
| Property | Value |
|---|---|
| Operation ID | UpdateWebhookAllowlist |
| Tags | Security |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/simulate
Simulate rule evaluation against events
Dry-runs rules against provided or historical events without side effects. Returns matched actions with detailed explanations.
| Property | Value |
|---|---|
| Operation ID | SimulateRules |
| Tags | Simulation |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/simulate/validate
Validate a rule definition
Validates a rule definition and returns any errors or warnings.
| Property | Value |
|---|---|
| Operation ID | ValidateRule |
| Tags | Simulation |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/storm-breaker/storms
Lists all active notification storms for a tenant
Returns all currently active notification storms for the tenant. A storm is declared when the same event kind fires at a rate exceeding the configured threshold, triggering suppression.
| Property | Value |
|---|---|
| Operation ID | ListActiveStorms |
| Tags | Storm Breaker |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/storm-breaker/storms/{stormKey}
Gets the current state of a specific storm
Returns the current state of a storm identified by its storm key, including event count, suppressed count, and the time of the last summarization.
| Property | Value |
|---|---|
| Operation ID | GetStormState |
| Tags | Storm Breaker |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
stormKey | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/storm-breaker/storms/{stormKey}
Clears a storm state manually
Manually clears the storm state for the specified key. Subsequent events of the same kind will be processed normally until a new storm threshold is exceeded.
| Property | Value |
|---|---|
| Operation ID | ClearStorm |
| Tags | Storm Breaker |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
stormKey | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/storm-breaker/storms/{stormKey}/summary
Generates a summary for an active storm
Generates and returns a suppression summary notification for the storm, delivering a single digest notification in place of all suppressed individual events.
| Property | Value |
|---|---|
| Operation ID | GenerateStormSummary |
| Tags | Storm Breaker |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
stormKey | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/templates
Lists all templates for a tenant
Returns all notification templates for the tenant with optional filtering by key prefix, channel type, and locale. Templates define rendered message bodies used by alert routing rules.
| Property | Value |
|---|---|
| Operation ID | ListTemplates |
| Tags | Templates |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
channelType | query | no | |
keyPrefix | query | no | |
limit | query | no | |
locale | query | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/templates
Creates a new template
Creates a new notification template. Template body syntax is validated before persisting. Returns conflict if a template with the same ID already exists.
| Property | Value |
|---|---|
| Operation ID | CreateTemplate |
| Tags | Templates |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/templates/preview
Previews a template rendering
Renders a template against a sample event payload without sending any notification. Accepts either an existing templateId or an inline templateBody. Returns the rendered body, subject, and any template warnings.
| Property | Value |
|---|---|
| Operation ID | PreviewTemplate |
| Tags | Templates |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/templates/{templateId}
Gets a template by ID
Returns a single notification template by its identifier, including body, channel type, locale, render mode, format, and audit metadata.
| Property | Value |
|---|---|
| Operation ID | GetTemplate |
| Tags | Templates |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
templateId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/templates/{templateId}
Updates an existing template
Updates an existing notification template. Template body syntax is validated before persisting. An audit entry is written on update.
| Property | Value |
|---|---|
| Operation ID | UpdateTemplate |
| Tags | Templates |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
templateId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/templates/{templateId}
Deletes a template
Permanently removes a notification template. Rules referencing this template will fall back to channel defaults on the next delivery. An audit entry is written on deletion.
| Property | Value |
|---|---|
| Operation ID | DeleteTemplate |
| Tags | Templates |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
templateId | path | yes |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /api/v2/throttles/config
Get throttle configuration
Returns the throttle configuration for the tenant, including the default suppression window, per-event-kind overrides, and burst window settings. Returns platform defaults if no custom configuration exists.
| Property | Value |
|---|---|
| Operation ID | GetThrottleConfiguration |
| Tags | Throttles |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
PUT /api/v2/throttles/config
Update throttle configuration
Creates or replaces the throttle configuration for the tenant. The default duration and optional per-event-kind overrides control how long duplicate notifications are suppressed.
| Property | Value |
|---|---|
| Operation ID | UpdateThrottleConfiguration |
| Tags | Throttles |
| Auth | Not declared |
| Request body | application/json |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
DELETE /api/v2/throttles/config
Delete throttle configuration
Removes the tenant-specific throttle configuration, reverting all throttle windows to the platform defaults.
| Property | Value |
|---|---|
| Operation ID | DeleteThrottleConfiguration |
| Tags | Throttles |
| Auth | Not declared |
| Request body | - |
Parameters:
| Name | In | Required | Description |
|---|---|---|---|
X-Actor | header | no |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /api/v2/throttles/evaluate
Evaluate throttle duration
Returns the effective throttle duration in seconds for a given event kind, applying the tenant-specific override if present or the default if not.
| Property | Value |
|---|---|
| Operation ID | EvaluateThrottle |
| Tags | Throttles |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /buildinfo.json
Image build provenance (module, gitSha, gitCommitTime, imageBuiltAt, branch) for drift detection.
| Property | Value |
|---|---|
| Operation ID | StellaOpsBuildInfoFile |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /doctor/notify-web/checks
| Property | Value |
|---|---|
| Operation ID | - |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /internal/notify/channels/normalize
notify.internal.channels_normalize_description
| Property | Value |
|---|---|
| Operation ID | notify.channels.normalize |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /internal/notify/rules/normalize
notify.internal.rules_normalize_description
| Property | Value |
|---|---|
| Operation ID | notify.rules.normalize |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
400 | Bad Request | - |
POST /internal/notify/templates/normalize
notify.internal.templates_normalize_description
| Property | Value |
|---|---|
| Operation ID | notify.templates.normalize |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
POST /internal/plugins/probe
| Property | Value |
|---|---|
| Operation ID | NotifyPluginProbe |
| Tags | Internal, Plugins |
| Auth | Not declared |
| Request body | application/json |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /internal/plugins/status
| Property | Value |
|---|---|
| Operation ID | NotifyPluginStatus |
| Tags | Internal, Plugins |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
GET /readyz
notify.readyz.description
| Property | Value |
|---|---|
| Operation ID | NotifyReadyz |
| Tags | StellaOps.Notify.WebService |
| Auth | Not declared |
| Request body | - |
Responses:
| Status | Description | Content types |
|---|---|---|
200 | OK | - |
