enterprise_ai.approvals
Source : sdks/python/src/enterprise_ai/approvals/__init__.py. Retour à l'index de la référence du SDK Python.
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 ApprovalsClient
Validations. Humain dans la boucle : demandes de validation des actions sensibles, avec séparation des tâches, quorum et expiration. Les exécutions d'agents qui atteignent un outil soumis à validation, les promotions de modèles, d'agents, d'outils, de compétences, de serveurs MCP ou de plugins, les accès d'urgence et les mandats créent tous leurs demandes de validation ici.
Resource
ApprovalsClient.cancel
cancel(approval_id: str, reason: str) -> Any
Annuler une demande de validation. Retire une demande en attente. Autorisé à son demandeur, à un tenant_admin ou à un security_officer (403 forbidden sinon, le refus étant audité). La demande finit cancelled et son sujet réagit comme à un refus : une exécution en attente échoue (approval_cancelled), un accès d'urgence ou un mandat en attente est refusé. Une demande qui n'est plus en attente répond 409 approval_closed. Écrit l'événement d'audit approval.cancel avec la raison. La réponse porte run_state quand une exécution est rattachée.
Route : /v1/approvals/{approval_id}/cancel (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
approval_id | str | oui | Identifiant (UUID) de la demande de validation. | |
reason | str | oui | Raison du retrait, 3 à 2000 caractères. Inscrite dans le journal d'audit. |
Retour : Any. Réponse JSON décodée de l'opération « Annuler une demande de validation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsClient.check
check(approval_id: str) -> Any
Lire une demande de validation. Renvoie une demande de validation avec ses décisions (valideur, décision, commentaire, date) et approvals_count. Une demande en attente dont l'expiration est passée est marquée expired et son exécution en attente échoue. Ouvert à tout membre du tenant. Répond 404 approval_not_found.
Route : /v1/approvals/{approval_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
approval_id | str | oui | Identifiant (UUID) de la demande de validation. |
Retour : Any. Réponse JSON décodée de l'opération « Lire une demande de validation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsClient.create
create(action: str, resource_type: str, resource_id: str | None = None, reason: str | None = None, run_id: str | None = None, idempotency_key: str | None = None, **extra: Any) -> Any
Demander une validation. Crée une demande de validation en attente. Exige tenant_admin, developer, agent, security_officer ou finops.
Route : /v1/approvals (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
action | str | oui | Action à valider, 1 à 200 caractères, par exemple tool.call, promotion, break_glass ou mandate. | |
resource_type | str | oui | Type de la ressource concernée, 1 à 100 caractères, par exemple tool ou model. | |
resource_id | str | None | None | non | Identifiant de la ressource concernée, facultatif. |
reason | str | None | None | non | Raison de la demande, montrée aux valideurs (vide par défaut). |
run_id | str | None | None | non | Exécution d'agent qui attend la décision, facultative. Elle reprend sur approbation et échoue sur refus, expiration ou annulation. |
idempotency_key | str | None | None | non | En-tête Idempotency-Key : une reprise avec la même clé rejoue la première réponse. |
**extra | Any | non | Champs supplémentaires fusionnés dans le corps de la requête. |
Retour : Any. Réponse JSON décodée de l'opération « Demander une validation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsClient.decide
decide(approval_id: str, decision: str, comment: str | None = None) -> Any
Approuver ou refuser une demande. Enregistre la décision de l'appelant sur une demande en attente.
Route : /v1/approvals/{approval_id}/decide (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
approval_id | str | oui | Identifiant (UUID) de la demande de validation. | |
decision | str | oui | approve ou reject. | |
comment | str | None | None | non | Commentaire conservé avec la décision (vide par défaut). |
Retour : Any. Réponse JSON décodée de l'opération « Approuver ou refuser une demande ».
Erreurs levées : ValueError, les erreurs typées du transport (Erreurs).
ApprovalsClient.get
get(approval_id: str) -> Any
Lire une demande de validation. Renvoie une demande de validation avec ses décisions (valideur, décision, commentaire, date) et approvals_count. Une demande en attente dont l'expiration est passée est marquée expired et son exécution en attente échoue. Ouvert à tout membre du tenant. Répond 404 approval_not_found.
Route : /v1/approvals/{approval_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
approval_id | str | oui | Identifiant (UUID) de la demande de validation. |
Retour : Any. Réponse JSON décodée de l'opération « Lire une demande de validation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsClient.list
list(status: str | None = None, **page: Any) -> Any
Lister les demandes de validation. Liste les demandes de validation du tenant, les plus récentes d'abord, paginées, éventuellement filtrées par statut. Les demandes en attente dont l'expiration est passée sont d'abord marquées expired. Chaque élément porte ses decisions et approvals_count. Ouvert à tout membre du tenant.
Route : /v1/approvals (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
status | str | None | None | non | Uniquement les demandes dans ce statut : pending, approved, rejected, expired ou cancelled. |
**page | Any | non | Options de pagination transmises à la liste : limit (nombre maximal d'éléments par page) et cursor (le next_cursor de la page précédente). Itérer sur la page renvoyée suit tous les curseurs. |
Retour : Any. Réponse JSON décodée de l'opération « Lister les demandes de validation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ApprovalsClient.wait
wait(approval_id: str, timeout: float = 3600.0, interval: float = 2.0, sleep: Any = time.sleep) -> dict[str, Any]
Interroge le serveur jusqu'à ce que l'approbation atteigne un état final (client synchrone uniquement).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
approval_id | str | oui | Identifiant de l'approbation à surveiller. | |
timeout | float | 3600.0 | non | Attente maximale en secondes (3600 par défaut) ; au-delà, approval_timeout est levée. |
interval | float | 2.0 | non | Secondes entre deux lectures de l'approbation (2 par défaut). |
sleep | Any | time.sleep | non | Fonction appelée avec interval entre deux lectures (time.sleep par défaut) ; à remplacer dans les tests. |
Retour : dict[str, Any]. L'approbation telle que lue par get, une fois son statut à approved, rejected, expired ou cancelled.
Erreurs levées : EaiError, TypeError.
ApprovalsClient.wait_async
async wait_async(approval_id: str, timeout: float = 3600.0, interval: float = 2.0) -> dict[str, Any]
Interroge le serveur de façon asynchrone jusqu'à ce que l'approbation atteigne un état final.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
approval_id | str | oui | Identifiant de l'approbation à surveiller. | |
timeout | float | 3600.0 | non | Attente maximale en secondes (3600 par défaut) ; au-delà, approval_timeout est levée. |
interval | float | 2.0 | non | Secondes entre deux lectures de l'approbation (2 par défaut). |
Retour : dict[str, Any]. L'approbation une fois son statut à approved, rejected, expired ou cancelled.
Erreurs levées : EaiError.
Fonctions
confirm_cancelled
confirm_cancelled(answer: Any) -> Any
Renvoie une approbation annulée uniquement si le serveur indique le statut cancelled.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
answer | Any | oui | Réponse de POST /v1/approvals/{id}/cancel à contrôler. |
Retour : Any. La même réponse, inchangée ; sinon approval_cancel_unconfirmed est levée.
Erreurs levées : EaiError.