AI Pilot API
Супровід: Aether365 Team Аудиторія: Розробники Сфера: Endpoint'и виправлення AI Pilot - генерування, перегляд і застосування автоматичних виправлень
AI Pilot перетворює невдалі результати ваших сканувань Compliance на автоматичні виправлення. Через API ви можете згенерувати план виправлення для сканування, переглянути запропоновані зміни та застосувати ті, які схвалюєте. Застосування виправлення завжди є явним викликом, який робите ви: нічого не змінюється, доки ви про це не попросите.
Вимоги
Endpoint'и AI Pilot потребують права AI Pilot (платний план) і підключення Microsoft 365, прив'язаного в режимі AI Pilot (write-consent). Підключення лише для читання може генерувати та читати плани, але не може застосовувати виправлення. За відсутності цього права виклики повертають 403 AUTH_INSUFFICIENT_SCOPE.
Список перевірок, що підлягають автовиправленню
Повертає ID перевірок, які AI Pilot вміє виправляти автоматично. Використовуйте його, щоб для кожного результату вирішити, чи доступне автоматичне виправлення.
GET /tenants/me/remediation/capabilitiesПриклад відповіді
json
{
"success": true,
"data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}Генерування плану виправлення
Будує план виправлення для завершеного сканування: по одному пункту на кожен виправний невдалий результат, кожен з поточним значенням, запропонованим безпечним значенням і налаштуванням, на яке він спрямований. Зчитування поточного значення використовує область читання підключення AI Pilot; жодних змін не записується.
POST /tenants/me/scans/{scanId}/remediation-planПриклад запиту
bash
curl -X POST https://api.aether365.io/tenants/me/scans/scan_abc123/remediation-plan \
-H "Authorization: Bearer ak_live_..."Приклад відповіді
json
{
"success": true,
"data": {
"id": "plan_abc123",
"scanId": "scan_abc123",
"msTenantId": "00000000-0000-0000-0000-000000000000",
"status": "pending",
"createdAt": "2026-06-17T09:00:00Z",
"items": [
{
"id": "item_1",
"testId": "AE.1068",
"coveredTestIds": ["AE.1068", "CIS.M365.5.1.2.3"],
"actionKey": "require_mfa_admins",
"title": "Require MFA for administrator roles",
"settingKey": "conditionalAccess.requireMfaAdmins",
"currentValue": false,
"proposedValue": true,
"status": "pending",
"appliedBy": null,
"appliedAt": null,
"error": null
}
]
}
}Список планів виправлення
Повертає плани виправлення tenant'а, найновіші першими, кожен зі своїми пунктами та зведеним статусом.
GET /tenants/me/remediation-plansЗначення статусу плану
| Статус | Значення |
|---|---|
pending | Згенеровано, нічого ще не застосовано |
completed | Усі пункти застосовано та перевірено |
partially_applied | Деякі пункти застосовано, деякі невдалі або ще в очікуванні |
failed | Жоден пункт не вдалося застосувати |
Отримання плану виправлення
GET /tenants/me/remediation-plans/{planId}Повертає один план (з його пунктами) у межах вашого tenant'а. План, що належить іншому tenant'у, повертає 404 NOT_FOUND.
Застосування плану виправлення
Застосовує вибрані пункти через підключення AI Pilot: кожне налаштування записується через Microsoft Graph, а потім перечитується для підтвердження, що зміна набула чинності. Пункти, які ви не вказали, лишаються незмінними, а вже перевірений пункт ніколи не застосовується повторно.
POST /tenants/me/remediation-plans/{planId}/applyТіло запиту
| Поле | Тип | Опис |
|---|---|---|
itemIds | string[] | ID пунктів плану для застосування |
Приклад запиту
bash
curl -X POST https://api.aether365.io/tenants/me/remediation-plans/plan_abc123/apply \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{ "itemIds": ["item_1", "item_2"] }'Приклад відповіді
Повертається повний план з оновленим status кожного пункту, а в разі невдачі - error з поясненням причини.
json
{
"success": true,
"data": {
"id": "plan_abc123",
"status": "partially_applied",
"items": [
{
"id": "item_1",
"title": "Require MFA for administrator roles",
"status": "verified",
"appliedAt": "2026-06-17T09:05:00Z",
"error": null
},
{
"id": "item_2",
"title": "Disable legacy authentication",
"status": "failed",
"error": "Write consent is missing or has expired"
}
]
}
}Значення статусу пункту
| Статус | Значення |
|---|---|
verified | Застосовано та підтверджено повторним зчитуванням |
applied | Застосовано; Microsoft ще не підтвердила поширення (перевіриться згодом) |
failed | Не вдалося застосувати - див. error (наприклад, відсутня write consent) |
pending | Не застосовано в цьому викликі |
Схвалення людиною збережено
Швидкого варіанту "застосувати все" немає. Ви обираєте план і точні пункти для застосування, тож автоматизований робочий процес однаково тримає людину (або свідоме рішення) в контурі.