Zum Hauptinhalt springen

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​

FeldTypBeschreibung
idintegerFenster-Bezeichner.
namestringName des Fensters.
descriptionstring | nullOptionale Beschreibung.
statusstring"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​

FeldTypBeschreibung
idintegerFenster-Bezeichner.
namestringName des Fensters.
descriptionstring | nullOptionale Beschreibung.
statusstring"active" oder "inactive".
window_typestring"one_time" oder "recurring".
timezonestringZeitzone (z. B. "Europe/Berlin").
valid_fromstring | nullGesamtgültigkeitsbeginn (ISO 8601).
valid_untilstring | nullGesamtgültigkeitsende (ISO 8601).
created_atstringErstellungszeitstempel (ISO 8601).
updated_atstringZeitstempel der letzten Aktualisierung (ISO 8601).
rulesobject[]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​

FeldTypPflichtBeschreibung
namestringJaName des Fensters.
statusstringJa"active" oder "inactive".
window_typestringJa"one_time" oder "recurring".
descriptionstringNeinOptionale Beschreibung.
timezonestringNeinZeitzone (Standard: "Europe/Berlin").
valid_fromstringNeinGesamtgültigkeitsbeginn (ISO 8601).
valid_untilstringNeinGesamtgü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​

FeldTypPflichtBeschreibung
maintenance_window_idintegerJaID des übergeordneten Fensters.
start_atstringNeinEinmaliger Startzeitpunkt (ISO 8601).
end_atstringNeinEinmaliger Endzeitpunkt (ISO 8601).
recurrence_typestringNein"weekly", "monthly", "daily", "cron" oder "rrule".
day_of_weekinteger (0–6)NeinWochentag für wöchentliche Wiederholung (0=Montag).
day_of_monthinteger (1–31)NeinTag des Monats für monatliche Wiederholung.
start_timestringNeinTageszeit für Wiederholungsbeginn (z. B. "02:00").
end_timestringNeinTageszeit für Wiederholungsende.
interval_countinteger ≥ 1NeinIntervallanzahl für wiederkehrende Regeln.
rrulestringNeinRFC 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​

FeldTypPflichtBeschreibung
atstringJaZu 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​

FeldTypBeschreibung
window_idintegerDas getestete Fenster.
atstringDer getestete Zeitpunkt.
insidebooleanGibt an, ob der Zeitpunkt in das Fenster fällt.
matched_rule_idinteger | nullID der ersten übereinstimmenden Regel, falls vorhanden.
reasonstring | nullMenschenlesbare Erklärung.

Antwort 400​

Wird zurückgegeben, wenn at kein gültiger ISO 8601-Zeitpunkt ist.

Antwort 404​

{"error": "string"}

Wartungsregel-Schema​

FeldTypBeschreibung
idintegerRegel-Bezeichner.
maintenance_window_idintegerID des übergeordneten Fensters.
start_atstring | nullEinmaliger Startzeitpunkt (ISO 8601).
end_atstring | nullEinmaliger Endzeitpunkt (ISO 8601).
recurrence_typestring | null"weekly", "monthly", "daily", "cron" oder "rrule".
day_of_weekinteger | nullWochentag (0–6, 0=Montag).
day_of_monthinteger | nullTag des Monats (1–31).
start_timestring | nullTägliche Startzeit (z. B. "02:00").
end_timestring | nullTägliche Endzeit.
interval_countinteger | nullIntervallanzahl für wiederkehrende Regeln.
rrulestring | nullRFC 5545 RRULE-String.