enterprise_ai.identity
Source : sdks/python/src/enterprise_ai/identity/__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 IdentityClient
/v1/me, /v1/members, /v1/api-keys, /v1/service-identities, /v1/authz, /v1/secrets, /v1/identity/quota-profiles et /v1/identity/group-mappings.
Resource
IdentityClient.add_member
add_member(user: str, role: str, **extra: Any) -> Any
Ajouter un membre. Donne à un utilisateur (sujet OIDC) un rôle et une habilitation dans le tenant, ou dans un projet avec project_id. La fiche utilisateur est créée si elle est inconnue ; une appartenance existante pour le même utilisateur et le même projet est mise à jour. Exige tenant_admin ; accorder platform_admin exige un administrateur de plateforme (403 forbidden). Écrit l'événement d'audit member.assign.
Route : /v1/members (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
user | str | oui | Sujet de l'utilisateur : la revendication OIDC sub, 1 à 200 caractères. | |
role | str | oui | Rôle donné : platform_admin, tenant_admin, security_officer, finops, developer, auditor, agent, viewer, soc_analyst, ai_governance_officer, data_steward, application_owner, ai_platform_engineer, business_owner or support_engineer. | |
**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 « Ajouter un membre ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.assume_service
assume_service(identity_id: str, purpose: str, audience: list[str] | None = None, ttl_seconds: int | None = None, scopes: list[str] | None = None) -> Any
Endosser une identité de service. Renvoie un ExecutionContext signé et de courte durée dont le sujet est l'identité de service, pour l'appelant. Ce n'est pas un identifiant d'API : les services en aval le vérifient (POST /v1/context/verify ou le JWKS) et l'appelant le révoque avec POST /v1/context/{context_id}/revoke.
Route : /v1/service-identities/{identity_id}/assume (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
identity_id | str | oui | Identifiant (UUID) de l'identité de service. | |
purpose | str | oui | Raison de l'endossement, 3 à 500 caractères. Inscrite dans le journal d'audit et dans le contexte signé. | |
audience | list[str] | None | None | non | Services autorisés à accepter le contexte, 1 à 10 audiences connues. Null : l'audience par défaut de l'autorité de contexte. |
ttl_seconds | int | None | None | non | Durée de vie du contexte en secondes, de 30 à 3600 (900 par défaut). |
scopes | list[str] | None | None | non | Portées demandées, 50 au plus. Par défaut : les portées de l'identité. Chacune doit être accordée par l'identité et détenue par l'appelant. |
Retour : Any. Réponse JSON décodée de l'opération « Endosser une identité de service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.change_password
change_password(current_password: str, new_password: str) -> Any
Changer le mot de passe. Change le mot de passe du compte local connecté. Uniquement pour une session du portail (403 password_session_required).
Route : /v1/auth/password (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
current_password | str | oui | Mot de passe actuel, 1 à 256 caractères. | |
new_password | str | oui | Nouveau mot de passe : au moins la longueur minimale configurée (12 par défaut), 256 caractères au plus, avec des lettres et des caractères autres que des lettres. |
Retour : Any. Réponse JSON décodée de l'opération « Changer le mot de passe ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.check
check(subject: str, relation: str, object: str) -> Any
Vérifier une relation. Indique si subject détient relation sur object, en suivant l'héritage. Jusqu'à 20 contextual_tuples sont tenus pour vrais pour cette seule vérification et jamais enregistrés (un tuple invalide répond 422 validation_error). Ouvert à tout membre du tenant. La réponse donne allowed, engine, subject, relation et object. Écrit l'événement d'audit authz.check avec la décision. Quand le moteur ne peut pas répondre, la décision est un refus, elle est auditée et l'API répond 502 authz_backend_error.
Route : /v1/authz/check (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
subject | str | oui | Sujet vérifié, <type>:<id> : user:alice, group:fin#member ou user:*. | |
relation | str | oui | Nom de la relation, minuscules, chiffres et tirets bas, par exemple viewer. | |
object | str | oui | Objet vérifié, <type>:<id>, par exemple project:42. |
Retour : Any. Réponse JSON décodée de l'opération « Vérifier une relation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.create_api_key
create_api_key(name: str, scopes: list[str], **extra: Any) -> Any
Créer une clé d'API. Crée une clé d'API pour les scripts et les services. Exige tenant_admin ou developer. La réponse (201) porte le secret complet dans key, montré une seule fois : rangez-le aussitôt dans un magasin de secrets.
Route : /v1/api-keys (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | str | oui | Nom affiché de la clé, 1 à 200 caractères, par exemple la chaîne qui l'utilise. | |
scopes | list[str] | oui | Portées accordées à l'identifiant, sous forme de motifs (models:invoke, admin:*). Chaque portée doit être détenue par l'appelant (403 forbidden, raison scope_not_held). Liste vide par défaut. | |
**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 « Créer une clé d'API ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.create_group_mapping
create_group_mapping(group: str, **fields: Any) -> Any
Créer une correspondance de groupe. Associe un groupe de l'annuaire à un rôle dans un projet et, en option, à un profil de quota. Exige tenant_admin.
Route : /v1/identity/group-mappings (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
group | str | oui | Nom du groupe tel qu'il figure dans la revendication groups ou entra_groups, 1 à 256 caractères, comparé exactement. | |
**fields | Any | non | Champs de la méthode (par exemple utilisateur et mot de passe), jusqu'à 16 valeurs texte. |
Retour : Any. Réponse JSON décodée de l'opération « Créer une correspondance de groupe ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.create_quota_profile
create_quota_profile(name: str, **fields: Any) -> Any
Créer un profil de quota. Crée un profil de quota réutilisable par les correspondances de groupes. Exige tenant_admin. Au moins un des champs limit_cost et limit_tokens est obligatoire (422 validation_error). Un nom déjà utilisé répond 409 conflict. Écrit l'événement d'audit identity.quota_profile.create.
Route : /v1/identity/quota-profiles (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | str | oui | Nom unique du profil dans le tenant, 1 à 200 caractères. | |
**fields | Any | non | Champs de la méthode (par exemple utilisateur et mot de passe), jusqu'à 16 valeurs texte. |
Retour : Any. Réponse JSON décodée de l'opération « Créer un profil de quota ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.create_service_identity
create_service_identity(name: str, spiffe_id: str, **extra: Any) -> Any
Créer une identité de service. Enregistre une identité de charge de travail du tenant avec son identifiant SPIFFE, ses rôles, ses portées et son habilitation. Exige tenant_admin ou security_officer ; les rôles et portées accordés suivent les mêmes règles que les clés d'API (uniquement ce que l'appelant détient). Un identifiant SPIFFE déjà enregistré répond 409 conflict. Écrit l'événement d'audit service_identity.create. Endosser l'identité exige en plus la relation explicite can_assume (voir la route d'endossement).
Route : /v1/service-identities (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | str | oui | Nom de l'identité, 1 à 200 caractères ; le sujet devient service:<name>. | |
spiffe_id | str | oui | Identifiant SPIFFE de la charge de travail, spiffe://<trust domain>/<path>, unique sur la plateforme. | |
**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 « Créer une identité de service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.delete_group_mapping
delete_group_mapping(mapping_id: str) -> Any
Supprimer une correspondance de groupe. Supprime la correspondance et retire ce qu'elle avait accordé (appartenances aux projets et quotas enregistrés comme accordés par elle) ; les appartenances accordées à la main restent. Exige tenant_admin. Écrit l'événement d'audit identity.group_mapping.delete. Répond 204, ou 404 not_found pour une correspondance inconnue.
Route : /v1/identity/group-mappings/{mapping_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
mapping_id | str | oui | Identifiant (UUID) de la correspondance de groupe. |
Retour : Any. Réponse JSON décodée de l'opération « Supprimer une correspondance de groupe ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.delete_quota_profile
delete_quota_profile(profile_id: str) -> Any
Supprimer un profil de quota. Supprime un profil de quota. Exige tenant_admin. Un profil encore utilisé par une correspondance de groupe ne peut pas être supprimé (409 conflict) : détachez-le d'abord des correspondances. Écrit l'événement d'audit identity.quota_profile.delete. Répond 204, ou 404 not_found.
Route : /v1/identity/quota-profiles/{profile_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
profile_id | str | oui | Identifiant (UUID) du profil de quota. |
Retour : Any. Réponse JSON décodée de l'opération « Supprimer un profil de quota ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.delete_secret
delete_secret(path: str) -> Any
Supprimer un secret. Supprime le secret et, avec OpenBao, sa valeur dans le coffre. Exige tenant_admin, security_officer ou developer ; un développeur ne supprime que les secrets qu'il a écrits (403 forbidden). Les objets qui désignent encore ce chemin cessent de fonctionner. Écrit l'événement d'audit secret.delete. Répond 204, 404 not_found, ou 502 secret_backend_error quand le coffre est injoignable.
Route : /v1/secrets/{path} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
path | str | oui | Chemin du secret, barres obliques comprises, par exemple connectors/crm/password. |
Retour : Any. Réponse JSON décodée de l'opération « Supprimer un secret ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.delete_service_identity
delete_service_identity(identity_id: str) -> Any
Supprimer une identité de service. Supprime l'identité de service ; elle ne peut plus être endossée ni s'authentifier avec son identifiant SPIFFE. Exige tenant_admin ou security_officer. Écrit l'événement d'audit service_identity.delete. Répond 204, ou 404 not_found.
Route : /v1/service-identities/{identity_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
identity_id | str | oui | Identifiant (UUID) de l'identité de service. |
Retour : Any. Réponse JSON décodée de l'opération « Supprimer une identité de service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.delete_tuples
delete_tuples(tuples: list[dict[str, str]]) -> Any
Supprimer des tuples d'autorisation. Supprime un tuple ({subject, relation, object}) ou jusqu'à 100 ({"tuples": [...]}). Exige tenant_admin ou security_officer. Les tuples inexistants sont ignorés ; la réponse donne deleted (nombre supprimé) et engine. Écrit l'événement d'audit authz.delete. 502 authz_backend_error quand le moteur ne peut pas répondre.
Route : /v1/authz/tuples (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
tuples | list[dict[str, str]] | oui | Tuples de relation à supprimer, chacun {subject, relation, object} (1 à 100). |
Retour : Any. Réponse JSON décodée de l'opération « Supprimer des tuples d'autorisation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.get_group_mapping
get_group_mapping(mapping_id: str) -> Any
Lire une correspondance de groupe. Renvoie une correspondance de groupe. Exige tenant_admin, security_officer ou auditor. Répond 404 not_found pour une correspondance inconnue.
Route : /v1/identity/group-mappings/{mapping_id} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
mapping_id | str | oui | Identifiant (UUID) de la correspondance de groupe. |
Retour : Any. Réponse JSON décodée de l'opération « Lire une correspondance de groupe ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.list_api_keys
list_api_keys(**page: Any) -> Any
Lister les clés d'API. Liste les clés d'API du tenant, paginées par limit et cursor, triées par identifiant. Chaque élément donne le nom, le préfixe public, les rôles, les portées, l'habilitation, le projet, l'environnement, le créateur, l'expiration et l'état de révocation ; jamais le secret ni son empreinte. tenant_admin et security_officer voient toutes les clés, un developer uniquement celles qu'il a créées.
Route : /v1/api-keys (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
**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 clés d'API ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.list_group_mappings
list_group_mappings() -> Any
Lister les correspondances de groupes. Liste toutes les correspondances de groupes de l'annuaire du tenant avec leur groupe, projet, rôle et profil de quota. Exige tenant_admin, security_officer ou auditor (403 forbidden sinon). Non paginé : next_cursor vaut toujours null.
Route : /v1/identity/group-mappings (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les correspondances de groupes ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.list_members
list_members(**page: Any) -> Any
Lister les membres. Liste les appartenances du tenant, paginées : sujet de l'utilisateur, e-mail, nom affiché, rôle, habilitation, projet et date de création. Ouvert à tout membre du tenant.
Route : /v1/members (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
**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 membres ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.list_quota_profiles
list_quota_profiles() -> Any
Lister les profils de quota. Liste les profils de quota du tenant (nom, période, mode d'application, plafonds de coût et de jetons, devise). Exige tenant_admin, security_officer ou auditor.
Route : /v1/identity/quota-profiles (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lister les profils de quota ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.list_secrets
list_secrets(**page: Any) -> Any
Lister les secrets. Liste les métadonnées des secrets du tenant triées par chemin : id, path, backend (openbao ou local), version, created_by, created_at, updated_at. Jamais la valeur. Ouvert à tout membre du tenant. next_cursor vaut toujours null.
Route : /v1/secrets (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
**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 secrets ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.list_service_identities
list_service_identities(**page: Any) -> Any
Lister les identités de service. Liste les identités de service du tenant, triées par nom, avec leur identifiant SPIFFE, leurs rôles, leurs portées et leur habilitation. Ouvert à tout membre du tenant. Non paginé : next_cursor vaut toujours null.
Route : /v1/service-identities (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
**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 identités de service ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.list_tuples
list_tuples(subject: str | None = None, object: str | None = None, **page: Any) -> Any
Lister les tuples d'autorisation. Liste les tuples enregistrés du tenant, triés par objet, relation et sujet, 1000 au plus, éventuellement filtrés par objet et par sujet (égalité exacte). Ouvert à tout membre du tenant. next_cursor vaut toujours null.
Route : /v1/authz/tuples (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
subject | str | None | None | non | Uniquement les tuples de ce sujet, comme user:alice ou group:fin#member. |
object | str | None | None | non | Uniquement les tuples portant sur cet objet, <type>:<id> comme project:42. |
**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 tuples d'autorisation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.login
login(username: str, password: str) -> Any
Se connecter avec un identifiant et un mot de passe. Ouvre une session du portail pour un compte local. Aucun identifiant n'est nécessaire. L'identifiant de connexion est comparé sans tenir compte de la casse.
Route : /v1/auth/login (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
username | str | oui | Identifiant du compte, 1 à 128 caractères, comparé sans tenir compte de la casse. | |
password | str | oui | Mot de passe, 1 à 256 caractères. En écriture seule : jamais renvoyé ni journalisé. |
Retour : Any. Réponse JSON décodée de l'opération « Se connecter avec un identifiant et un mot de passe ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.logout
logout() -> Any
Se déconnecter. Révoque la session du portail en cours : son jeton est refusé dès maintenant (401 session_revoked). Uniquement pour une session du portail (403 password_session_required avec un autre identifiant). Écrit l'événement d'audit auth.logout. Répond 204.
Route : /v1/auth/logout (POST).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Se déconnecter ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.me
me() -> Any
Lire le principal courant. Qui est l'appelant : identifiant du principal, type, tenant, habilitation, projet, environnement, méthode d'authentification et nom affiché, avec ses rôles et ses scopes. Si le principal appartient à un tenant, le tenant (identifiant, slug, nom, statut, résidence des données) est aussi renvoyé. Demande une authentification (401 sinon).
Route : /v1/me (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Lire le principal courant ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.put_secret
put_secret(path: str, value: str) -> Any
Écrire un secret. Crée le secret, ou remplace sa valeur quand le chemin existe (la version augmente de un). Exige tenant_admin, security_officer ou developer ; un développeur ne remplace que les secrets qu'il a écrits (403 forbidden). Un chemin contenant un segment .. répond 400 invalid_request. La réponse (201) donne les métadonnées, jamais la valeur. Écrit l'événement d'audit secret.write. 502 secret_backend_error quand le coffre est injoignable.
Route : /v1/secrets (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
path | str | oui | Chemin du secret, 1 à 255 caractères parmi les lettres, les chiffres, _, ., / et -, sans commencer par ., / ou -. | |
value | str | oui | Valeur du secret, 1 à 65536 caractères. En écriture seule : chiffrée au repos, jamais renvoyée ni journalisée. |
Retour : Any. Réponse JSON décodée de l'opération « Écrire un secret ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.remove_member
remove_member(member_id: str) -> Any
Retirer un membre. Supprime l'appartenance : l'utilisateur perd le rôle qu'elle donnait dès la requête suivante. Exige tenant_admin. Écrit l'événement d'audit member.remove. Répond 204, ou 404 not_found.
Route : /v1/members/{member_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
member_id | str | oui | Identifiant (UUID) de l'appartenance. |
Retour : Any. Réponse JSON décodée de l'opération « Retirer un membre ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.revoke_api_key
revoke_api_key(key_id: str) -> Any
Révoquer une clé d'API. Révoque la clé immédiatement : toute requête ultérieure faite avec elle répond 401 api_key_revoked. Révoquer une clé déjà révoquée réussit sans changement. Autorisé à tenant_admin, security_officer et developer ; un développeur ne révoque que les clés qu'il a créées, toute autre clé répond 404 not_found. Écrit l'événement d'audit api_key.revoke. Répond 204 sans corps.
Route : /v1/api-keys/{key_id} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
key_id | str | oui | Identifiant (UUID) de la clé d'API. |
Retour : Any. Réponse JSON décodée de l'opération « Révoquer une clé d'API ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.rotate_api_key
rotate_api_key(key_id: str) -> Any
Faire tourner une clé d'API. Émet une clé de remplacement avec le même nom, les mêmes rôles, portées, habilitation, projet et environnement, et retire l'ancienne. Le nouveau secret figure dans key de la réponse 201, montré une seule fois.
Route : /v1/api-keys/{key_id}/rotate (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
key_id | str | oui | Identifiant (UUID) de la clé d'API. |
Retour : Any. Réponse JSON décodée de l'opération « Faire tourner une clé d'API ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.update_group_mapping
update_group_mapping(mapping_id: str, **changes: Any) -> Any
Modifier une correspondance de groupe. Modifie le groupe, le projet, le rôle ou le profil de quota d'une correspondance ; seuls les champs envoyés changent. clear_quota_profile: true détache le profil. Les nouvelles valeurs s'appliquent à la prochaine connexion de chaque membre. Exige tenant_admin. Une modification qui dupliquerait une autre correspondance répond 409 conflict ; un projet ou un profil inconnu répond 404. Écrit l'événement d'audit identity.group_mapping.update.
Route : /v1/identity/group-mappings/{mapping_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
mapping_id | str | oui | Identifiant (UUID) de la correspondance de groupe. | |
**changes | Any | non | Champs du mappage de groupe à modifier, envoyés comme corps du PATCH. |
Retour : Any. Réponse JSON décodée de l'opération « Modifier une correspondance de groupe ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.update_member
update_member(member_id: str, role: str | None = None, clearance: str | None = None) -> Any
Modifier un membre. Modifie le rôle ou l'habilitation d'une appartenance. Exige tenant_admin ; accorder platform_admin exige un administrateur de plateforme (403 forbidden). Écrit l'événement d'audit member.update. Répond 404 not_found pour une appartenance inconnue.
Route : /v1/members/{member_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
member_id | str | oui | Identifiant (UUID) de l'appartenance. | |
role | str | None | None | non | Nouveau rôle, mêmes valeurs qu'à la création. |
clearance | str | None | None | non | Nouvelle habilitation : public, internal, confidential, restricted ou secret. |
Retour : Any. Réponse JSON décodée de l'opération « Modifier un membre ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.update_quota_profile
update_quota_profile(profile_id: str, **changes: Any) -> Any
Modifier un profil de quota. Modifie la période, le mode d'application ou les plafonds d'un profil, ainsi que les quotas d'utilisateurs déjà créés à partir de lui par les correspondances de groupes, dans la même transaction. Exige tenant_admin. Écrit l'événement d'audit identity.quota_profile.update avec le nombre de quotas modifiés. Répond 404 not_found pour un profil inconnu.
Route : /v1/identity/quota-profiles/{profile_id} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
profile_id | str | oui | Identifiant (UUID) du profil de quota. | |
**changes | Any | non | Champs du profil de quotas à modifier, envoyés comme corps du PATCH. |
Retour : Any. Réponse JSON décodée de l'opération « Modifier un profil de quota ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.whoami
whoami() -> Any
Afficher l'identité appelante. Renvoie l'identité résolue par la plateforme pour cette requête, quel que soit l'identifiant (jeton OIDC, session du portail, clé d'API, SPIFFE) : id, kind (user, service, agent, system), tenant_id, tenant_slug, roles, scopes, clearance, auth_method et display. En lecture seule, ouvert à tout appelant authentifié, y compris quand un compte local doit encore changer son mot de passe. Utilisez-la pour vérifier un nouveau jeton ou une nouvelle clé.
Route : /v1/identity/whoami (GET).
Cet élément ne prend aucun paramètre.
Retour : Any. Réponse JSON décodée de l'opération « Afficher l'identité appelante ».
Erreurs levées : les erreurs typées du transport (Erreurs).
IdentityClient.write_tuples
write_tuples(tuples: list[dict[str, str]]) -> Any
Écrire des tuples d'autorisation. Accorde un tuple ({subject, relation, object}) ou jusqu'à 100 ({"tuples": [...]}) en une transaction. Exige tenant_admin ou security_officer. Un sujet générique (user:*) sur une relation réservée aux sujets nommés, comme can_assume, répond 422 authz_wildcard_not_allowed. La réponse (201) donne written et engine. Écrit l'événement d'audit authz.write. 502 authz_backend_error quand le moteur ne peut pas répondre.
Route : /v1/authz/tuples (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
tuples | list[dict[str, str]] | oui | Tuples de relation à écrire, chacun {subject, relation, object} comme user:alice, viewer, project:p1 (1 à 100). |
Retour : Any. Réponse JSON décodée de l'opération « Écrire des tuples d'autorisation ».
Erreurs levées : les erreurs typées du transport (Erreurs).
Fonctions
confirm_assumed
confirm_assumed(answer: Any) -> Any
Renvoie un contexte de service assumé uniquement s'il porte le token signé et son context_id.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
answer | Any | oui | Réponse de l'appel d'endossement de l'identité de service à contrôler. |
Retour : Any. La même réponse, inchangée ; sinon AuthzUnconfirmed est levée.
Erreurs levées : AuthzUnconfirmed.