Incidents gesammelt ändern
Wendet eine Aktion (bestätigen, lösen, Schweregrad, zuweisen) auf bis zu 200 Incident-Management-Incidents gleichzeitig an, mit Ergebnis je Incident.
POST /api/im/incidents/bulk
Wendet eine Aktion auf viele Incidents an, etwa um während eines großen Ausfalls Dutzende Incidents auf einmal zu bestätigen oder zu lösen. Jeder Incident durchläuft genau dieselbe Logik wie beim Einzel-Endpunkt, mit denselben Nebenwirkungen (Eskalation stoppen oder neu scharf schalten, Statusseiten, ausgehende Integrationen). Die Incidents werden einzeln und unabhängig voneinander verarbeitet: ein scheiternder Incident macht die anderen weder rückgängig noch blockiert er sie, die Anfrage ist also nicht atomar.
Authentifizierung
Jede IM-berechtigte Rolle (admin, editor, responder) oder ein organisationsweiter API-Token, siehe Authentifizierung. Incident Management muss für die Organisation aktiviert sein.
Jede Aktion außer acknowledge ist den Teams der Incidents vorbehalten: du musst Mitglied im Team jedes ausgewählten Incidents oder Organisations-Admin sein. Das wird für alle IDs geprüft, bevor irgendetwas geändert wird; gehört auch nur ein Incident nicht zu dir, wird die ganze Anfrage mit 403 abgelehnt und die betroffenen IDs stehen in data.deniedIncidentIds. Ein organisationsweiter API-Token gilt dabei als Organisations-Admin.
Anfrage (Request Body)
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
ids | number[] | Ja | 1 bis 200 Incident-IDs, eindeutige positive Ganzzahlen. |
action | string | Ja | Einer von acknowledge, resolve, severity, assign, team. |
payload | object | Je nach action | Siehe unten. |
action | payload | Entspricht |
|---|---|---|
acknowledge | keins | Bestätigen. Ein bereits bestätigter Incident zählt als ok. |
resolve | note (string, optional, höchstens 10.000 Zeichen) | Incident lösen |
severity | severity (Pflicht, sev1 bis sev4) | Schweregrad ändern |
assign | userId (Pflicht: eine User-ID, oder null, um die Rolle zu leeren), role (optional, Standard assignee) | Rolle zuweisen |
team | teamId (Pflicht) | Nicht umgesetzt, antwortet immer mit 501 |
Beispiel (cURL)
curl -X POST "$BASE_URL/api/im/incidents/bulk" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ids": [42, 43, 44],
"action": "resolve",
"payload": { "note": "Upstream provider outage resolved." }
}'Antwort (Response)
200 OK, auch wenn einzelne Incidents gescheitert sind. ok listet die geänderten IDs, failed die übrigen mit einem reason: dem data.code, den der Einzel-Endpunkt geliefert hätte (z. B. imIncidentNotFound, imIncidentAlreadyClosed, imIncidentStatusConflict, invalidUserId), oder unknown.
{
"ok": [42, 43],
"failed": [
{ "id": 44, "reason": "imIncidentAlreadyClosed" }
]
}Häufige Fehler
401 Unauthorizedwenn du nicht authentifiziert bist403 Forbidden(customerScopedTokenForbidden) bei Verwendung eines kunden-gescopten Tokens403 Forbidden(imAccessDenied) wenn die angemeldete Person keine IM-berechtigte Rolle hat403 Forbidden(imNotEnabled) wenn Incident Management für die Organisation nicht aktiviert ist403 Forbidden(imTeamMembershipRequired) wenn die Aktion nichtacknowledgeist und mindestens ein ausgewählter Incident zu einem Team gehört, in dem du nicht Mitglied bist (und du nicht Organisations-Admin bist);data.deniedIncidentIdslistet sie, geändert wurde nichts400 Bad Request(invalidRequestBody) wennidsleer ist, mehr als 200 Einträge, Duplikate oder keine positiven Ganzzahlen enthält,actionunbekannt ist, oder das Payload zur Aktion ungültig ist (fehlende oder unbekannteseverity, fehlendeuserId, unbekannterole,notekein String oder zu lang, fehlendeteamId)501 Not Implemented(imBulkActionNotImplemented) beiaction: "team"; das Verschieben von Incidents zwischen Teams wird nicht unterstützt
Audit-Log
Das Audit-Log des Incident Managements lesen: wer welches Team, welchen Schedule, welche Source oder Einstellung angelegt, geändert oder gelöscht hat, mit dem aufgezeichneten Diff. Cursor-paginiert.
Kanäle
Paging-Kanäle im Incident Management (Webhook, Slack, E-Mail) auflisten, anlegen, ändern und löschen, inklusive der Nur-Schreiben-Behandlung von Webhook-URLs und Headern.