Aller au contenu principal

enterprise_ai.identity

Source : sdks/python/src/enterprise_ai/identity/__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 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).

NomTypeDéfautRequisDescription
userstrouiSujet de l'utilisateur : la revendication OIDC sub, 1 à 200 caractères.
rolestrouiRô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.
**extraAnynonChamps 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).

NomTypeDéfautRequisDescription
identity_idstrouiIdentifiant (UUID) de l'identité de service.
purposestrouiRaison de l'endossement, 3 à 500 caractères. Inscrite dans le journal d'audit et dans le contexte signé.
audiencelist[str] | NoneNonenonServices autorisés à accepter le contexte, 1 à 10 audiences connues. Null : l'audience par défaut de l'autorité de contexte.
ttl_secondsint | NoneNonenonDurée de vie du contexte en secondes, de 30 à 3600 (900 par défaut).
scopeslist[str] | NoneNonenonPorté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).

NomTypeDéfautRequisDescription
current_passwordstrouiMot de passe actuel, 1 à 256 caractères.
new_passwordstrouiNouveau 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).

NomTypeDéfautRequisDescription
subjectstrouiSujet vérifié, <type>:<id> : user:alice, group:fin#member ou user:*.
relationstrouiNom de la relation, minuscules, chiffres et tirets bas, par exemple viewer.
objectstrouiObjet 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).

NomTypeDéfautRequisDescription
namestrouiNom affiché de la clé, 1 à 200 caractères, par exemple la chaîne qui l'utilise.
scopeslist[str]ouiPorté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.
**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 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).

NomTypeDéfautRequisDescription
groupstrouiNom du groupe tel qu'il figure dans la revendication groups ou entra_groups, 1 à 256 caractères, comparé exactement.
**fieldsAnynonChamps 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).

NomTypeDéfautRequisDescription
namestrouiNom unique du profil dans le tenant, 1 à 200 caractères.
**fieldsAnynonChamps 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).

NomTypeDéfautRequisDescription
namestrouiNom de l'identité, 1 à 200 caractères ; le sujet devient service:<name>.
spiffe_idstrouiIdentifiant SPIFFE de la charge de travail, spiffe://<trust domain>/<path>, unique sur la plateforme.
**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 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).

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

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

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

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

NomTypeDéfautRequisDescription
tupleslist[dict[str, str]]ouiTuples 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).

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

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

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

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

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

NomTypeDéfautRequisDescription
subjectstr | NoneNonenonUniquement les tuples de ce sujet, comme user:alice ou group:fin#member.
objectstr | NoneNonenonUniquement les tuples portant sur cet objet, <type>:<id> comme project:42.
**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 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).

NomTypeDéfautRequisDescription
usernamestrouiIdentifiant du compte, 1 à 128 caractères, comparé sans tenir compte de la casse.
passwordstrouiMot 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).

NomTypeDéfautRequisDescription
pathstrouiChemin du secret, 1 à 255 caractères parmi les lettres, les chiffres, _, ., / et -, sans commencer par ., / ou -.
valuestrouiValeur 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).

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

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

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

NomTypeDéfautRequisDescription
mapping_idstrouiIdentifiant (UUID) de la correspondance de groupe.
**changesAnynonChamps 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).

NomTypeDéfautRequisDescription
member_idstrouiIdentifiant (UUID) de l'appartenance.
rolestr | NoneNonenonNouveau rôle, mêmes valeurs qu'à la création.
clearancestr | NoneNonenonNouvelle 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).

NomTypeDéfautRequisDescription
profile_idstrouiIdentifiant (UUID) du profil de quota.
**changesAnynonChamps 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).

NomTypeDéfautRequisDescription
tupleslist[dict[str, str]]ouiTuples 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.

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