Skip to content

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

Тіло запиту

ПолеТипОпис
itemIdsstring[]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Не застосовано в цьому викликі

Схвалення людиною збережено

Швидкого варіанту "застосувати все" немає. Ви обираєте план і точні пункти для застосування, тож автоматизований робочий процес однаково тримає людину (або свідоме рішення) в контурі.

Ця сторінка була корисною?