Wartungsfenster
Wartungsfenster ermöglichen die Planung von Zeiträumen, in denen IDIAL automatisierte Zertifikatsoperationen unterdrückt. Ein Wartungsfenster gruppiert Planungsmetadaten (Typ, Zeitzone, Gültigkeitsbereich, Status). Eine Wartungsregel definiert die eigentlichen Zeitspannen innerhalb eines Fensters (einmalig oder wiederkehrend). Mehrere Regeln können einem Fenster zugeordnet werden. Das Löschen eines Fensters wirkt sich kaskadierend auf alle zugehörigen Regeln aus.
GET /maintenance/inventory
Gibt alle Wartungsfenster zurück (Zusammenfassungsansicht).
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X GET http://localhost:5000/maintenance/inventory \
-H "X-API-Key: your-api-key"
Antwort 200
[
{
"id": 1,
"name": "Wochenend-Wartung",
"description": "Reguläres Wartungsfenster am Wochenende",
"status": "active"
}
]
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
id | integer | Fenster-Bezeichner. |
name | string | Name des Fensters. |
description | string | null | Optionale Beschreibung. |
status | string | "active" oder "inactive". |
GET /maintenance/inventory/{window_id}
Gibt vollständige Details für ein einzelnes Wartungsfenster zurück, einschließlich aller zugehörigen Regeln.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X GET http://localhost:5000/maintenance/inventory/1 \
-H "X-API-Key: your-api-key"
Antwort 200
{
"id": 1,
"name": "Wochenend-Wartung",
"description": "Reguläres Wartungsfenster am Wochenende",
"status": "active",
"window_type": "recurring",
"timezone": "Europe/Berlin",
"valid_from": null,
"valid_until": null,
"created_at": "2026-01-01T10:00:00",
"updated_at": "2026-01-01T10:00:00",
"rules": [
{
"id": 1,
"maintenance_window_id": 1,
"recurrence_type": "weekly",
"day_of_week": 5,
"start_time": "02:00",
"end_time": "06:00",
"interval_count": 1,
"start_at": null,
"end_at": null,
"day_of_month": null,
"rrule": null
}
]
}
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
id | integer | Fenster-Bezeichner. |
name | string | Name des Fensters. |
description | string | null | Optionale Beschreibung. |
status | string | "active" oder "inactive". |
window_type | string | "one_time" oder "recurring". |
timezone | string | Zeitzone (z. B. "Europe/Berlin"). |
valid_from | string | null | Gesamtgültigkeitsbeginn (ISO 8601). |
valid_until | string | null | Gesamtgültigkeitsende (ISO 8601). |
created_at | string | Erstellungszeitstempel (ISO 8601). |
updated_at | string | Zeitstempel der letzten Aktualisierung (ISO 8601). |
rules | object[] | Array von Wartungsregeln (siehe Regelschema). |
Antwort 404
{"error": "string"}
POST /maintenance/inventory
Legt ein neues Wartungsfenster an.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X POST http://localhost:5000/maintenance/inventory \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"name": "Wochenend-Wartung",
"status": "active",
"window_type": "recurring",
"timezone": "Europe/Berlin"
}'
Anfragefelder
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
name | string | Ja | Name des Fensters. |
status | string | Ja | "active" oder "inactive". |
window_type | string | Ja | "one_time" oder "recurring". |
description | string | Nein | Optionale Beschreibung. |
timezone | string | Nein | Zeitzone (Standard: "Europe/Berlin"). |
valid_from | string | Nein | Gesamtgültigkeitsbeginn (ISO 8601). |
valid_until | string | Nein | Gesamtgültigkeitsende (ISO 8601). |
Antwort 201
Vollständige Fensterdetails. Format entspricht GET /maintenance/inventory/{window_id}.
PATCH /maintenance/inventory/{window_id}
Aktualisiert Felder eines vorhandenen Wartungsfensters. Mindestens ein Feld muss angegeben werden.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X PATCH http://localhost:5000/maintenance/inventory/1 \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"status": "inactive"}'
Anfragefelder
Identisch mit POST /maintenance/inventory. Alle Felder sind optional.
Antwort 200
Aktualisierte Fensterdetails. Format entspricht GET /maintenance/inventory/{window_id}.
Antwort 400
{"error": "string"}
Antwort 404
{"error": "string"}
DELETE /maintenance/inventory/{window_id}
Löscht ein Wartungsfenster und alle zugehörigen Regeln.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X DELETE http://localhost:5000/maintenance/inventory/1 \
-H "X-API-Key: your-api-key"
Antwort 200
Gelöschte Fensterdetails. Format entspricht GET /maintenance/inventory/{window_id}.
Antwort 404
{"error": "string"}
GET /maintenance/rule
Gibt alle Wartungsregeln über alle Fenster zurück.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X GET http://localhost:5000/maintenance/rule \
-H "X-API-Key: your-api-key"
Antwort 200
Array von Regelobjekten. Siehe Wartungsregel-Schema.
POST /maintenance/rule
Legt eine neue Wartungsregel an und ordnet sie einem Fenster zu.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X POST http://localhost:5000/maintenance/rule \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"maintenance_window_id": 1,
"recurrence_type": "weekly",
"day_of_week": 5,
"start_time": "02:00",
"end_time": "06:00"
}'
Anfragefelder
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
maintenance_window_id | integer | Ja | ID des übergeordneten Fensters. |
start_at | string | Nein | Einmaliger Startzeitpunkt (ISO 8601). |
end_at | string | Nein | Einmaliger Endzeitpunkt (ISO 8601). |
recurrence_type | string | Nein | "weekly", "monthly", "daily", "cron" oder "rrule". |
day_of_week | integer (0–6) | Nein | Wochentag für wöchentliche Wiederholung (0=Montag). |
day_of_month | integer (1–31) | Nein | Tag des Monats für monatliche Wiederholung. |
start_time | string | Nein | Tageszeit für Wiederholungsbeginn (z. B. "02:00"). |
end_time | string | Nein | Tageszeit für Wiederholungsende. |
interval_count | integer ≥ 1 | Nein | Intervallanzahl für wiederkehrende Regeln. |
rrule | string | Nein | RFC 5545 RRULE-String (für recurrence_type: "rrule"). |
Antwort 201
Angelegtes Regelobjekt. Siehe Wartungsregel-Schema.
PATCH /maintenance/rule/{rule_id}
Aktualisiert Felder einer Wartungsregel. Mindestens ein Feld muss angegeben werden.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X PATCH http://localhost:5000/maintenance/rule/1 \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"start_time": "03:00", "end_time": "07:00"}'
Anfragefelder
Identisch mit POST /maintenance/rule, außer maintenance_window_id. Alle Felder sind optional.
Antwort 200
Aktualisiertes Regelobjekt. Siehe Wartungsregel-Schema.
Antwort 400
{"error": "string"}
Antwort 404
{"error": "string"}
DELETE /maintenance/rule/{rule_id}
Löscht eine Wartungsregel.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X DELETE http://localhost:5000/maintenance/rule/1 \
-H "X-API-Key: your-api-key"
Antwort 200
Gelöschtes Regelobjekt. Siehe Wartungsregel-Schema.
Antwort 404
{"error": "string"}
POST /maintenance/test/{window_id}
Prüft, ob ein gegebener Zeitpunkt in eine der Regeln des angegebenen Wartungsfensters fällt.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X POST http://localhost:5000/maintenance/test/1 \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"at": "2026-05-09T03:00:00"}'
Anfragefelder
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
at | string | Ja | Zu prüfender ISO 8601-Zeitpunkt (z. B. "2026-05-09T03:00:00"). |
Antwort 200
{
"window_id": 1,
"at": "2026-05-09T03:00:00",
"inside": true,
"matched_rule_id": 1,
"reason": "Matches weekly rule on Saturday between 02:00 and 06:00"
}
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
window_id | integer | Das getestete Fenster. |
at | string | Der getestete Zeitpunkt. |
inside | boolean | Gibt an, ob der Zeitpunkt in das Fenster fällt. |
matched_rule_id | integer | null | ID der ersten übereinstimmenden Regel, falls vorhanden. |
reason | string | null | Menschenlesbare Erklärung. |
Antwort 400
Wird zurückgegeben, wenn at kein gültiger ISO 8601-Zeitpunkt ist.
Antwort 404
{"error": "string"}
Wartungsregel-Schema
| Feld | Typ | Beschreibung |
|---|---|---|
id | integer | Regel-Bezeichner. |
maintenance_window_id | integer | ID des übergeordneten Fensters. |
start_at | string | null | Einmaliger Startzeitpunkt (ISO 8601). |
end_at | string | null | Einmaliger Endzeitpunkt (ISO 8601). |
recurrence_type | string | null | "weekly", "monthly", "daily", "cron" oder "rrule". |
day_of_week | integer | null | Wochentag (0–6, 0=Montag). |
day_of_month | integer | null | Tag des Monats (1–31). |
start_time | string | null | Tägliche Startzeit (z. B. "02:00"). |
end_time | string | null | Tägliche Endzeit. |
interval_count | integer | null | Intervallanzahl für wiederkehrende Regeln. |
rrule | string | null | RFC 5545 RRULE-String. |