io.enterpriseai.resources.ToolsClient
Source : sdks/java/enterprise-ai-java/src/main/java/io/enterpriseai/resources/ToolsClient.java. Retour à l'index de la référence du SDK Java.
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 ToolsClient
Outils. Tool Registry et Tool Gateway. Un outil est une action déclarée avec un schéma d'entrée, un point d'accès (http, mcp, builtin, sandbox), une classification de données, un niveau de risque et, en option, une approbation, une limite de débit et un coût. Chaque appel passe par la passerelle, qui applique les contrôles et enregistre une invocation.
Constructeur ToolsClient
ToolsClient(Transport transport)
Crée le client sur le transport partagé ; EnterpriseAIClient le construit, on y accède par l'accesseur du même nom.
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
transport | Transport | oui | Transport partagé par les sous-clients d'un même client. |
ToolsClient.create
JsonNode create(Object body)
Enregistrer un outil. Applique un manifeste Tool : crée ou met à jour l'outil (apply_status : created, updated ou unchanged). Contrôles : schémas JSON d'entrée et de sortie valides, un point d'accès http demande une URL http(s) permise par la politique de sortie réseau, un point d'accès mcp demande mcp_server, un gestionnaire builtin doit être echo ou time.now, le niveau de risque unacceptable est refusé (422 invalid_manifest). Demande tenant_admin, developer ou application_owner ; l'appelant devient propriétaire ReBAC. Audité sous tool.apply.
Route : /v1/tools (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Manifeste Tool (kind: Tool, metadata, spec avec description, action, schéma d'entrée, point d'accès, classification de données et options). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer un outil ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.create
JsonNode create(Object body, RequestOptions options)
Enregistrer un outil. Applique un manifeste Tool : crée ou met à jour l'outil (apply_status : created, updated ou unchanged). Contrôles : schémas JSON d'entrée et de sortie valides, un point d'accès http demande une URL http(s) permise par la politique de sortie réseau, un point d'accès mcp demande mcp_server, un gestionnaire builtin doit être echo ou time.now, le niveau de risque unacceptable est refusé (422 invalid_manifest). Demande tenant_admin, developer ou application_owner ; l'appelant devient propriétaire ReBAC. Audité sous tool.apply.
Route : /v1/tools (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
body | Object | oui | Manifeste Tool (kind: Tool, metadata, spec avec description, action, schéma d'entrée, point d'accès, classification de données et options). | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Enregistrer un outil ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.delete
void delete(String name)
Supprimer un outil. Retire l'outil du registre. Demande tenant_admin et la relation ReBAC owner. 404 tool_not_found. Audité sous tool.delete.
Route : /v1/tools/{name} (DELETE).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | String | oui | Nom de l'outil. |
Retour : void.
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.get
JsonNode get(String name)
Lire un outil. Renvoie l'outil avec son manifeste, son niveau de risque, son propriétaire et son statut. Demande la relation ReBAC viewer. 404 tool_not_found.
Route : /v1/tools/{name} (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | String | oui | Nom de l'outil. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Lire un outil ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.invocations
Page<JsonNode> invocations()
Lister les invocations d'outils. Invocations enregistrées par la Tool Gateway, de la plus récente à la plus ancienne, paginées avec cursor : outil et version, acteur, run, agent, statut, décision, approbation, arguments et résultat expurgés, détections DLP, statut HTTP, erreur et durée. Les arguments et résultats ne sont conservés qu'expurgés.
Route : /v1/tools/invocations (GET).
Cet élément ne prend aucun paramètre.
Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Lister les invocations d'outils ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.invocations
Page<JsonNode> invocations(Map<String, ?> query)
Lister les invocations d'outils. Invocations enregistrées par la Tool Gateway, de la plus récente à la plus ancienne, paginées avec cursor : outil et version, acteur, run, agent, statut, décision, approbation, arguments et résultat expurgés, détections DLP, statut HTTP, erreur et durée. Les arguments et résultats ne sont conservés qu'expurgés.
Route : /v1/tools/invocations (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Map<String, ?> | oui | Paramètres de la chaîne de requête de la route. |
Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Lister les invocations d'outils ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.invoke
JsonNode invoke(String name, Object body)
Invoquer un outil via la passerelle. Exécute la chaîne de la passerelle décrite dans l'introduction du tag et renvoie l'invocation : status, result masqué, error, duration_ms, decision_id, détections DLP, événement d'usage et coût. Demande tenant_admin, developer ou agent et la relation ReBAC can_invoke. Réponses : 200 une fois exécuté (aussi quand l'amont a échoué, voir status et error) ; 202 pending_approval avec approval_id quand une validation humaine est requise (rappelez avec l'approval_id approuvé et les mêmes arguments) ; 202 pour un outil sandbox, avec l'identifiant de l'exécution en sandbox. Erreurs : 403 tool_blocked, insufficient_scope, tool_not_granted, classification_exceeded, policy_denied, dlp_blocked ; 422 invalid_arguments ; 409 approval_consumed (une approbation sert un seul appel réussi) ; 429 rate_limited avec Retry-After: 60 ou quota_exceeded.
Route : /v1/tools/{name}/invoke (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | String | oui | Nom de l'outil. | |
body | Object | oui | Arguments de l'appel et son contexte (run, agent, approbation, finalité, classification). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Invoquer un outil via la passerelle ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.invoke
JsonNode invoke(String name, Object body, RequestOptions options)
Invoquer un outil via la passerelle. Exécute la chaîne de la passerelle décrite dans l'introduction du tag et renvoie l'invocation : status, result masqué, error, duration_ms, decision_id, détections DLP, événement d'usage et coût. Demande tenant_admin, developer ou agent et la relation ReBAC can_invoke. Réponses : 200 une fois exécuté (aussi quand l'amont a échoué, voir status et error) ; 202 pending_approval avec approval_id quand une validation humaine est requise (rappelez avec l'approval_id approuvé et les mêmes arguments) ; 202 pour un outil sandbox, avec l'identifiant de l'exécution en sandbox. Erreurs : 403 tool_blocked, insufficient_scope, tool_not_granted, classification_exceeded, policy_denied, dlp_blocked ; 422 invalid_arguments ; 409 approval_consumed (une approbation sert un seul appel réussi) ; 429 rate_limited avec Retry-After: 60 ou quota_exceeded.
Route : /v1/tools/{name}/invoke (POST).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | String | oui | Nom de l'outil. | |
body | Object | oui | Arguments de l'appel et son contexte (run, agent, approbation, finalité, classification). | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Invoquer un outil via la passerelle ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.list
Page<JsonNode> list()
Lister les outils. Outils du tenant dans l'ordre des noms, éventuellement d'un seul statut. Une seule page.
Route : /v1/tools (GET).
Cet élément ne prend aucun paramètre.
Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Lister les outils ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.list
Page<JsonNode> list(Map<String, ?> query)
Lister les outils. Outils du tenant dans l'ordre des noms, éventuellement d'un seul statut. Une seule page.
Route : /v1/tools (GET).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
query | Map<String, ?> | oui | Paramètres de la chaîne de requête de la route. |
Retour : Page<JsonNode>. Réponse JSON décodée de l'opération « Lister les outils ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.update
JsonNode update(String name, Object body)
Modifier un outil. Modifie le propriétaire, la description ou le statut. Un changement de statut demande tenant_admin ou security_officer, les autres champs tenant_admin, developer ou application_owner ; la relation ReBAC editor est vérifiée. approved passe par une promotion (202 avec approval_id) ; les autres statuts s'appliquent aussitôt (200). Audité sous tool.update.
Route : /v1/tools/{name} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | String | oui | Nom de l'outil. | |
body | Object | oui | Champs à modifier ; ceux omis sont conservés. |
Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier un outil ».
Erreurs levées : les erreurs typées du transport (Erreurs).
ToolsClient.update
JsonNode update(String name, Object body, RequestOptions options)
Modifier un outil. Modifie le propriétaire, la description ou le statut. Un changement de statut demande tenant_admin ou security_officer, les autres champs tenant_admin, developer ou application_owner ; la relation ReBAC editor est vérifiée. approved passe par une promotion (202 avec approval_id) ; les autres statuts s'appliquent aussitôt (200). Audité sous tool.update.
Route : /v1/tools/{name} (PATCH).
| Nom | Type | Défaut | Requis | Description |
|---|---|---|---|---|
name | String | oui | Nom de l'outil. | |
body | Object | oui | Champs à modifier ; ceux omis sont conservés. | |
options | RequestOptions | oui | Options de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation). |
Retour : JsonNode. Réponse JSON décodée de l'opération « Modifier un outil ».
Erreurs levées : les erreurs typées du transport (Erreurs).