POST Internen Wartungszeitplan anlegen
/api/v1/workspaces/{id}/maintenance-schedules
Interne einmalige oder wöchentliche Wartung. Messungen und Alarmzustände laufen weiter; Zustellungen werden unterdrückt. IANA-Zeitlücken werden ausgelassen, doppelte Uhrzeiten verwenden die erste Ausführung. Deaktivierte Zeitpläne belegen einen der 20 Plätze. Änderungen erhalten vergangene Zeiten; Gruppenänderungen wirken ab ihrem Zeitpunkt. Öffentliche Hinweise erfordern einen getrennten Entwurf und Veröffentlichungsberechtigung der Statusseite.
Auf dieser Seite
Zugriff und Rechte
Interne einmalige oder wöchentliche Wartung. Messungen und Alarmzustände laufen weiter; Zustellungen werden unterdrückt. IANA-Zeitlücken werden ausgelassen, doppelte Uhrzeiten verwenden die erste Ausführung. Deaktivierte Zeitpläne belegen einen der 20 Plätze. Änderungen erhalten vergangene Zeiten; Gruppenänderungen wirken ab ihrem Zeitpunkt. Öffentliche Hinweise erfordern einen getrennten Entwurf und Veröffentlichungsberechtigung der Statusseite.
Browsersitzung: Cookie __Host-mb_session.
Maschinen-Verwaltungszugang in Authorization: Bearer. Beachten Sie die von der Operation benötigten Berechtigungen (Scopes).
Senden Sie bei einer Änderung mit Browsersitzung das aktuelle CSRF-Token in X-CSRF-Token zusammen mit dem Same-Site-Cookie. OAuth-Zustimmung verwendet ihr dokumentiertes Formularfeld.
Parameter und Header
| Feld | Position | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|---|
| id | Pfad | string; {"format":"uuid"} | Ja | Ressourcen-ID in diesem Arbeitsbereich |
| Idempotency-Key | Header | string; {"maxLength":128,"minLength":16,"pattern":"^[A-Za-z0-9._~-]{16,128}$"} | Nein | Interne einmalige oder wöchentliche Wartung. Messungen und Alarmzustände laufen weiter; Zustellungen werden unterdrückt. IANA-Zeitlücken werden ausgelassen, doppelte Uhrzeiten verwenden die erste Ausführung. Deaktivierte Zeitpläne belegen einen der 20 Plätze. Änderungen erhalten vergangene Zeiten; Gruppenänderungen wirken ab ihrem Zeitpunkt. Öffentliche Hinweise erfordern einen getrennten Entwurf und Veröffentlichungsberechtigung der Statusseite. |
Anfragekörper
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | object | Ja | — |
| $.config | object | Ja | Interne einmalige oder wöchentliche Wartung. Messungen und Alarmzustände laufen weiter; Zustellungen werden unterdrückt. IANA-Zeitlücken werden ausgelassen, doppelte Uhrzeiten verwenden die erste Ausführung. Deaktivierte Zeitpläne belegen einen der 20 Plätze. Änderungen erhalten vergangene Zeiten; Gruppenänderungen wirken ab ihrem Zeitpunkt. Öffentliche Hinweise erfordern einen getrennten Entwurf und Veröffentlichungsberechtigung der Statusseite. |
| $.config.device_ids | array<string; {"format":"uuid"}>; {"maxItems":100} | Ja | — |
| $.config.device_ids[] | string; {"format":"uuid"} | Ja | — |
| $.config.duration_seconds | integer; {"maximum":604800,"minimum":60} | Nein | — |
| $.config.ends_at | string; {"format":"date-time"} | Nein | — |
| $.config.group_ids | array<string; {"format":"uuid"}>; {"maxItems":100} | Ja | — |
| $.config.group_ids[] | string; {"format":"uuid"} | Ja | — |
| $.config.kind | string; {"enum":["once","weekly"]} | Ja | — |
| $.config.local_time | string; {"pattern":"^[0-2][0-9]:[0-5][0-9]$"} | Nein | — |
| $.config.starts_at | string; {"format":"date-time"} | Nein | — |
| $.config.target | string; {"enum":["workspace","groups","monitors"]} | Ja | — |
| $.config.timezone | string; {"maxLength":64,"minLength":1} | Ja | — |
| $.config.weekday | integer; {"maximum":7,"minimum":1} | Nein | — |
| $.enabled | boolean | Ja | — |
| $.expected_revision | integer; {"minimum":1} | Nein | — |
| $.name | string; {"maxLength":128,"minLength":1} | Ja | — |
Antworten
application/json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | object | Ja | — |
| $.config | object | Ja | Interne einmalige oder wöchentliche Wartung. Messungen und Alarmzustände laufen weiter; Zustellungen werden unterdrückt. IANA-Zeitlücken werden ausgelassen, doppelte Uhrzeiten verwenden die erste Ausführung. Deaktivierte Zeitpläne belegen einen der 20 Plätze. Änderungen erhalten vergangene Zeiten; Gruppenänderungen wirken ab ihrem Zeitpunkt. Öffentliche Hinweise erfordern einen getrennten Entwurf und Veröffentlichungsberechtigung der Statusseite. |
| $.config.device_ids | array<string; {"format":"uuid"}>; {"maxItems":100} | Ja | — |
| $.config.device_ids[] | string; {"format":"uuid"} | Ja | — |
| $.config.duration_seconds | integer; {"maximum":604800,"minimum":60} | Nein | — |
| $.config.ends_at | string; {"format":"date-time"} | Nein | — |
| $.config.group_ids | array<string; {"format":"uuid"}>; {"maxItems":100} | Ja | — |
| $.config.group_ids[] | string; {"format":"uuid"} | Ja | — |
| $.config.kind | string; {"enum":["once","weekly"]} | Ja | — |
| $.config.local_time | string; {"pattern":"^[0-2][0-9]:[0-5][0-9]$"} | Nein | — |
| $.config.starts_at | string; {"format":"date-time"} | Nein | — |
| $.config.target | string; {"enum":["workspace","groups","monitors"]} | Ja | — |
| $.config.timezone | string; {"maxLength":64,"minLength":1} | Ja | — |
| $.config.weekday | integer; {"maximum":7,"minimum":1} | Nein | — |
| $.enabled | boolean | Ja | — |
| $.id | string; {"format":"uuid"} | Ja | — |
| $.name | string; {"maxLength":128,"minLength":1} | Ja | — |
| $.occurrences | array<object> | Ja | — |
| $.occurrences[] | object | Ja | — |
| $.occurrences[].ends_at | string; {"format":"date-time"} | Ja | — |
| $.occurrences[].starts_at | string; {"format":"date-time"} | Ja | — |
| $.revision | integer; {"minimum":1} | Ja | — |
| $.updated_at | string; {"format":"date-time"} | Ja | — |
| $.workspace_id | string; {"format":"uuid"} | Ja | — |
{
"config": {
"device_ids": [],
"duration_seconds": 3600,
"group_ids": [],
"kind": "weekly",
"local_time": "08:00",
"target": "workspace",
"timezone": "Europe/Berlin",
"weekday": 1
},
"enabled": true,
"id": "00000000-0000-4000-8000-000000000001",
"name": "Maintenance demo",
"occurrences": [],
"revision": 1,
"updated_at": "2026-10-02T08:00:00Z",
"workspace_id": "00000000-0000-4000-8000-000000000001"
}| Stabile Fehlercodes |
|---|
| unauthorized |
| invalid_credential |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| forbidden |
| csrf |
| insufficient_scope |
| workspace_scope |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| not_found |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| idempotency_conflict |
| revision_conflict |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| invalid_dashboard |
| invalid_dashboard_sources |
| invalid_idempotency_key |
| invalid_maintenance |
| invalid_maintenance_targets |
| invalid_reference |
| invalid_workspace |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| dashboard_limit |
| maintenance_limit |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
| Stabile Fehlercodes |
|---|
| unavailable |
application/problem+json
| Feld | Typ und Grenzen | Erforderlich | Bedeutung |
|---|---|---|---|
| $ | Problem | Ja | — |
| $.code | string | Ja | Stabiler maschinenlesbarer Fehlercode |
| $.detail | string | Ja | Kurze lokalisierte Erklärung ohne interne Fehlerdaten |
| $.instance | string | Ja | Einmalige relative Kennung /api/v1/requests/{request_id}; keine abrufbare Ressource |
| $.message | string | Ja | Vorübergehend für bestehende Clients gleich detail |
| $.message_key | string | Ja | Stabiler Übersetzungsschlüssel für einen Sprachwechsel der Anzeige ohne neue Anfrage |
| $.message_params | object; {"additionalProperties":true} | Ja | Benannte, sicher ausgegebene Meldungsparameter; kein beliebiges HTML |
| $.request_id | string; {"pattern":"^[0-9a-f]{32}$"} | Ja | Vom Server erzeugte Diagnosekennung. Enthält kein Logintoken und keine Zugangsdaten. |
| $.status | integer; {"maximum":599,"minimum":400} | Ja | — |
| $.title | string | Ja | Lokalisierte HTTP-Statusbezeichnung |
| $.type | string; {"const":"about:blank"} | Ja | — |
Wiederholungen und asynchrone Aufträge
Für diese Änderung gibt es keine allgemeine Wiederholungsgarantie. Prüfen Sie bei unklarer Antwort den betroffenen Eintrag, bevor Sie es erneut versuchen. Beachten Sie Wartezeiten aus Retry-After und fordern Sie abgelaufene Anmelde- oder Aktionscodes neu an.
Anfragebeispiele
Ersetzen Sie Demokennungen, Zeitstempel und Platzhalter durch eigene Werte. Behalten Sie bei Wiederholungen Kennungen, Zeit und Inhalt bei. Diese Beispiele führen auf der Seite keine Anfragen aus.
Halten Sie Anmeldelinks, Codes, Cookies und Schlüssel privat. Schreiben Sie sie nicht in Logs und teilen Sie sie nicht in Hilfeanfragen.
curl --fail-with-body --request POST --header @"$HOME/.config/metribeacon/headers.txt" --header 'Content-Type: application/json' --header 'Idempotency-Key: maintenance-example-key' --data-binary '{"name":"Maintenance demo","enabled":true,"config":{"kind":"weekly","weekday":1,"local_time":"08:00","timezone":"Europe/Berlin","duration_seconds":3600,"target":"workspace","device_ids":[],"group_ids":[]}}' "https://metribeacon.com/api/v1/workspaces/00000000-0000-4000-8000-000000000001/maintenance-schedules"
import json, os, urllib.request
request = urllib.request.Request('https://metribeacon.com/api/v1/workspaces/00000000-0000-4000-8000-000000000001/maintenance-schedules', method='POST', headers={"Cookie": os.environ["MB_COOKIE"], "X-CSRF-Token": os.environ["MB_CSRF"], "Content-Type": "application/json", "Idempotency-Key": "maintenance-example-key"}, data=json.dumps({'name': 'Maintenance demo', 'enabled': True, 'config': {'kind': 'weekly', 'weekday': 1, 'local_time': '08:00', 'timezone': 'Europe/Berlin', 'duration_seconds': 3600, 'target': 'workspace', 'device_ids': [], 'group_ids': []}}).encode())
with urllib.request.urlopen(request, timeout=30) as response:
print(json.load(response))
const response = await fetch("https://metribeacon.com/api/v1/workspaces/00000000-0000-4000-8000-000000000001/maintenance-schedules", {method: "POST", headers: {"Cookie": process.env.MB_COOKIE, "X-CSRF-Token": process.env.MB_CSRF, "Content-Type": "application/json", "Idempotency-Key": "maintenance-example-key"}, body: JSON.stringify({"name": "Maintenance demo", "enabled": true, "config": {"kind": "weekly", "weekday": 1, "local_time": "08:00", "timezone": "Europe/Berlin", "duration_seconds": 3600, "target": "workspace", "device_ids": [], "group_ids": []}}), signal: AbortSignal.timeout(30000)});
console.log(await response.json());
package main
import ("fmt"; "net/http"; "os"; "io"; "strings"; "time")
func main() {
req, err := http.NewRequest("POST", "https://metribeacon.com/api/v1/workspaces/00000000-0000-4000-8000-000000000001/maintenance-schedules", strings.NewReader("{\"name\":\"Maintenance demo\",\"enabled\":true,\"config\":{\"kind\":\"weekly\",\"weekday\":1,\"local_time\":\"08:00\",\"timezone\":\"Europe/Berlin\",\"duration_seconds\":3600,\"target\":\"workspace\",\"device_ids\":[],\"group_ids\":[]}}")); if err != nil { panic(err) }; req.Header.Set("Cookie", os.Getenv("MB_COOKIE")); req.Header.Set("X-CSRF-Token", os.Getenv("MB_CSRF")); req.Header.Set("Content-Type", "application/json"); req.Header.Set("Idempotency-Key", "maintenance-example-key"); client := &http.Client{Timeout:30*time.Second}; response, err := client.Do(req); if err != nil { panic(err) }; defer response.Body.Close(); _, _ = io.Copy(os.Stdout, response.Body); fmt.Println()
}
Verwandte Anleitungen
- HTTP-API, OAuth und MCP
Finden Sie die Nutzer-API-Endpunkte mit Rechten, Feldern, Beispielen und Antwortformaten.
- GET Wartungszeitpläne des Arbeitsbereichs lesen
Interne einmalige oder wöchentliche Wartung. Messungen und Alarmzustände laufen weiter; Zustellungen werden unterdrückt. IANA-Zeitlücken werden ausgelassen, doppelte Uhrzeiten verwenden die erste Ausführung. Deaktivierte Zeitpläne belegen einen der 20 Plätze. Änderungen erhalten vergangene Zeiten; Gruppenänderungen wirken ab ihrem Zeitpunkt. Öffentliche Hinweise erfordern einen getrennten Entwurf und Veröffentlichungsberechtigung der Statusseite.
- DELETE Internen Wartungszeitplan entfernen
Interne einmalige oder wöchentliche Wartung. Messungen und Alarmzustände laufen weiter; Zustellungen werden unterdrückt. IANA-Zeitlücken werden ausgelassen, doppelte Uhrzeiten verwenden die erste Ausführung. Deaktivierte Zeitpläne belegen einen der 20 Plätze. Änderungen erhalten vergangene Zeiten; Gruppenänderungen wirken ab ihrem Zeitpunkt. Öffentliche Hinweise erfordern einen getrennten Entwurf und Veröffentlichungsberechtigung der Statusseite.
- PUT Internen Wartungszeitplan speichern
Interne einmalige oder wöchentliche Wartung. Messungen und Alarmzustände laufen weiter; Zustellungen werden unterdrückt. IANA-Zeitlücken werden ausgelassen, doppelte Uhrzeiten verwenden die erste Ausführung. Deaktivierte Zeitpläne belegen einen der 20 Plätze. Änderungen erhalten vergangene Zeiten; Gruppenänderungen wirken ab ihrem Zeitpunkt. Öffentliche Hinweise erfordern einen getrennten Entwurf und Veröffentlichungsberechtigung der Statusseite.