API zaplanowanych skanów
Autor: Zespół Aether365 Odbiorcy: Deweloperzy Zakres: Endpointy API zaplanowanych skanów - tworzenie i zarządzanie harmonogramami skanów
Zaplanowane skany definiują cykliczne zadania skanowania. Każdy zaplanowany skan definiuje cykliczny wyzwalacz uruchamiany w skonfigurowanym interwale.
Lista zaplanowanych skanów
Zwraca wszystkie zaplanowane skany uwierzytelnionego tenanta, włącznie z automatycznym skanem planu.
GET /tenants/me/scheduled-scansPrzykładowe żądanie
bash
curl https://api.aether365.io/tenants/me/scheduled-scans \
-H "Authorization: Bearer <token>"Przykładowa odpowiedź
json
{
"success": true,
"data": [
{
"id": "plan",
"isPlanSchedule": true,
"name": "Automatic plan scan",
"frequency": "weekly",
"hour": 0,
"minute": 0,
"dayOfWeek": 0,
"dayOfMonth": 1,
"timezone": "UTC",
"enabled": true,
"scanType": "compliance",
"lastTriggeredAt": "2026-04-07T00:00:00Z"
},
{
"id": "sched_abc123",
"isPlanSchedule": false,
"name": "Weekly exposure scan",
"frequency": "weekly",
"hour": 6,
"minute": 0,
"dayOfWeek": 3,
"dayOfMonth": null,
"timezone": "Europe/London",
"enabled": true,
"scanType": "exposure",
"lastTriggeredAt": "2026-04-09T06:00:00Z"
}
]
}Pola odpowiedzi
| Pole | Typ | Opis |
|---|---|---|
id | string | Identyfikator harmonogramu ("plan" dla automatycznego planu) |
isPlanSchedule | boolean | true jeśli to automatyczny skan planu |
name | string | Nazwa wyświetlana |
frequency | string | daily, weekly lub monthly |
hour | integer | Godzina uruchomienia (0-23) |
minute | integer | Minuta uruchomienia (0-59) |
dayOfWeek | integer | Dzień tygodnia dla harmonogramów weekly (0=Pn, 6=Nd) |
dayOfMonth | integer | Dzień miesiąca dla harmonogramów monthly (1-31) |
timezone | string | Strefa czasowa IANA |
enabled | boolean | Czy harmonogram jest aktywny |
scanType | string | compliance lub exposure |
lastTriggeredAt | string lub null | Znacznik czasu ISO 8601 ostatniego uruchomienia |
Tworzenie zaplanowanego skanu
Tworzy nowy zaplanowany skan.
POST /tenants/me/scheduled-scansTreść żądania
json
{
"name": "Monthly exposure scan",
"frequency": "monthly",
"hour": 3,
"minute": 0,
"dayOfMonth": 1,
"timezone": "UTC",
"scanType": "exposure",
"enabled": true
}| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
name | string | Tak | Nazwa wyświetlana |
frequency | string | Tak | daily, weekly lub monthly |
hour | integer | Tak | 0-23 |
minute | integer | Tak | 0-59 |
dayOfWeek | integer | Dla weekly | 0=Pn, 6=Nd |
dayOfMonth | integer | Dla monthly | 1-31 |
timezone | string | Tak | Strefa czasowa IANA (np. UTC, Europe/Berlin) |
scanType | string | Tak | compliance lub exposure |
enabled | boolean | Nie | Domyślnie true |
Przykładowe żądanie
bash
curl -X POST https://api.aether365.io/tenants/me/scheduled-scans \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Monthly exposure scan",
"frequency": "monthly",
"hour": 3,
"minute": 0,
"dayOfMonth": 1,
"timezone": "UTC",
"scanType": "exposure",
"enabled": true
}'Błędy
| Kod | HTTP | Opis |
|---|---|---|
SCAN_PLAN_LIMIT_REACHED | 429 | Osiągnięto limit własnych harmonogramów dla planu |
VALIDATION_ERROR | 400 | Brakujące lub nieprawidłowe pola |
Aktualizacja zaplanowanego skanu
Aktualizuje istniejący zaplanowany skan. Zmieniane są tylko przesłane pola.
PATCH /tenants/me/scheduled-scans/{scheduledScanId}Przykład: wstrzymanie harmonogramu
bash
curl -X PATCH https://api.aether365.io/tenants/me/scheduled-scans/sched_abc123 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'Przykład: zmiana godziny
bash
curl -X PATCH https://api.aether365.io/tenants/me/scheduled-scans/sched_abc123 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"hour": 8}'Usunięcie zaplanowanego skanu
Trwale usuwa zaplanowany skan i powiązany harmonogram.
DELETE /tenants/me/scheduled-scans/{scheduledScanId}WARNING
Automatycznego skanu planu (id: "plan") nie można usunąć przez API.
Przykładowe żądanie
bash
curl -X DELETE https://api.aether365.io/tenants/me/scheduled-scans/sched_abc123 \
-H "Authorization: Bearer <token>"Przykładowa odpowiedź
json
{
"success": true,
"data": null
}