Skip to main content

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.

note

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.

NameTypeDefaultRequiredDescription
transportTransportyesTransport 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).

NameTypeDefaultRequiredDescription
bodyObjectyesSkill 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).

NameTypeDefaultRequiredDescription
bodyObjectyesSkill manifest (kind: Skill, metadata with name, version and owner, spec with description, instructions, permissions, signature and optional artifact).
optionsRequestOptionsyesPer 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).

NameTypeDefaultRequiredDescription
nameStringyesName 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).

NameTypeDefaultRequiredDescription
nameStringyesName 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).

NameTypeDefaultRequiredDescription
nameStringyesName of the skill.
queryMap<String, ?>yesQuery 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).

NameTypeDefaultRequiredDescription
nameStringyesName of the skill.
bodyObjectyesTarget 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).

NameTypeDefaultRequiredDescription
nameStringyesName of the skill.
bodyObjectyesTarget status and reason.
optionsRequestOptionsyesPer 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).

NameTypeDefaultRequiredDescription
nameStringyesName of the skill.

Returns: JsonNode. Decoded JSON answer of the operation "Verify a skill signature".

Raises: the typed errors of the transport (Errors).