AI Pilot API
Maintenu par : Aether365 Team Public : Développeurs Périmètre : Endpoints de remédiation AI Pilot - générer, examiner et appliquer des correctifs automatisés
AI Pilot transforme les constats en échec de vos analyses Compliance et Exposure en correctifs automatisés. Via l'API, vous pouvez générer un plan de remédiation pour une analyse, examiner les changements proposés et appliquer ceux que vous approuvez. Appliquer un correctif est toujours un appel explicite de votre part : rien n'est modifié tant que vous ne le demandez pas.
Prérequis
Les endpoints AI Pilot nécessitent l'autorisation AI Pilot (Pro ou Enterprise) et une connexion Microsoft 365 liée en mode AI Pilot (write-consent). Une connexion en lecture seule peut générer et lire des plans, mais ne peut pas appliquer de correctifs. Les appels renvoient 403 AUTH_INSUFFICIENT_SCOPE lorsque l'autorisation est absente.
Lister les checks remédiables automatiquement
Renvoie les identifiants de check qu'AI Pilot sait corriger automatiquement. Utilisez-le pour décider, constat par constat, si un correctif automatisé est disponible.
GET /tenants/me/remediation/capabilitiesExemple de réponse
json
{
"success": true,
"data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}Générer un plan de remédiation
Construit un plan de remédiation pour une analyse terminée : un élément par constat en échec corrigeable, chacun avec la valeur actuelle, la valeur sécurisée proposée et le paramètre ciblé. La lecture de la valeur actuelle utilise la portée en lecture de la connexion AI Pilot ; aucune modification n'est écrite.
POST /tenants/me/scans/{scanId}/remediation-planExemple de requête
bash
curl -X POST https://api.aether365.io/tenants/me/scans/scan_abc123/remediation-plan \
-H "Authorization: Bearer ak_live_..."Exemple de réponse
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
}
]
}
}Lister les plans de remédiation
Renvoie les plans de remédiation du tenant, du plus récent au plus ancien, chacun avec ses éléments et un statut consolidé.
GET /tenants/me/remediation-plansValeurs de statut du plan
| Statut | Signification |
|---|---|
pending | Généré, rien n'a encore été appliqué |
completed | Tous les éléments appliqués et vérifiés |
partially_applied | Certains éléments appliqués, d'autres en échec ou encore en attente |
failed | Aucun élément n'a pu être appliqué |
Récupérer un plan de remédiation
GET /tenants/me/remediation-plans/{planId}Renvoie un seul plan (avec ses éléments) limité à votre tenant. Un plan appartenant à un autre tenant renvoie 404 NOT_FOUND.
Appliquer un plan de remédiation
Applique les éléments sélectionnés via la connexion AI Pilot : chaque paramètre est écrit via Microsoft Graph puis relu pour confirmer que le changement a bien pris effet. Les éléments que vous ne listez pas restent inchangés, et un élément déjà vérifié n'est jamais réappliqué.
POST /tenants/me/remediation-plans/{planId}/applyCorps de la requête
| Champ | Type | Description |
|---|---|---|
itemIds | string[] | Identifiants des éléments du plan à appliquer |
Exemple de requête
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"] }'Exemple de réponse
Le plan complet est renvoyé, chaque élément avec son status mis à jour et, en cas d'échec, un error expliquant la raison.
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"
}
]
}
}Valeurs de statut des éléments
| Statut | Signification |
|---|---|
verified | Appliqué et confirmé par une relecture |
applied | Appliqué ; Microsoft n'a pas encore confirmé la propagation (revérifié plus tard) |
failed | N'a pas pu être appliqué - voir error (par exemple, write-consent absent) |
pending | Non appliqué lors de cet appel |
L'approbation humaine est préservée
Il n'existe aucun raccourci de type "tout appliquer". Vous choisissez le plan et les éléments exacts à appliquer, de sorte qu'un flux de travail automatisé garde toujours un humain (ou une décision délibérée) dans la boucle.