Aller au contenu principal

enterprise_ai.delegation

Source : sdks/python/src/enterprise_ai/delegation/__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 ExecutionContextClient​

Contexte d'exécution. Context Authority : émet, vérifie et révoque des documents ExecutionContext signés, la preuve qu'un appel est fait par un principal, un run d'agent et une chaîne de délégation donnés, pour une audience donnée et pour peu de temps.

Resource

ExecutionContextClient.issue​

issue(audience: str | None = None, delegation_id: str | None = None, run_id: str | None = None, ttl_seconds: int | None = None, **extra: Any) -> Any

Émettre un contexte d'exécution signé. Construit et signe un ExecutionContext pour l'appelant et renvoie token, context_id, kid, alg, issued_at et expires_at (201). - Avec run_id : l'appelant doit avoir créé le run, en être le principal racine ou l'utilisateur pour qui il agit, ou détenir agent, tenant_admin ou security_officer (403 forbidden) ; la délégation du run est revérifiée et le manifeste de l'agent est inclus. - Avec delegation_id : la délégation doit être valide et l'appelant l'une de ses parties, ou agent ou tenant_admin. Erreurs : 400 context_wrong_audience pour une audience que la plateforme n'accepte pas, 400 context_ttl_exceeded, 403 delegation_expired, 503 context_authority_unavailable. Audité sous context.issue.

Route : /v1/context/issue (POST).

NomTypeDéfautRequisDescription
audiencestr | NoneNonenonServices destinataires du contexte (1 à 10), parmi les audiences acceptées par la plateforme. Par défaut : les audiences de la plateforme.
delegation_idstr | NoneNonenonDélégation portée par le contexte. Ignorée quand run_id est fourni.
run_idstr | NoneNonenonRun d'agent visé par le contexte ; sa délégation et son agent sont inclus.
ttl_secondsint | NoneNonenonDurée de vie en secondes (30 à 86400 selon le schéma, et jamais au-delà du maximum de la plateforme, 3600 par défaut). Par défaut : 900.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Émettre un contexte d'exécution signé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ExecutionContextClient.jwks​

jwks() -> Any

Lire les clés publiques de vérification. Clés publiques de vérification sous forme de JWKS (actives, et retirées encore dans leur fenêtre de vérification), chacune avec kid, alg (ES256 ou EdDSA) et use: sig. Tout principal authentifié peut la lire. 503 context_authority_unavailable quand le registre de clés est illisible.

Route : /v1/context/jwks (GET).

Cet élément ne prend aucun paramètre.

Retour : Any. Réponse JSON décodée de l'opération « Lire les clés publiques de vérification ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ExecutionContextClient.keys​

keys() -> Any

Lister les clés de signature. Registre des clés de signature des contextes : kid, algorithme, statut, dates d'utilisation, de retrait et de révocation. Demande security_officer ou auditor. 503 context_authority_unavailable quand le registre est illisible.

Route : /v1/context/keys (GET).

Cet élément ne prend aucun paramètre.

Retour : Any. Réponse JSON décodée de l'opération « Lister les clés de signature ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ExecutionContextClient.revoke​

revoke(context_id: str) -> Any

Révoquer un contexte d'exécution. Révoque un contexte émis avant son expiration ; sa vérification répond ensuite context_revoked. Permis pour le principal qui l'a émis, ou tenant_admin ou security_officer (403 forbidden). Une seconde révocation garde la première date. 404 context_not_found. Audité sous context.revoke.

Route : /v1/context/{context_id}/revoke (POST).

NomTypeDéfautRequisDescription
context_idstrouiIdentifiant (UUID) du contexte, la revendication jti de son jeton.

Retour : Any. Réponse JSON décodée de l'opération « Révoquer un contexte d'exécution ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ExecutionContextClient.revoke_key​

revoke_key(kid: str, reason: str) -> Any

Révoquer une clé de signature. Révoque immédiatement une clé de signature des contextes : les contextes qu'elle a signés ne sont plus valides. Demande platform_admin. 404 signing_key_not_found. Audité sous context.key.revoke au niveau de la plateforme.

Route : /v1/context/keys/{kid}/revoke (POST).

NomTypeDéfautRequisDescription
kidstrouiIdentifiant de clé, l'empreinte RFC 7638 de la clé publique.
reasonstrouiRaison de la révocation de la clé (3 à 2000 caractères).

Retour : Any. Réponse JSON décodée de l'opération « Révoquer une clé de signature ».

Erreurs levées : les erreurs typées du transport (Erreurs).

ExecutionContextClient.verify​

verify(token: str, audience: str | None = None) -> Any

Vérifier un contexte d'exécution signé. Contrôle un jeton et renvoie valid, context_id, kid, alg, les revendications et le document de contexte. Contrôles, dans l'ordre : structure et forme canonique (context_malformed), algorithme et signature (context_invalid_signature), clé connue et non révoquée (context_unknown_key), émetteur (context_wrong_issuer), audience (context_wrong_audience), durée de vie (context_expired), tenant de l'appelant (403 context_tenant_mismatch), enregistrement d'émission (context_revoked), empreinte du document et chaîne de délégation (une délégation révoquée donne context_revoked). Les refus répondent 401 sauf mention contraire et sont audités ; un succès rattache l'identité vérifiée aux événements d'audit de la requête.

Route : /v1/context/verify (POST).

NomTypeDéfautRequisDescription
tokenstrouiLe jeton JWS compact (10 à 65536 caractères).
audiencestr | NoneNonenonAudience attendue par le vérificateur (200 caractères au plus). Par défaut : la première audience de la plateforme.

Retour : Any. Réponse JSON décodée de l'opération « Vérifier un contexte d'exécution signé ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe DelegationsClient​

Délégation, mandats et accès d'urgence. Comment un agent, une application ou un sous-agent agit pour le compte de quelqu'un, et comment des droits exceptionnels sont accordés.

Resource

DelegationsClient.authorize​

authorize(action: str, delegation_id: str | None = None, scope: str | None = None, resource: str | None = None, relation: str | None = None, audience: str | None = None, data_classification: str | None = None, run_id: str | None = None) -> Any

Autoriser une action sous une délégation. Calcule la permission effective d'une action : utilisateur ET agent ET délégation ET restriction de ressource ET relation (OpenFGA ou les tuples intégrés) ET politique (OPA ou intégrée). Donnez delegation_id, ou run_id pour utiliser la délégation d'une exécution (400 invalid_request sans l'un ni l'autre ; 403 delegation_required pour une exécution sans délégation).

Route : /v1/delegations/authorize (POST).

NomTypeDéfautRequisDescription
actionstrouiAction, nom pointé en minuscules comme tool.call ou model.invoke, 3 à 200 caractères.
delegation_idstr | NoneNonenonDélégation à vérifier. Donnez-la, ou run_id.
scopestr | NoneNonenonPortée nécessaire à l'action, 200 caractères au plus.
resourcestr | NoneNonenonRessource visée, <type>:<id> comme tool:crm.search, 300 caractères au plus.
relationstr | NoneNonenonRelation ReBAC vérifiée sur la ressource, par exemple viewer.
audiencestr | NoneNonenonService qui recevra l'appel, 200 caractères au plus.
data_classificationstr | NoneNonenonClassification des données traitées : public, internal, confidential, restricted ou secret.
run_idstr | NoneNonenonExécution dont la délégation est vérifiée, à la place de delegation_id.

Retour : Any. Réponse JSON décodée de l'opération « Autoriser une action sous une délégation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DelegationsClient.create​

create(delegate: str, scopes: list[str] | None = None, audience: str | None = None, resources: list[str] | None = None, purpose: str | None = None, ttl_seconds: int | None = None, expires_at: str | None = None, max_depth: int | None = None, redelegation_allowed: bool | None = None, data_classification_max: str | None = None, session_id: str | None = None, **extra: Any) -> Any

Créer une délégation. Crée une délégation racine de l'appelant vers un délégataire. Ouvert aux membres du tenant ; un agent ne peut pas créer seul une délégation racine (403 delegation_root_forbidden).

Route : /v1/delegations (POST).

NomTypeDéfautRequisDescription
delegatestrouiQui reçoit les droits : agent:<name>, app:<id>, service:<name> ou subagent:<name>, 3 à 250 caractères.
scopeslist[str] | NoneNonenonPortées déléguées, 100 au plus. Motifs où * remplace toute suite de caractères (lettres, chiffres et _ . : / @ * -, 200 caractères au plus chacun) ; chacune doit être couverte par les portées de l'appelant.
audiencestr | NoneNonenonServices qui peuvent accepter la délégation, 20 motifs au plus. eai-control-plane par défaut.
resourceslist[str] | NoneNonenonRessources sur lesquelles le délégataire peut agir, 100 motifs au plus comme tool:crm.*. * par défaut.
purposestr | NoneNonenonFinalité de la délégation, 2000 caractères au plus, conservée dans le journal.
ttl_secondsint | NoneNonenonDurée de vie en secondes, 60 au moins, dans la limite de la plateforme. Par défaut : la valeur de la plateforme (8 heures).
expires_atstr | NoneNonenonDate et heure d'expiration (ISO 8601), à la place de ttl_seconds.
max_depthint | NoneNonenonNombre de niveaux de sous-délégation autorisés en dessous, de 0 à 10 (0 par défaut).
redelegation_allowedbool | NoneNonenonSi vrai et que max_depth est supérieur à 0, le délégataire peut restreindre la délégation pour d'autres (faux par défaut).
data_classification_maxstr | NoneNonenonClassification de données la plus haute que le délégataire peut traiter : public, internal, confidential, restricted ou secret. Par défaut : l'habilitation de l'appelant.
session_idstr | NoneNonenonSession à laquelle la délégation est rattachée, facultative.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Créer une délégation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DelegationsClient.get​

get(delegation_id: str) -> Any

Lire une délégation. Renvoie la délégation avec la vérification de sa chaîne depuis la racine (chaque maillon actif, non expiré, du même tenant, couvert par son parent). Visible par sa racine, son créateur et la personne représentée, ainsi que par tenant_admin, security_officer, auditor et agent ; sinon 404 delegation_not_found.

Route : /v1/delegations/{delegation_id} (GET).

NomTypeDéfautRequisDescription
delegation_idstrouiIdentifiant (UUID) de la délégation.

Retour : Any. Réponse JSON décodée de l'opération « Lire une délégation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DelegationsClient.list​

list(status: str | None = None, root_principal_id: str | None = None, **page: Any) -> Any

Lister les délégations. Liste les délégations, les plus récentes d'abord, paginées : toutes pour tenant_admin, security_officer et auditor, sinon celles dont l'appelant est la racine, le créateur ou la personne représentée. Un statut inconnu répond 400.

Route : /v1/delegations (GET).

NomTypeDéfautRequisDescription
statusstr | NoneNonenonactive (non expirée), expired ou revoked.
root_principal_idstr | NoneNonenonUniquement les délégations dont la racine est ce principal.
**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 délégations ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DelegationsClient.restrict​

restrict(delegation_id: str, delegate: str, scopes: list[str] | None = None, audience: str | None = None, resources: list[str] | None = None, purpose: str | None = None, ttl_seconds: int | None = None, expires_at: str | None = None, max_depth: int | None = None, redelegation_allowed: bool | None = None, data_classification_max: str | None = None, **extra: Any) -> Any

Restreindre une délégation pour un sous-délégataire. Crée une délégation enfant, toujours couverte par son parent : un sous-agent n'obtient jamais de droits plus larges. Autorisé à la racine ou au créateur du parent, à un agent, à un tenant_admin ou à un security_officer (403 forbidden).

Route : /v1/delegations/{delegation_id}/restrict (POST).

NomTypeDéfautRequisDescription
delegation_idstrouiIdentifiant (UUID) de la délégation parente.
delegatestrouiSous-délégataire : agent:<name>, app:<id>, service:<name> ou subagent:<name>.
scopeslist[str] | NoneNonenonPortées plus étroites, 100 au plus, couvertes par celles du parent.
audiencestr | NoneNonenonAudiences plus étroites, 20 au plus.
resourceslist[str] | NoneNonenonRestrictions de ressources plus étroites, 100 au plus.
purposestr | NoneNonenonFinalité de la délégation enfant, 2000 caractères au plus.
ttl_secondsint | NoneNonenonDurée de vie en secondes, 60 au moins, jamais au-delà de l'expiration du parent.
expires_atstr | NoneNonenonDate et heure d'expiration (ISO 8601), jamais au-delà de l'expiration du parent.
max_depthint | NoneNonenonProfondeur maximale de la chaîne sous cette branche, de 0 à 10 : au moins la profondeur de l'enfant, au plus le max_depth du parent (par défaut : la valeur du parent).
redelegation_allowedbool | NoneNonenonSi le sous-délégataire peut restreindre à son tour.
data_classification_maxstr | NoneNonenonPlafond de classification inférieur ou égal : public, internal, confidential, restricted ou secret.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Restreindre une délégation pour un sous-délégataire ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DelegationsClient.revoke​

revoke(delegation_id: str, reason: str | None = None) -> Any

Révoquer une délégation. Révoque la délégation et tous ses descendants ; leurs contextes d'exécution sont révoqués avec eux, avec effet à l'action suivante. Autorisé à sa racine, à son créateur ou à la personne représentée, ainsi qu'à tenant_admin et security_officer (403 forbidden). Écrit l'événement d'audit delegation.revoke.

Route : /v1/delegations/{delegation_id}/revoke (POST).

NomTypeDéfautRequisDescription
delegation_idstrouiIdentifiant (UUID) de la délégation.
reasonstr | NoneNonenonRaison de l'action. Inscrite dans le journal d'audit avec l'acteur et l'heure.

Retour : Any. Réponse JSON décodée de l'opération « Révoquer une délégation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DelegationsClient.revoke_principal​

revoke_principal(principal_id: str, reason: str | None = None) -> Any

Révoquer toutes les délégations d'un principal. Révoque toutes les délégations actives dont un principal est la racine ou qui agissent pour lui, avec leurs descendants et leurs contextes d'exécution, par exemple au départ d'un utilisateur ou après la compromission d'un compte. Exige tenant_admin ou security_officer. Écrit l'événement d'audit delegation.revoke_principal.

Route : /v1/delegations/revoke-principal (POST).

NomTypeDéfautRequisDescription
principal_idstrouiPrincipal dont les délégations sont révoquées, par exemple un sujet d'utilisateur, 1 à 300 caractères.
reasonstr | NoneNonenonRaison, 2000 caractères au plus (vide par défaut). Inscrite dans le journal d'audit.

Retour : Any. Réponse JSON décodée de l'opération « Révoquer toutes les délégations d'un principal ».

Erreurs levées : les erreurs typées du transport (Erreurs).

DelegationsClient.verify​

verify(delegation_id: str, action: str, scope: str | None = None, resource: str | None = None, relation: str | None = None, audience: str | None = None, data_classification: str | None = None, run_id: str | None = None) -> Any

Autoriser une action sous une délégation. Calcule la permission effective d'une action : utilisateur ET agent ET délégation ET restriction de ressource ET relation (OpenFGA ou les tuples intégrés) ET politique (OPA ou intégrée). Donnez delegation_id, ou run_id pour utiliser la délégation d'une exécution (400 invalid_request sans l'un ni l'autre ; 403 delegation_required pour une exécution sans délégation).

Route : /v1/delegations/authorize (POST).

NomTypeDéfautRequisDescription
delegation_idstrouiDélégation à vérifier. Donnez-la, ou run_id.
actionstrouiAction, nom pointé en minuscules comme tool.call ou model.invoke, 3 à 200 caractères.
scopestr | NoneNonenonPortée nécessaire à l'action, 200 caractères au plus.
resourcestr | NoneNonenonRessource visée, <type>:<id> comme tool:crm.search, 300 caractères au plus.
relationstr | NoneNonenonRelation ReBAC vérifiée sur la ressource, par exemple viewer.
audiencestr | NoneNonenonService qui recevra l'appel, 200 caractères au plus.
data_classificationstr | NoneNonenonClassification des données traitées : public, internal, confidential, restricted ou secret.
run_idstr | NoneNonenonExécution dont la délégation est vérifiée, à la place de delegation_id.

Retour : Any. Réponse JSON décodée de l'opération « Autoriser une action sous une délégation ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe MandatesClient​

Délégation, mandats et accès d'urgence. Comment un agent, une application ou un sous-agent agit pour le compte de quelqu'un, et comment des droits exceptionnels sont accordés.

Resource

MandatesClient.create​

create(agent: str, purpose: str, service_identity_id: str, scopes: list[str] | None = None, audience: str | None = None, resources: list[str] | None = None, schedule_id: str | None = None, ttl_days: int | None = None, max_depth: int | None = None, data_classification_max: str | None = None, **extra: Any) -> Any

Demander un mandat pour un agent. Demande un mandat pour qu'un agent (éventuellement l'une de ses planifications) s'exécute de façon autonome sous une identité de service. Exige tenant_admin, developer ou security_officer.

Route : /v1/mandates (POST).

NomTypeDéfautRequisDescription
agentstrouiNom de l'agent, 1 à 200 caractères.
purposestrouiFinalité du mandat, 3 à 2000 caractères, montrée aux valideurs.
service_identity_idstrouiIdentité de service sous laquelle les exécutions agissent ; elle doit être active.
scopeslist[str] | NoneNonenonPortées du mandat, 100 au plus, couvertes par celles de l'identité de service.
audiencestr | NoneNonenonAudiences, 20 motifs au plus. eai-control-plane par défaut.
resourceslist[str] | NoneNonenonRestrictions de ressources, 100 motifs au plus. * par défaut.
schedule_idstr | NoneNonenonPlanification unique de l'agent couverte par le mandat ; null pour toutes ses planifications.
ttl_daysint | NoneNonenonDurée de vie en jours, de 1 au maximum de la plateforme (365 par défaut) ; 30 par défaut.
max_depthint | NoneNonenonProfondeur de sous-délégation autorisée, de 0 à 10 (0 par défaut).
data_classification_maxstr | NoneNonenonPlafond de classification : public, internal, confidential, restricted ou secret. Par défaut : l'habilitation de l'identité de service.
**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 un mandat pour un agent ».

Erreurs levées : les erreurs typées du transport (Erreurs).

MandatesClient.get​

get(mandate_id: str) -> Any

Lire un mandat. Renvoie un mandat : agent, planification, identité de service, portées, audience, ressources, plafond de classification, profondeur, finalité, statut, validation et expiration. Ouvert à tout membre du tenant. Répond 404 mandate_not_found.

Route : /v1/mandates/{mandate_id} (GET).

NomTypeDéfautRequisDescription
mandate_idstrouiIdentifiant (UUID) du mandat.

Retour : Any. Réponse JSON décodée de l'opération « Lire un mandat ».

Erreurs levées : les erreurs typées du transport (Erreurs).

MandatesClient.list​

list(agent: str | None = None, limit: int | None = None) -> Any

Lister les mandats. Liste les mandats du tenant, les plus récents d'abord, éventuellement pour un agent, avec leur statut effectif (pending, approved, rejected, revoked ou expired). Ouvert à tout membre du tenant.

Route : /v1/mandates (GET).

NomTypeDéfautRequisDescription
agentstr | NoneNonenonUniquement les mandats de cet agent (nom).
limitint | NoneNonenonNombre maximal de mandats (50 par défaut, 500 au maximum).

Retour : Any. Réponse JSON décodée de l'opération « Lister les mandats ».

Erreurs levées : les erreurs typées du transport (Erreurs).

MandatesClient.revoke​

revoke(mandate_id: str, reason: str | None = None) -> Any

Révoquer un mandat. Révoque le mandat et les délégations qui en découlent : la prochaine exécution planifiée de l'agent est refusée (mandate_required). Autorisé au demandeur, à un tenant_admin ou à un security_officer (403 forbidden). Un mandat révoqué ou refusé répond 409 mandate_closed. Écrit l'événement d'audit mandate.revoke.

Route : /v1/mandates/{mandate_id}/revoke (POST).

NomTypeDéfautRequisDescription
mandate_idstrouiIdentifiant (UUID) du mandat.
reasonstr | NoneNonenonRaison de l'action. Inscrite dans le journal d'audit avec l'acteur et l'heure.

Retour : Any. Réponse JSON décodée de l'opération « Révoquer un mandat ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Classe BreakGlassClient​

Délégation, mandats et accès d'urgence. Comment un agent, une application ou un sous-agent agit pour le compte de quelqu'un, et comment des droits exceptionnels sont accordés.

Resource

BreakGlassClient.context​

context(grant_id: str, audience: str | None = None, ttl_seconds: int | None = None) -> Any

Obtenir un contexte d'exécution pour un accès d'urgence. Renvoie un ExecutionContext signé portant l'élévation active, dont la durée de vie ne dépasse jamais l'expiration de l'accès. Seul le bénéficiaire peut le demander (403 forbidden) ; l'accès doit être actif (409 break_glass_not_active) ; chaque audience doit être connue (400 context_wrong_audience). Les services en aval le vérifient comme tout contexte d'exécution.

Route : /v1/break-glass/{grant_id}/context (POST).

NomTypeDéfautRequisDescription
grant_idstrouiIdentifiant (UUID) de l'accès d'urgence.
audiencestr | NoneNonenonServices auxquels le contexte d'exécution est destiné (1 à 10 audiences connues) ; par défaut le choix du serveur.
ttl_secondsint | NoneNonenonDurée de vie en secondes. Une fois écoulée, l'élément expire et n'est plus accepté.

Retour : Any. Réponse JSON décodée de l'opération « Obtenir un contexte d'exécution pour un accès d'urgence ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BreakGlassClient.create​

create(reason: str, duration_seconds: int, roles: list[str] | None = None, scopes: list[str] | None = None, beneficiary: str | None = None, incident_ref: str | None = None, **extra: Any) -> Any

Demander un accès d'urgence. Demande une élévation exceptionnelle et limitée dans le temps pour le bénéficiaire (l'appelant par défaut). Ouvert à tout membre du tenant.

Route : /v1/break-glass (POST).

NomTypeDéfautRequisDescription
reasonstrouiJustification, 10 à 4000 caractères, montrée aux valideurs.
duration_secondsintouiDurée de l'élévation une fois approuvée, de 60 secondes au maximum de la plateforme (3600 par défaut).
roleslist[str] | NoneNonenonRôles du tenant accordés, 8 au plus, jamais platform_admin. Des rôles ou des portées sont obligatoires.
scopeslist[str] | NoneNonenonPortées accordées, 100 motifs au plus.
beneficiarystr | NoneNonenonSujet qui reçoit l'élévation. Par défaut : l'appelant.
incident_refstr | NoneNonenonRéférence de l'incident qui justifie la demande, facultative.
**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 un accès d'urgence ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BreakGlassClient.get​

get(grant_id: str) -> Any

Lire un accès d'urgence. Renvoie un accès : demandeur, bénéficiaire, rôles, portées, raison, incident, durée, statut, validation et dates. Visible par son demandeur, son bénéficiaire et par tenant_admin, security_officer et auditor ; toute autre personne reçoit 404 break_glass_not_found.

Route : /v1/break-glass/{grant_id} (GET).

NomTypeDéfautRequisDescription
grant_idstrouiIdentifiant (UUID) de l'accès d'urgence.

Retour : Any. Réponse JSON décodée de l'opération « Lire un accès d'urgence ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BreakGlassClient.list​

list(status: str | None = None, limit: int | None = None) -> Any

Lister les accès d'urgence. Liste les accès d'urgence, les plus récents d'abord : tous pour tenant_admin, security_officer et auditor, sinon ceux que l'appelant a demandés ou dont il bénéficie. Les accès actifs dont l'expiration est passée sont marqués expired (audité une fois). Un statut inconnu répond 400.

Route : /v1/break-glass (GET).

NomTypeDéfautRequisDescription
statusstr | NoneNonenonUniquement les accès pending, active, expired, rejected ou revoked.
limitint | NoneNonenonNombre maximal d'accès (50 par défaut, 500 au maximum).

Retour : Any. Réponse JSON décodée de l'opération « Lister les accès d'urgence ».

Erreurs levées : les erreurs typées du transport (Erreurs).

BreakGlassClient.revoke​

revoke(grant_id: str, reason: str | None = None) -> Any

Révoquer un accès d'urgence. Met fin à un accès en attente ou actif et révoque les délégations créées sous lui. Autorisé au demandeur, à un tenant_admin ou à un security_officer (403 forbidden). Un accès déjà clos répond 409 break_glass_closed. Écrit l'événement d'audit break_glass.revoke.

Route : /v1/break-glass/{grant_id}/revoke (POST).

NomTypeDéfautRequisDescription
grant_idstrouiIdentifiant (UUID) de l'accès d'urgence.
reasonstr | NoneNonenonRaison de l'action. Inscrite dans le journal d'audit avec l'acteur et l'heure.

Retour : Any. Réponse JSON décodée de l'opération « Révoquer un accès d'urgence ».

Erreurs levées : les erreurs typées du transport (Erreurs).