io.enterpriseai.resources.SkillsClient
Source: sdks/java/enterprise-ai-java/src/main/java/io/enterpriseai/resources/SkillsClient.java. Back to the Java SDK reference index.
This page is generated by tools/docs/gen_sdk_reference.py from the SDK sources and the OpenAPI text folders. Do not edit it by hand: change the source and regenerate.
Class SkillsClient
Signed skills and Skill Loader.
Constructor SkillsClient
SkillsClient(Transport transport)
Creates the client on the shared transport; EnterpriseAIClient builds it and exposes it through the accessor of the same name.
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
transport | Transport | yes | Transport shared by the sub-clients of one client. |
SkillsClient.create
JsonNode create(Object body)
Register a skill. Applies a Skill manifest: creates the skill or replaces it (a replaced skill goes back to draft, a blocked one stays blocked). The digest and the signature are verified at once: the skill becomes approved when they verify. A Git or OCI artifact needs artifact.digest (422 invalid_manifest). apply_status is created or updated. Needs tenant_admin, developer or application_owner; the caller becomes ReBAC owner. Audited as skill.apply.
Route: /v1/skills (POST).
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
body | Object | yes | Skill manifest (kind: Skill, metadata with name, version and owner, spec with description, instructions, permissions, signature and optional artifact). |
Returns: JsonNode. Decoded JSON answer of the operation "Register a skill".
Raises: the typed errors of the transport (Errors).
SkillsClient.create
JsonNode create(Object body, RequestOptions options)
Register a skill. Applies a Skill manifest: creates the skill or replaces it (a replaced skill goes back to draft, a blocked one stays blocked). The digest and the signature are verified at once: the skill becomes approved when they verify. A Git or OCI artifact needs artifact.digest (422 invalid_manifest). apply_status is created or updated. Needs tenant_admin, developer or application_owner; the caller becomes ReBAC owner. Audited as skill.apply.
Route: /v1/skills (POST).
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
body | Object | yes | Skill manifest (kind: Skill, metadata with name, version and owner, spec with description, instructions, permissions, signature and optional artifact). | |
options | RequestOptions | yes | Per call options (idempotency key, traceparent, headers, abort signal). |
Returns: JsonNode. Decoded JSON answer of the operation "Register a skill".
Raises: the typed errors of the transport (Errors).
SkillsClient.get
JsonNode get(String name)
Get a skill. Returns the skill with its manifest, content, digest, signature and verification. Needs the ReBAC relation viewer. 404 skill_not_found.
Route: /v1/skills/{name} (GET).
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
name | String | yes | Name of the skill. |
Returns: JsonNode. Decoded JSON answer of the operation "Get a skill".
Raises: the typed errors of the transport (Errors).
SkillsClient.list
Page<JsonNode> list()
List the skills. Skills of the tenant in name order, with version, owner, digest, verification result and status. One page only.
Route: /v1/skills (GET).
This element takes no parameter.
Returns: Page<JsonNode>. A Page: One page of a cursor paginated collection ({"items": [...], "next_cursor": "..."|null}).
Raises: the typed errors of the transport (Errors).
SkillsClient.load
JsonNode load(String name)
Load a skill for an agent. Skill Loader: returns what a runtime needs to use the skill (instructions of an inline skill, artifact, entrypoint, permissions, dependencies, signer). Needs the ReBAC relation can_invoke. Refusals, each audited as skill.load denied: - 403 skill_blocked: the skill is blocked or deprecated; - 409 skill_digest_mismatch: the content no longer matches its digest; - 403 skill_unsigned: the signature does not verify; - 403 skill_not_granted: with agent, the skill is not listed in the agent manifest; - 403 skill_permission_denied: the skill asks for scopes the agent lacks, or its classification ceiling is below the agent one.
Route: /v1/skills/{name}/load (GET).
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
name | String | yes | Name of the skill. |
Returns: JsonNode. Decoded JSON answer of the operation "Load a skill for an agent".
Raises: the typed errors of the transport (Errors).
SkillsClient.load
JsonNode load(String name, Map<String, ?> query)
Load a skill for an agent. Skill Loader: returns what a runtime needs to use the skill (instructions of an inline skill, artifact, entrypoint, permissions, dependencies, signer). Needs the ReBAC relation can_invoke. Refusals, each audited as skill.load denied: - 403 skill_blocked: the skill is blocked or deprecated; - 409 skill_digest_mismatch: the content no longer matches its digest; - 403 skill_unsigned: the signature does not verify; - 403 skill_not_granted: with agent, the skill is not listed in the agent manifest; - 403 skill_permission_denied: the skill asks for scopes the agent lacks, or its classification ceiling is below the agent one.
Route: /v1/skills/{name}/load (GET).
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
name | String | yes | Name of the skill. | |
query | Map<String, ?> | yes | Query string parameters of the route. |
Returns: JsonNode. Decoded JSON answer of the operation "Load a skill for an agent".
Raises: the typed errors of the transport (Errors).
SkillsClient.setStatus
JsonNode setStatus(String name, Object body)
Change the status of a skill. approved goes through a promotion: an approval is opened for tenant_admin or security_officer and the answer is 202 with approval_id and status: pending_approval. The other statuses (draft, restricted, deprecated, blocked) apply at once (200). Needs tenant_admin or security_officer and the ReBAC relation editor. Audited as skill.status.
Route: /v1/skills/{name}/status (POST).
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
name | String | yes | Name of the skill. | |
body | Object | yes | Target status and reason. |
Returns: JsonNode. Decoded JSON answer of the operation "Change the status of a skill".
Raises: the typed errors of the transport (Errors).
SkillsClient.setStatus
JsonNode setStatus(String name, Object body, RequestOptions options)
Change the status of a skill. approved goes through a promotion: an approval is opened for tenant_admin or security_officer and the answer is 202 with approval_id and status: pending_approval. The other statuses (draft, restricted, deprecated, blocked) apply at once (200). Needs tenant_admin or security_officer and the ReBAC relation editor. Audited as skill.status.
Route: /v1/skills/{name}/status (POST).
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
name | String | yes | Name of the skill. | |
body | Object | yes | Target status and reason. | |
options | RequestOptions | yes | Per call options (idempotency key, traceparent, headers, abort signal). |
Returns: JsonNode. Decoded JSON answer of the operation "Change the status of a skill".
Raises: the typed errors of the transport (Errors).
SkillsClient.verify
JsonNode verify(String name)
Verify a skill signature. Checks again the content digest and the signature against the trusted keys and stores the result: verified, method, signer, reason. A verified skill becomes approved, otherwise draft (a blocked skill stays blocked). Needs tenant_admin, developer, application_owner or security_officer and the ReBAC relation editor. Audited as skill.verify.
Route: /v1/skills/{name}/verify (POST).
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
name | String | yes | Name of the skill. |
Returns: JsonNode. Decoded JSON answer of the operation "Verify a skill signature".
Raises: the typed errors of the transport (Errors).