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.