Aller au contenu principal

enterprise_ai.approvals

Source : sdks/python/src/enterprise_ai/approvals/__init__.py. Retour à l'index de la référence du SDK Python.

remarque

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).

NomTypeDéfautRequisDescription
approval_idstrouiIdentifiant (UUID) de la demande de validation.
reasonstrouiRaison 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).

NomTypeDéfautRequisDescription
approval_idstrouiIdentifiant (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).

NomTypeDéfautRequisDescription
actionstrouiAction à valider, 1 à 200 caractères, par exemple tool.call, promotion, break_glass ou mandate.
resource_typestrouiType de la ressource concernée, 1 à 100 caractères, par exemple tool ou model.
resource_idstr | NoneNonenonIdentifiant de la ressource concernée, facultatif.
reasonstr | NoneNonenonRaison de la demande, montrée aux valideurs (vide par défaut).
run_idstr | NoneNonenonExécution d'agent qui attend la décision, facultative. Elle reprend sur approbation et échoue sur refus, expiration ou annulation.
idempotency_keystr | NoneNonenonEn-tête Idempotency-Key : une reprise avec la même clé rejoue la première réponse.
**extraAnynonChamps 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).

NomTypeDéfautRequisDescription
approval_idstrouiIdentifiant (UUID) de la demande de validation.
decisionstrouiapprove ou reject.
commentstr | NoneNonenonCommentaire 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).

NomTypeDéfautRequisDescription
approval_idstrouiIdentifiant (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).

NomTypeDéfautRequisDescription
statusstr | NoneNonenonUniquement les demandes dans ce statut : pending, approved, rejected, expired ou cancelled.
**pageAnynonOptions 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).

NomTypeDéfautRequisDescription
approval_idstrouiIdentifiant de l'approbation à surveiller.
timeoutfloat3600.0nonAttente maximale en secondes (3600 par défaut) ; au-delà, approval_timeout est levée.
intervalfloat2.0nonSecondes entre deux lectures de l'approbation (2 par défaut).
sleepAnytime.sleepnonFonction 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.

NomTypeDéfautRequisDescription
approval_idstrouiIdentifiant de l'approbation à surveiller.
timeoutfloat3600.0nonAttente maximale en secondes (3600 par défaut) ; au-delà, approval_timeout est levée.
intervalfloat2.0nonSecondes 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.

NomTypeDéfautRequisDescription
answerAnyouiRé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.