io.enterpriseai.resources.SocClient
Source : sdks/java/enterprise-ai-java/src/main/java/io/enterpriseai/resources/SocClient.java. Retour à l'index de la référence du SDK Java.
Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.
Classe SocClient
SOC et réponse aux incidents IA. Opérations de sécurité pour l'IA (AI-SDR) : détections, ordres de confinement typés, registre des coupe-circuits (Kill Switch Registry), accusés de confinement, rétablissement à quatre yeux, preuves scellées des incidents et rapprochement des transactions à effet de bord.
Constructeur SocClient
SocClient(Transport transport)
Crée le client sur le transport partagé ; EnterpriseAIClient le construit, on y accède par l'accesseur du même nom.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
transport | Transport | oui | Transport partagé par les sous-clients d'un même client. |
SocClient.addEvidence
JsonNode addEvidence(String incidentId, Object body)
Sceller une preuve sur un incident. Ajoute un enregistrement scellé à la chaîne de preuves de l'incident : l'empreinte du contenu et celle de l'enregistrement précédent, si bien qu'un enregistrement supprimé, réordonné ou modifié rompt la chaîne. Les enregistrements ne peuvent jamais être modifiés ni supprimés. Exige security_officer, soc_analyst ou tenant_admin. Écrit l'événement d'audit soc.evidence.seal et une entrée de traçabilité. Répond 201 avec seq, kind, content_sha256, prev_hash, hash, sealed_by et sealed_at.
Route : /v1/soc/incidents/{incident_id}/evidence (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
incidentId | String | oui | Identifiant (UUID) de l'incident. | |
body | Object | oui | Type et contenu de la preuve. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Sceller une preuve sur un incident ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.addEvidence
JsonNode addEvidence(String incidentId, Object body, RequestOptions options)
Sceller une preuve sur un incident. Ajoute un enregistrement scellé à la chaîne de preuves de l'incident : l'empreinte du contenu et celle de l'enregistrement précédent, si bien qu'un enregistrement supprimé, réordonné ou modifié rompt la chaîne. Les enregistrements ne peuvent jamais être modifiés ni supprimés. Exige security_officer, soc_analyst ou tenant_admin. Écrit l'événement d'audit soc.evidence.seal et une entrée de traçabilité. Répond 201 avec seq, kind, content_sha256, prev_hash, hash, sealed_by et sealed_at.
Route : /v1/soc/incidents/{incident_id}/evidence (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
incidentId | String | oui | Identifiant (UUID) de l'incident. | |
body | Object | oui | Type et contenu de la preuve. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Sceller une preuve sur un incident ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.approveOrder
JsonNode approveOrder(String orderId)
Approuver un ordre de confinement. Approuve un ordre en attente d'une seconde personne et l'applique (coupe-circuit écrit, adaptateur lancé). Exige security_officer ou tenant_admin (responsable SOC), qui n'est pas le demandeur (409 separation_of_duties). Un ordre qui n'est pas en attente répond 409 order_not_pending ; un ordre inconnu 404.
Route : /v1/soc/orders/{order_id}/approve (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
orderId | String | oui | Identifiant (UUID) de l'ordre de confinement. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Approuver un ordre de confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.approveOrder
JsonNode approveOrder(String orderId, RequestOptions options)
Approuver un ordre de confinement. Approuve un ordre en attente d'une seconde personne et l'applique (coupe-circuit écrit, adaptateur lancé). Exige security_officer ou tenant_admin (responsable SOC), qui n'est pas le demandeur (409 separation_of_duties). Un ordre qui n'est pas en attente répond 409 order_not_pending ; un ordre inconnu 404.
Route : /v1/soc/orders/{order_id}/approve (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
orderId | String | oui | Identifiant (UUID) de l'ordre de confinement. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Approuver un ordre de confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.approveRecovery
JsonNode approveRecovery(String recoveryId, Object body)
Approuver un rétablissement. Enregistre une approbation d'un rétablissement en attente ; deux responsables SOC distincts sont nécessaires, aucun n'étant le demandeur (409 separation_of_duties), chacun approuvant une seule fois (409 already_approved). Exige security_officer ou tenant_admin (responsable SOC). Une demande qui n'est pas en attente répond 409 recovery_not_pending.
Route : /v1/soc/recoveries/{recovery_id}/approve (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
recoveryId | String | oui | Identifiant (UUID) de la demande de rétablissement. | |
body | Object | oui | Note facultative de l'approbation. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Approuver un rétablissement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.approveRecovery
JsonNode approveRecovery(String recoveryId, Object body, RequestOptions options)
Approuver un rétablissement. Enregistre une approbation d'un rétablissement en attente ; deux responsables SOC distincts sont nécessaires, aucun n'étant le demandeur (409 separation_of_duties), chacun approuvant une seule fois (409 already_approved). Exige security_officer ou tenant_admin (responsable SOC). Une demande qui n'est pas en attente répond 409 recovery_not_pending.
Route : /v1/soc/recoveries/{recovery_id}/approve (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
recoveryId | String | oui | Identifiant (UUID) de la demande de rétablissement. | |
body | Object | oui | Note facultative de l'approbation. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Approuver un rétablissement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.catalog
JsonNode catalog()
Lire le catalogue SOC. Renvoie les listes autorisées : reactions, les types de cibles admis par réaction (targets), les types de détections avec leur gravité de base et leur playbook (detections), les limites de la garde de proportionnalité (response : confiance minimale, rayon d'impact automatique maximal, rayon d'impact exigeant une validation manuelle, réactions toujours soumises à validation) et les rôles SOC. Ouvert à tout membre du tenant.
Route : /v1/soc/catalog (GET).
Cet élément ne prend aucun paramètre.
Retour : JsonNode. Réponse JSON décodée de l'opération « Lire le catalogue SOC ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.createDetection
JsonNode createDetection(Object body)
Signaler une détection. Ingère une détection. Exige un identifiant auquel la portée soc:detections a été accordée explicitement (la portée globale * ne compte pas), ou security_officer, agent ou soc_analyst.
Route : /v1/soc/detections (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | La détection à ingérer. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Signaler une détection ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.createDetection
JsonNode createDetection(Object body, RequestOptions options)
Signaler une détection. Ingère une détection. Exige un identifiant auquel la portée soc:detections a été accordée explicitement (la portée globale * ne compte pas), ou security_officer, agent ou soc_analyst.
Route : /v1/soc/detections (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | La détection à ingérer. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Signaler une détection ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.createOrder
JsonNode createOrder(Object body)
Ordonner un confinement. Crée un ordre de confinement manuel. Exige security_officer, soc_analyst ou tenant_admin.
Route : /v1/soc/orders (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Réaction, cible, incident, raison, paramètres et limites de l'ordre. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Ordonner un confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.createOrder
JsonNode createOrder(Object body, RequestOptions options)
Ordonner un confinement. Crée un ordre de confinement manuel. Exige security_officer, soc_analyst ou tenant_admin.
Route : /v1/soc/orders (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Réaction, cible, incident, raison, paramètres et limites de l'ordre. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Ordonner un confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.createRecovery
JsonNode createRecovery(Object body)
Demander le rétablissement d'un coupe-circuit. Ouvre une demande de rétablissement à quatre yeux pour un coupe-circuit actif. Exige security_officer, soc_analyst ou tenant_admin. Un coupe-circuit inconnu répond 404, un coupe-circuit qui n'est plus suspendu 409 kill_switch_not_active, un coupe-circuit avec une demande ouverte 409 recovery_already_open. Répond 201 avec la demande.
Route : /v1/soc/recoveries (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Coupe-circuit et raison. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Demander le rétablissement d'un coupe-circuit ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.createRecovery
JsonNode createRecovery(Object body, RequestOptions options)
Demander le rétablissement d'un coupe-circuit. Ouvre une demande de rétablissement à quatre yeux pour un coupe-circuit actif. Exige security_officer, soc_analyst ou tenant_admin. Un coupe-circuit inconnu répond 404, un coupe-circuit qui n'est plus suspendu 409 kill_switch_not_active, un coupe-circuit avec une demande ouverte 409 recovery_already_open. Répond 201 avec la demande.
Route : /v1/soc/recoveries (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Coupe-circuit et raison. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Demander le rétablissement d'un coupe-circuit ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.custody
JsonNode custody(String incidentId)
Lire la chaîne de traçabilité. Renvoie le journal de traçabilité des preuves de l'incident (qui a scellé, lu ou exporté quoi, et quand) avec la vérification des deux chaînes de hachage. Exige security_officer, tenant_admin, auditor ou soc_analyst. La lecture elle-même est ajoutée au journal de traçabilité. Répond 404 not_found pour un incident inconnu.
Route : /v1/soc/incidents/{incident_id}/custody (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
incidentId | String | oui | Identifiant (UUID) de l'incident. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lire la chaîne de traçabilité ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.exportEvidence
JsonNode exportEvidence(String incidentId)
Exporter les preuves d'un incident. Renvoie l'incident, ses preuves, les deux chaînes vérifiées et le journal de traçabilité. Le paquet est analysé à la recherche d'identifiants secrets avant que le moindre octet ne sorte : si l'un est trouvé, l'export est refusé avec 422 secret_detected, le refus est inscrit dans le journal de traçabilité et une détection secret_leak est levée. Exige security_officer, tenant_admin, auditor ou soc_analyst.
Route : /v1/soc/incidents/{incident_id}/evidence/export (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
incidentId | String | oui | Identifiant (UUID) de l'incident. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Exporter les preuves d'un incident ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.exportEvidence
JsonNode exportEvidence(String incidentId, RequestOptions options)
Exporter les preuves d'un incident. Renvoie l'incident, ses preuves, les deux chaînes vérifiées et le journal de traçabilité. Le paquet est analysé à la recherche d'identifiants secrets avant que le moindre octet ne sorte : si l'un est trouvé, l'export est refusé avec 422 secret_detected, le refus est inscrit dans le journal de traçabilité et une détection secret_leak est levée. Exige security_officer, tenant_admin, auditor ou soc_analyst.
Route : /v1/soc/incidents/{incident_id}/evidence/export (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
incidentId | String | oui | Identifiant (UUID) de l'incident. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Exporter les preuves d'un incident ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.getOrder
JsonNode getOrder(String orderId)
Lire un ordre de confinement. Renvoie l'ordre avec son dernier coupe-circuit et les accusés reçus pour lui. Exige security_officer, tenant_admin, auditor ou soc_analyst. Répond 404 not_found.
Route : /v1/soc/orders/{order_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
orderId | String | oui | Identifiant (UUID) de l'ordre de confinement. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un ordre de confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listDetections
JsonNode listDetections()
Lister les détections. Liste les détections du tenant, les plus récentes d'abord, éventuellement pour un incident ou un type. Exige security_officer, tenant_admin, auditor ou soc_analyst. La lecture est auditée.
Route : /v1/soc/detections (GET).
Cet élément ne prend aucun paramètre.
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les détections ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listDetections
JsonNode listDetections(Map<String, ?> query)
Lister les détections. Liste les détections du tenant, les plus récentes d'abord, éventuellement pour un incident ou un type. Exige security_officer, tenant_admin, auditor ou soc_analyst. La lecture est auditée.
Route : /v1/soc/detections (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Map<String, ?> | oui | Paramètres de la chaîne de requête de la route. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les détections ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listEvidence
JsonNode listEvidence(String incidentId)
Lire les preuves d'un incident. Renvoie les preuves scellées de l'incident (détections, ordres, accusés, notes), la vérification de leur chaîne et custody_seq, l'entrée de traçabilité créée par cette lecture. Exige security_officer, tenant_admin, auditor ou soc_analyst. Répond 404 not_found.
Route : /v1/soc/incidents/{incident_id}/evidence (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
incidentId | String | oui | Identifiant (UUID) de l'incident. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lire les preuves d'un incident ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listKillSwitches
JsonNode listKillSwitches()
Lister les coupe-circuits. Liste les coupe-circuits du tenant, les plus récents d'abord, 500 au plus : par défaut seulement ceux dont l'état voulu est SUSPENDED. Chacun donne réaction, cible, états voulu et observé, dernier accusé et levée. Exige security_officer, tenant_admin, auditor ou soc_analyst. La lecture est auditée.
Route : /v1/soc/kill-switches (GET).
Cet élément ne prend aucun paramètre.
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les coupe-circuits ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listKillSwitches
JsonNode listKillSwitches(Map<String, ?> query)
Lister les coupe-circuits. Liste les coupe-circuits du tenant, les plus récents d'abord, 500 au plus : par défaut seulement ceux dont l'état voulu est SUSPENDED. Chacun donne réaction, cible, états voulu et observé, dernier accusé et levée. Exige security_officer, tenant_admin, auditor ou soc_analyst. La lecture est auditée.
Route : /v1/soc/kill-switches (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Map<String, ?> | oui | Paramètres de la chaîne de requête de la route. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les coupe-circuits ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listOrders
JsonNode listOrders()
Lister les ordres de confinement. Liste les ordres de confinement du tenant, les plus récents d'abord, éventuellement par statut (pending_approval, applied, rejected...) ou par incident. Chacun donne réaction, cible, rayon d'impact, confiance, gravité, mode (manual ou automatique), statut et décision du moteur de politique de réponse. Exige security_officer, tenant_admin, auditor ou soc_analyst.
Route : /v1/soc/orders (GET).
Cet élément ne prend aucun paramètre.
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les ordres de confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listOrders
JsonNode listOrders(Map<String, ?> query)
Lister les ordres de confinement. Liste les ordres de confinement du tenant, les plus récents d'abord, éventuellement par statut (pending_approval, applied, rejected...) ou par incident. Chacun donne réaction, cible, rayon d'impact, confiance, gravité, mode (manual ou automatique), statut et décision du moteur de politique de réponse. Exige security_officer, tenant_admin, auditor ou soc_analyst.
Route : /v1/soc/orders (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Map<String, ?> | oui | Paramètres de la chaîne de requête de la route. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les ordres de confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listRecoveries
JsonNode listRecoveries()
Lister les demandes de rétablissement. Liste les demandes de rétablissement du tenant, les plus récentes d'abord, 500 au plus, éventuellement par statut, avec leurs approbations. Exige security_officer, tenant_admin, auditor ou soc_analyst.
Route : /v1/soc/recoveries (GET).
Cet élément ne prend aucun paramètre.
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les demandes de rétablissement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listRecoveries
JsonNode listRecoveries(Map<String, ?> query)
Lister les demandes de rétablissement. Liste les demandes de rétablissement du tenant, les plus récentes d'abord, 500 au plus, éventuellement par statut, avec leurs approbations. Exige security_officer, tenant_admin, auditor ou soc_analyst.
Route : /v1/soc/recoveries (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Map<String, ?> | oui | Paramètres de la chaîne de requête de la route. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les demandes de rétablissement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listTransactions
JsonNode listTransactions()
Lister les transactions à effet de bord. Liste les appels d'outils et de connecteurs à effet de bord du tenant, les plus récents d'abord, 500 au plus : clé d'idempotence, opération, statut (in_flight, committed, interrupted, reconciled, compensating, compensated...) et rapprochement. Exige security_officer, tenant_admin, auditor ou soc_analyst.
Route : /v1/soc/transactions (GET).
Cet élément ne prend aucun paramètre.
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les transactions à effet de bord ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.listTransactions
JsonNode listTransactions(Map<String, ?> query)
Lister les transactions à effet de bord. Liste les appels d'outils et de connecteurs à effet de bord du tenant, les plus récents d'abord, 500 au plus : clé d'idempotence, opération, statut (in_flight, committed, interrupted, reconciled, compensating, compensated...) et rapprochement. Exige security_officer, tenant_admin, auditor ou soc_analyst.
Route : /v1/soc/transactions (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Map<String, ?> | oui | Paramètres de la chaîne de requête de la route. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lister les transactions à effet de bord ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.reauthorizeRecovery
JsonNode reauthorizeRecovery(String recoveryId)
Réautoriser et rétablir. Dernière étape d'un rétablissement, par l'un des approbateurs (403 reauthorization_by_approver sinon) une fois les deux approbations obtenues (409 recovery_not_approved). Le coupe-circuit est levé, la cible est réévaluée par la politique, qui doit l'autoriser (403 reauthorization_denied, tout est annulé), et seulement alors le plan propriétaire est rétabli, par exemple un agent repris. Une clé d'API révoquée le reste : émettez-en une nouvelle. Exige security_officer ou tenant_admin (responsable SOC).
Route : /v1/soc/recoveries/{recovery_id}/reauthorize (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
recoveryId | String | oui | Identifiant (UUID) de la demande de rétablissement. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Réautoriser et rétablir ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.reauthorizeRecovery
JsonNode reauthorizeRecovery(String recoveryId, RequestOptions options)
Réautoriser et rétablir. Dernière étape d'un rétablissement, par l'un des approbateurs (403 reauthorization_by_approver sinon) une fois les deux approbations obtenues (409 recovery_not_approved). Le coupe-circuit est levé, la cible est réévaluée par la politique, qui doit l'autoriser (403 reauthorization_denied, tout est annulé), et seulement alors le plan propriétaire est rétabli, par exemple un agent repris. Une clé d'API révoquée le reste : émettez-en une nouvelle. Exige security_officer ou tenant_admin (responsable SOC).
Route : /v1/soc/recoveries/{recovery_id}/reauthorize (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
recoveryId | String | oui | Identifiant (UUID) de la demande de rétablissement. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Réautoriser et rétablir ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.receipt
JsonNode receipt(Object body)
Recevoir un accusé de confinement du cluster. Accusé envoyé depuis le cluster (politique Cilium observée, charge de travail ramenée à zéro) pour une réaction de cluster : JSON {kill_switch_id, verified, adapter, evidence}. Signé comme les webhooks de la plateforme : X-EAI-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>." + corps)>, une fenêtre anti-rejeu de 5 minutes, X-EAI-Delivery pour le dédoublonnage et X-EAI-Tenant (identifiant court du tenant). Sans le secret de webhook SOC configuré, toute livraison est refusée. Chaque livraison, acceptée ou non, est enregistrée et auditée. Un accusé vérifié fait passer l'état observé à SUSPENDED_VERIFIED ; un accusé pour une réaction qui n'en attend pas répond 409 receipt_not_expected. Aucun identifiant d'utilisateur n'est nécessaire : la signature authentifie l'émetteur. Répond 202 avec le coupe-circuit.
Route : /v1/soc/receipts (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Corps JSON brut et signé de l'accusé (application/octet-stream), vérifié octet par octet. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Recevoir un accusé de confinement du cluster ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.receipt
JsonNode receipt(Object body, RequestOptions options)
Recevoir un accusé de confinement du cluster. Accusé envoyé depuis le cluster (politique Cilium observée, charge de travail ramenée à zéro) pour une réaction de cluster : JSON {kill_switch_id, verified, adapter, evidence}. Signé comme les webhooks de la plateforme : X-EAI-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>." + corps)>, une fenêtre anti-rejeu de 5 minutes, X-EAI-Delivery pour le dédoublonnage et X-EAI-Tenant (identifiant court du tenant). Sans le secret de webhook SOC configuré, toute livraison est refusée. Chaque livraison, acceptée ou non, est enregistrée et auditée. Un accusé vérifié fait passer l'état observé à SUSPENDED_VERIFIED ; un accusé pour une réaction qui n'en attend pas répond 409 receipt_not_expected. Aucun identifiant d'utilisateur n'est nécessaire : la signature authentifie l'émetteur. Répond 202 avec le coupe-circuit.
Route : /v1/soc/receipts (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Corps JSON brut et signé de l'accusé (application/octet-stream), vérifié octet par octet. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Recevoir un accusé de confinement du cluster ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.receiptSigned
JsonNode receiptSigned(byte[] payload, String secret, String tenant)
Recevoir un accusé de confinement du cluster. Accusé envoyé depuis le cluster (politique Cilium observée, charge de travail ramenée à zéro) pour une réaction de cluster : JSON {kill_switch_id, verified, adapter, evidence}. Signé comme les webhooks de la plateforme : X-EAI-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>." + corps)>, une fenêtre anti-rejeu de 5 minutes, X-EAI-Delivery pour le dédoublonnage et X-EAI-Tenant (identifiant court du tenant). Sans le secret de webhook SOC configuré, toute livraison est refusée. Chaque livraison, acceptée ou non, est enregistrée et auditée. Un accusé vérifié fait passer l'état observé à SUSPENDED_VERIFIED ; un accusé pour une réaction qui n'en attend pas répond 409 receipt_not_expected. Aucun identifiant d'utilisateur n'est nécessaire : la signature authentifie l'émetteur. Répond 202 avec le coupe-circuit.
Route : /v1/soc/receipts (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
payload | byte[] | oui | Corps JSON brut et signé de l'accusé (application/octet-stream), vérifié octet par octet. | |
secret | String | oui | Secret partagé de la signature HMAC-SHA256 placée dans X-EAI-Signature. | |
tenant | String | oui | Slug du tenant envoyé dans X-EAI-Tenant. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Recevoir un accusé de confinement du cluster ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.reconcileTransaction
JsonNode reconcileTransaction(String transactionId, Object body)
Rapprocher une transaction. Enregistre le résultat réel d'un appel à effet de bord dont l'issue est inconnue (interrompu par un coupe-circuit, une panne ou un délai dépassé) : committed (il a eu lieu chez le fournisseur) ou not_executed. Une nouvelle tentative avec la même clé d'idempotence renvoie alors le résultat enregistré au lieu de rappeler le fournisseur. Exige security_officer ou tenant_admin (responsable SOC). Un résultat inconnu répond 400, une transaction non rapprochable 409 transaction_not_reconcilable, une transaction inconnue 404.
Route : /v1/soc/transactions/{transaction_id}/reconcile (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
transactionId | String | oui | Identifiant de la transaction à effet de bord. | |
body | Object | oui | Résultat, référence du fournisseur et note. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Rapprocher une transaction ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.reconcileTransaction
JsonNode reconcileTransaction(String transactionId, Object body, RequestOptions options)
Rapprocher une transaction. Enregistre le résultat réel d'un appel à effet de bord dont l'issue est inconnue (interrompu par un coupe-circuit, une panne ou un délai dépassé) : committed (il a eu lieu chez le fournisseur) ou not_executed. Une nouvelle tentative avec la même clé d'idempotence renvoie alors le résultat enregistré au lieu de rappeler le fournisseur. Exige security_officer ou tenant_admin (responsable SOC). Un résultat inconnu répond 400, une transaction non rapprochable 409 transaction_not_reconcilable, une transaction inconnue 404.
Route : /v1/soc/transactions/{transaction_id}/reconcile (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
transactionId | String | oui | Identifiant de la transaction à effet de bord. | |
body | Object | oui | Résultat, référence du fournisseur et note. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Rapprocher une transaction ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.rejectOrder
JsonNode rejectOrder(String orderId, Object body)
Refuser un ordre de confinement. Refuse un ordre en attente de validation, avec une raison facultative. Exige security_officer ou tenant_admin (responsable SOC). Un ordre qui n'est pas en attente répond 409 order_not_pending ; un ordre inconnu 404.
Route : /v1/soc/orders/{order_id}/reject (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
orderId | String | oui | Identifiant (UUID) de l'ordre de confinement. | |
body | Object | oui | Raison facultative de la décision. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Refuser un ordre de confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.rejectOrder
JsonNode rejectOrder(String orderId, Object body, RequestOptions options)
Refuser un ordre de confinement. Refuse un ordre en attente de validation, avec une raison facultative. Exige security_officer ou tenant_admin (responsable SOC). Un ordre qui n'est pas en attente répond 409 order_not_pending ; un ordre inconnu 404.
Route : /v1/soc/orders/{order_id}/reject (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
orderId | String | oui | Identifiant (UUID) de l'ordre de confinement. | |
body | Object | oui | Raison facultative de la décision. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Refuser un ordre de confinement ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.verifyKillSwitch
JsonNode verifyKillSwitch(String switchId)
Vérifier un coupe-circuit. Lance la sonde du vérificateur de confinement pour le coupe-circuit : en cas de succès, l'état observé passe à SUSPENDED_VERIFIED. Les réactions de cluster (ISOLATE_NETWORK, TERMINATE_WORKLOAD) ne sont vérifiées que par un accusé signé depuis le cluster. Exige security_officer, soc_analyst ou tenant_admin. Écrit l'événement d'audit soc.kill_switch.verify. Répond 404 not_found.
Route : /v1/soc/kill-switches/{switch_id}/verify (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
switchId | String | oui | Identifiant (UUID) du coupe-circuit. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Vérifier un coupe-circuit ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.verifyKillSwitch
JsonNode verifyKillSwitch(String switchId, RequestOptions options)
Vérifier un coupe-circuit. Lance la sonde du vérificateur de confinement pour le coupe-circuit : en cas de succès, l'état observé passe à SUSPENDED_VERIFIED. Les réactions de cluster (ISOLATE_NETWORK, TERMINATE_WORKLOAD) ne sont vérifiées que par un accusé signé depuis le cluster. Exige security_officer, soc_analyst ou tenant_admin. Écrit l'événement d'audit soc.kill_switch.verify. Répond 404 not_found.
Route : /v1/soc/kill-switches/{switch_id}/verify (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
switchId | String | oui | Identifiant (UUID) du coupe-circuit. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Vérifier un coupe-circuit ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.webhook
JsonNode webhook(String source, Object body)
Recevoir des constats de sécurité externes. Webhook des détecteurs externes : Falco, Tetragon ou OpenSearch Security Analytics. Le corps est un événement ou une liste (200 au plus traités), normalisés en détections (priorités Falco et étiquettes eai_* associées à des types et des gravités) et ingérés comme POST /v1/soc/detections. Signé comme les webhooks de la plateforme : X-EAI-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>." + corps)>, une fenêtre anti-rejeu de 5 minutes, X-EAI-Delivery pour le dédoublonnage et X-EAI-Tenant (identifiant court du tenant). Sans le secret de webhook SOC configuré, toute livraison est refusée. Chaque livraison, acceptée ou non, est enregistrée et auditée. Une source inconnue répond 404. Répond 202 avec received et les détections.
Route : /v1/soc/webhooks/{source} (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
source | String | oui | Détecteur : falco, tetragon ou opensearch. | |
body | Object | oui | Corps JSON brut et signé (application/octet-stream) : un événement ou une liste d'événements du détecteur. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Recevoir des constats de sécurité externes ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.webhook
JsonNode webhook(String source, Object body, RequestOptions options)
Recevoir des constats de sécurité externes. Webhook des détecteurs externes : Falco, Tetragon ou OpenSearch Security Analytics. Le corps est un événement ou une liste (200 au plus traités), normalisés en détections (priorités Falco et étiquettes eai_* associées à des types et des gravités) et ingérés comme POST /v1/soc/detections. Signé comme les webhooks de la plateforme : X-EAI-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>." + corps)>, une fenêtre anti-rejeu de 5 minutes, X-EAI-Delivery pour le dédoublonnage et X-EAI-Tenant (identifiant court du tenant). Sans le secret de webhook SOC configuré, toute livraison est refusée. Chaque livraison, acceptée ou non, est enregistrée et auditée. Une source inconnue répond 404. Répond 202 avec received et les détections.
Route : /v1/soc/webhooks/{source} (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
source | String | oui | Détecteur : falco, tetragon ou opensearch. | |
body | Object | oui | Corps JSON brut et signé (application/octet-stream) : un événement ou une liste d'événements du détecteur. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Recevoir des constats de sécurité externes ».
Erreurs levées : les erreurs typées du transport (Erreurs).
SocClient.webhookSigned
JsonNode webhookSigned(String source, byte[] payload, String secret, String tenant)
Recevoir des constats de sécurité externes. Webhook des détecteurs externes : Falco, Tetragon ou OpenSearch Security Analytics. Le corps est un événement ou une liste (200 au plus traités), normalisés en détections (priorités Falco et étiquettes eai_* associées à des types et des gravités) et ingérés comme POST /v1/soc/detections. Signé comme les webhooks de la plateforme : X-EAI-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>." + corps)>, une fenêtre anti-rejeu de 5 minutes, X-EAI-Delivery pour le dédoublonnage et X-EAI-Tenant (identifiant court du tenant). Sans le secret de webhook SOC configuré, toute livraison est refusée. Chaque livraison, acceptée ou non, est enregistrée et auditée. Une source inconnue répond 404. Répond 202 avec received et les détections.
Route : /v1/soc/webhooks/{source} (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
source | String | oui | Détecteur : falco, tetragon ou opensearch. | |
payload | byte[] | oui | Corps JSON brut et signé (application/octet-stream) : un événement ou une liste d'événements du détecteur. | |
secret | String | oui | Secret partagé de la signature HMAC-SHA256 placée dans X-EAI-Signature. | |
tenant | String | oui | Slug du tenant envoyé dans X-EAI-Tenant. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Recevoir des constats de sécurité externes ».
Erreurs levées : les erreurs typées du transport (Erreurs).