Skip to main content

io.enterpriseai.resources.MarketplaceClient

Source: sdks/java/enterprise-ai-java/src/main/java/io/enterpriseai/resources/MarketplaceClient.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 MarketplaceClient​

Marketplace publishers, packages and installations.

Constructor MarketplaceClient​

MarketplaceClient(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.

MarketplaceClient.advanceChange​

JsonNode advanceChange(String changeId, Object body)

Advance a change to the next stage. Moves the change to the next stage. Needs tenant_admin, developer or security_officer. Gates per target stage: 1. test: only the author (or tenant_admin) leaves draft (403 change_not_author). 2. security_review: evidence.tests must pass (passed > 0, no failed, no errors), else 422 change_evidence_missing. 3. business_approval: approval change.security_review by a security_officer. 4. staging: approval change.business_approval by a tenant_admin. 5. production: passing staging_smoke, then approval change.production with a quorum of two. 6. monitoring: passing production_smoke. Without approval_id, a gated stage answers 202 with the approval to obtain; call again with the approved id to get 200. The author never approves. A closed change answers 409 change_closed.

Route: /v1/marketplace/changes/{change_id}/advance (POST).

NameTypeDefaultRequiredDescription
changeIdStringyesIdentifier (UUID) of the change request.
bodyObjectyesEvidence to add and the approved request, when the stage needs one.

Returns: JsonNode. Decoded JSON answer of the operation "Advance a change to the next stage".

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

MarketplaceClient.apply​

JsonNode apply(String installationId)

Apply an approved installation. Executes the pending install or upgrade once its approval is approved: the policy and the preflight are checked again, the objects of the pack are created inside a savepoint, the objects of the former version that are no longer part of it are removed and a smoke test runs. A failed smoke test rolls everything back and answers 422 smoke_failed. Needs tenant_admin. 409 installation_state when nothing is pending. Audited as marketplace.install or marketplace.upgrade.

Route: /v1/marketplace/installations/{installation_id}/apply (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.

Returns: JsonNode. Decoded JSON answer of the operation "Apply an approved installation".

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

MarketplaceClient.apply​

JsonNode apply(String installationId, RequestOptions options)

Apply an approved installation. Executes the pending install or upgrade once its approval is approved: the policy and the preflight are checked again, the objects of the pack are created inside a savepoint, the objects of the former version that are no longer part of it are removed and a smoke test runs. A failed smoke test rolls everything back and answers 422 smoke_failed. Needs tenant_admin. 409 installation_state when nothing is pending. Audited as marketplace.install or marketplace.upgrade.

Route: /v1/marketplace/installations/{installation_id}/apply (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Apply an approved installation".

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

MarketplaceClient.authorize​

JsonNode authorize(String installationId, Object body)

Check a runtime permission. Runtime permission check used by the pack MCP servers and connectors: allowed only when the installation is installed, the permission was granted, is not suspended and is not an external export denied by the data protection settings. Otherwise 403 with permission_not_granted, permission_suspended, installation_suspended or external_export_denied, recorded as an authorize_denied event. Needs tenant_admin, developer, agent or service.

Route: /v1/marketplace/installations/{installation_id}/authorize (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
bodyObjectyesPermission scope to check.

Returns: JsonNode. Decoded JSON answer of the operation "Check a runtime permission".

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

MarketplaceClient.authorize​

JsonNode authorize(String installationId, Object body, RequestOptions options)

Check a runtime permission. Runtime permission check used by the pack MCP servers and connectors: allowed only when the installation is installed, the permission was granted, is not suspended and is not an external export denied by the data protection settings. Otherwise 403 with permission_not_granted, permission_suspended, installation_suspended or external_export_denied, recorded as an authorize_denied event. Needs tenant_admin, developer, agent or service.

Route: /v1/marketplace/installations/{installation_id}/authorize (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
bodyObjectyesPermission scope to check.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Check a runtime permission".

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

MarketplaceClient.createChange​

JsonNode createChange(Object body)

Open a change request. Opens a change of a prompt, skill, connector, rule, model, policy, tool, agent or pack at stage draft. Needs tenant_admin or developer; the policy change.create is evaluated. Audited as change.create.

Route: /v1/marketplace/changes (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesKind, object name, version and title of the change.

Returns: JsonNode. Decoded JSON answer of the operation "Open a change request".

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

MarketplaceClient.createPublisher​

JsonNode createPublisher(Object body)

Add a trusted publisher key. Registers a public signing key for the tenant; pack signatures are verified against the active keys. Needs tenant_admin or security_officer. An unreadable key answers 422 publisher_invalid_key. Audited as marketplace.publisher.add.

Route: /v1/marketplace/publishers (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesPublisher name and public key.

Returns: JsonNode. Decoded JSON answer of the operation "Add a trusted publisher key".

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

MarketplaceClient.createPublisher​

JsonNode createPublisher(Object body, RequestOptions options)

Add a trusted publisher key. Registers a public signing key for the tenant; pack signatures are verified against the active keys. Needs tenant_admin or security_officer. An unreadable key answers 422 publisher_invalid_key. Audited as marketplace.publisher.add.

Route: /v1/marketplace/publishers (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesPublisher name and public key.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Add a trusted publisher key".

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

MarketplaceClient.getChange​

JsonNode getChange(String changeId)

Get a change request. Returns the change with its stage, evidence, pending approval and history (one entry per transition with actor and time). 404 change_not_found.

Route: /v1/marketplace/changes/{change_id} (GET).

NameTypeDefaultRequiredDescription
changeIdStringyesIdentifier (UUID) of the change request.

Returns: JsonNode. Decoded JSON answer of the operation "Get a change request".

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

MarketplaceClient.getInstallation​

JsonNode getInstallation(String installationId)

Get an installation. Returns the installation: status, package and version, granted and suspended permissions, configuration, last preflight and smoke results, created objects and assets. 404 installation_not_found.

Route: /v1/marketplace/installations/{installation_id} (GET).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.

Returns: JsonNode. Decoded JSON answer of the operation "Get an installation".

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

MarketplaceClient.getPackage​

JsonNode getPackage(String name)

Get a package and its versions. Returns the package and every version, oldest first, with gate results and a vulnerability summary. 404 marketplace_package_not_found.

Route: /v1/marketplace/packages/{name} (GET).

NameTypeDefaultRequiredDescription
nameStringyesName of the package.

Returns: JsonNode. Decoded JSON answer of the operation "Get a package and its versions".

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

MarketplaceClient.getVersion​

JsonNode getVersion(String name, String version)

Get a package version. Returns one version: manifest, digest, file digests, signature and its status, licence, OCI reference, gate results, provenance status and production approval. The archive and the SBOM are not included. 404 marketplace_version_not_found.

Route: /v1/marketplace/packages/{name}/versions/{version} (GET).

NameTypeDefaultRequiredDescription
nameStringyesName of the package.
versionStringyesSemantic version, for example 1.2.0.

Returns: JsonNode. Decoded JSON answer of the operation "Get a package version".

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

MarketplaceClient.install​

JsonNode install(Object body)

Request the installation of a pack. Opens an installation request and answers 202 with the installation, the approval_id, the quorum and the preflight report. Needs tenant_admin. Steps: 1. The preflight runs (see POST /v1/marketplace/preflight); a failure answers 403 permission_unsafe, 422 config_invalid, 422 permission_not_requested, 409 package_suspended or 422 preflight_failed. 2. An approval marketplace.install is opened for tenant_admin or security_officer: quorum 1 by default, at least 2 when a sensitive permission is granted or the environment is prod. 3. Once approved, call POST .../installations/{id}/apply. 409 installation_exists when the package is already installed or suspended in this environment.

Route: /v1/marketplace/installations (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesPackage, version, environment, granted permissions, configuration and secret references.

Returns: JsonNode. Decoded JSON answer of the operation "Request the installation of a pack".

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

MarketplaceClient.install​

JsonNode install(Object body, RequestOptions options)

Request the installation of a pack. Opens an installation request and answers 202 with the installation, the approval_id, the quorum and the preflight report. Needs tenant_admin. Steps: 1. The preflight runs (see POST /v1/marketplace/preflight); a failure answers 403 permission_unsafe, 422 config_invalid, 422 permission_not_requested, 409 package_suspended or 422 preflight_failed. 2. An approval marketplace.install is opened for tenant_admin or security_officer: quorum 1 by default, at least 2 when a sensitive permission is granted or the environment is prod. 3. Once approved, call POST .../installations/{id}/apply. 409 installation_exists when the package is already installed or suspended in this environment.

Route: /v1/marketplace/installations (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesPackage, version, environment, granted permissions, configuration and secret references.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Request the installation of a pack".

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

MarketplaceClient.installationEvents​

JsonNode installationEvents(String installationId)

List the events of an installation. Lifecycle history of the installation, oldest first: requests, installs, upgrades, rollbacks, failed smoke tests, suspensions, resumptions, refused authorizations, with versions, outcome and actor. One page only.

Route: /v1/marketplace/installations/{installation_id}/events (GET).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.

Returns: JsonNode. Decoded JSON answer of the operation "List the events of an installation".

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

MarketplaceClient.listChanges​

JsonNode listChanges(Map<String, ?> query)

List the change requests. Change requests of the tenant, newest first, at most 200, optionally filtered by kind, reference and stage. Any tenant principal may call it.

Route: /v1/marketplace/changes (GET).

NameTypeDefaultRequiredDescription
queryMap<String, ?>yesQuery string parameters of the route.

Returns: JsonNode. Decoded JSON answer of the operation "List the change requests".

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

MarketplaceClient.listInstallations​

JsonNode listInstallations()

List the installations. Installations of the tenant, oldest first, each with package, version and created assets. One page only.

Route: /v1/marketplace/installations (GET).

This element takes no parameter.

Returns: JsonNode. Decoded JSON answer of the operation "List the installations".

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

MarketplaceClient.listInstallations​

JsonNode listInstallations(Map<String, ?> query)

List the installations. Installations of the tenant, oldest first, each with package, version and created assets. One page only.

Route: /v1/marketplace/installations (GET).

NameTypeDefaultRequiredDescription
queryMap<String, ?>yesQuery string parameters of the route.

Returns: JsonNode. Decoded JSON answer of the operation "List the installations".

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

MarketplaceClient.listPackages​

JsonNode listPackages()

List the packages. Packages of the catalogue in name order, with status, latest version, publisher and category. One page only.

Route: /v1/marketplace/packages (GET).

This element takes no parameter.

Returns: JsonNode. Decoded JSON answer of the operation "List the packages".

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

MarketplaceClient.listPackages​

JsonNode listPackages(Map<String, ?> query)

List the packages. Packages of the catalogue in name order, with status, latest version, publisher and category. One page only.

Route: /v1/marketplace/packages (GET).

NameTypeDefaultRequiredDescription
queryMap<String, ?>yesQuery string parameters of the route.

Returns: JsonNode. Decoded JSON answer of the operation "List the packages".

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

MarketplaceClient.listPublishers​

JsonNode listPublishers()

List the publishers. Trusted signing keys, by name: algorithm, status (active or revoked) and scope (platform for a key shared by every tenant, tenant for a key of this tenant). Public keys are not returned.

Route: /v1/marketplace/publishers (GET).

This element takes no parameter.

Returns: JsonNode. Decoded JSON answer of the operation "List the publishers".

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

MarketplaceClient.preflight​

JsonNode preflight(Object body)

Dry run the installation checks. Dry run of the installation checks, nothing is installed: package active, environment, configuration against the pack configSchema, version available (and in production for prod), platform compatibility, dependencies installed, archive digest, signature, permissions requested and safe, secret references of the connectors, approved model, no name conflict. Returns passed, every check, the granted, not granted and sensitive permissions, the approvals required and the data protection applied. Needs tenant_admin or security_officer. Audited as marketplace.preflight.

Route: /v1/marketplace/preflight (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesSame body as an installation request.

Returns: JsonNode. Decoded JSON answer of the operation "Dry run the installation checks".

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

MarketplaceClient.preflight​

JsonNode preflight(Object body, RequestOptions options)

Dry run the installation checks. Dry run of the installation checks, nothing is installed: package active, environment, configuration against the pack configSchema, version available (and in production for prod), platform compatibility, dependencies installed, archive digest, signature, permissions requested and safe, secret references of the connectors, approved model, no name conflict. Returns passed, every check, the granted, not granted and sensitive permissions, the approvals required and the data protection applied. Needs tenant_admin or security_officer. Audited as marketplace.preflight.

Route: /v1/marketplace/preflight (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesSame body as an installation request.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Dry run the installation checks".

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

MarketplaceClient.publishPackage​

JsonNode publishPackage(Object body)

Publish a package version. Publishes a pack archive as a new version (201). Needs tenant_admin or developer; the policy marketplace.publish is evaluated. Steps: 1. The archive is decoded (422 marketplace_archive_invalid) and scanned by ClamAV and YARA-X before unpacking (422 file_blocked, 503 file_scan_unavailable). 2. Every gate runs: schema, signature, SBOM, vulnerability scan, tests, evaluations, licence, permissions, documentation, secrets, provenance, privacy, security, approvals, configuration, resilience. Any failure answers 422 publication_gate_failed with the result of each gate. 3. The package is created on first publication. 409 package_suspended when its kill switch is on, 409 marketplace_version_exists for a version already published. Audited as marketplace.publish.

Route: /v1/marketplace/packages (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesThe pack archive and its supply chain evidence.

Returns: JsonNode. Decoded JSON answer of the operation "Publish a package version".

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

MarketplaceClient.publishPackage​

JsonNode publishPackage(Object body, RequestOptions options)

Publish a package version. Publishes a pack archive as a new version (201). Needs tenant_admin or developer; the policy marketplace.publish is evaluated. Steps: 1. The archive is decoded (422 marketplace_archive_invalid) and scanned by ClamAV and YARA-X before unpacking (422 file_blocked, 503 file_scan_unavailable). 2. Every gate runs: schema, signature, SBOM, vulnerability scan, tests, evaluations, licence, permissions, documentation, secrets, provenance, privacy, security, approvals, configuration, resilience. Any failure answers 422 publication_gate_failed with the result of each gate. 3. The package is created on first publication. 409 package_suspended when its kill switch is on, 409 marketplace_version_exists for a version already published. Audited as marketplace.publish.

Route: /v1/marketplace/packages (POST).

NameTypeDefaultRequiredDescription
bodyObjectyesThe pack archive and its supply chain evidence.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Publish a package version".

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

MarketplaceClient.rejectChange​

JsonNode rejectChange(String changeId, Object body)

Reject a change request. Closes the change at stage rejected from any open stage, with the reason kept in history. Needs tenant_admin or security_officer. 409 change_closed if already closed. Audited as change.reject.

Route: /v1/marketplace/changes/{change_id}/reject (POST).

NameTypeDefaultRequiredDescription
changeIdStringyesIdentifier (UUID) of the change request.
bodyObjectyesReason of the rejection.

Returns: JsonNode. Decoded JSON answer of the operation "Reject a change request".

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

MarketplaceClient.revokePublisher​

JsonNode revokePublisher(String name)

Revoke a publisher. Revokes every key of the tenant registered under this name; signatures made with them no longer verify. Needs tenant_admin or security_officer. 404 publisher_not_found. Platform keys cannot be revoked here. Audited as marketplace.publisher.revoke.

Route: /v1/marketplace/publishers/{name}/revoke (POST).

NameTypeDefaultRequiredDescription
nameStringyesName of the publisher.

Returns: JsonNode. Decoded JSON answer of the operation "Revoke a publisher".

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

MarketplaceClient.revokePublisher​

JsonNode revokePublisher(String name, RequestOptions options)

Revoke a publisher. Revokes every key of the tenant registered under this name; signatures made with them no longer verify. Needs tenant_admin or security_officer. 404 publisher_not_found. Platform keys cannot be revoked here. Audited as marketplace.publisher.revoke.

Route: /v1/marketplace/publishers/{name}/revoke (POST).

NameTypeDefaultRequiredDescription
nameStringyesName of the publisher.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Revoke a publisher".

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

MarketplaceClient.rollback​

JsonNode rollback(String installationId)

Roll back to the previous version. Reinstalls the previous version with its previous grant, inside a savepoint with a smoke test (422 smoke_failed keeps the current version). Needs tenant_admin. 409 installation_state unless installed; 409 rollback_unavailable when there is no previous version. Audited as marketplace.rollback.

Route: /v1/marketplace/installations/{installation_id}/rollback (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.

Returns: JsonNode. Decoded JSON answer of the operation "Roll back to the previous version".

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

MarketplaceClient.rollback​

JsonNode rollback(String installationId, RequestOptions options)

Roll back to the previous version. Reinstalls the previous version with its previous grant, inside a savepoint with a smoke test (422 smoke_failed keeps the current version). Needs tenant_admin. 409 installation_state unless installed; 409 rollback_unavailable when there is no previous version. Audited as marketplace.rollback.

Route: /v1/marketplace/installations/{installation_id}/rollback (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Roll back to the previous version".

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

MarketplaceClient.sbom​

JsonNode sbom(String name, String version)

Get the SBOM of a version. Returns the software bill of materials stored at publication, its digest and the vulnerability scan report.

Route: /v1/marketplace/packages/{name}/versions/{version}/sbom (GET).

NameTypeDefaultRequiredDescription
nameStringyesName of the package.
versionStringyesSemantic version, for example 1.2.0.

Returns: JsonNode. Decoded JSON answer of the operation "Get the SBOM of a version".

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

MarketplaceClient.setInstallationStatus​

JsonNode setInstallationStatus(String installationId, Object body)

Suspend or resume an installation. Needs tenant_admin or security_officer. - status: suspended: immediate. Without permissions, the whole installation is suspended (tools blocked, agents suspended, MCP servers disabled, assets suspended); with permissions, only those granted capabilities (422 permission_not_granted for others). Answers 200. - status: installed: resume. Without approval_id, opens a marketplace.resume approval with a quorum of two and answers 202; with the approved id, lifts the suspension and answers 200. Refused with 409 package_suspended while the package kill switch is on. 409 installation_state for a state that does not allow the change.

Route: /v1/marketplace/installations/{installation_id}/status (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
bodyObjectyesTarget status, reason, capabilities to suspend and approval for a resumption.

Returns: JsonNode. Decoded JSON answer of the operation "Suspend or resume an installation".

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

MarketplaceClient.setInstallationStatus​

JsonNode setInstallationStatus(String installationId, Object body, RequestOptions options)

Suspend or resume an installation. Needs tenant_admin or security_officer. - status: suspended: immediate. Without permissions, the whole installation is suspended (tools blocked, agents suspended, MCP servers disabled, assets suspended); with permissions, only those granted capabilities (422 permission_not_granted for others). Answers 200. - status: installed: resume. Without approval_id, opens a marketplace.resume approval with a quorum of two and answers 202; with the approved id, lifts the suspension and answers 200. Refused with 409 package_suspended while the package kill switch is on. 409 installation_state for a state that does not allow the change.

Route: /v1/marketplace/installations/{installation_id}/status (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
bodyObjectyesTarget status, reason, capabilities to suspend and approval for a resumption.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Suspend or resume an installation".

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

MarketplaceClient.setPackageStatus​

JsonNode setPackageStatus(String name, Object body)

Set the kill switch of a package. Needs tenant_admin or security_officer. - status: suspended: immediate. Every installed installation of the package is suspended; installs, upgrades, publications and promotions are refused. Answers 200 with suspended_installations. - status: active: lifts the kill switch. Without approval_id, opens a marketplace.package.resume approval with a quorum of two (202); with the approved id, the package and the installations it suspended resume (200 with resumed_installations). 409 installation_state when lifting a package that is not suspended.

Route: /v1/marketplace/packages/{name}/status (POST).

NameTypeDefaultRequiredDescription
nameStringyesName of the package.
bodyObjectyesTarget status, reason and approval for a lifting.

Returns: JsonNode. Decoded JSON answer of the operation "Set the kill switch of a package".

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

MarketplaceClient.setPackageStatus​

JsonNode setPackageStatus(String name, Object body, RequestOptions options)

Set the kill switch of a package. Needs tenant_admin or security_officer. - status: suspended: immediate. Every installed installation of the package is suspended; installs, upgrades, publications and promotions are refused. Answers 200 with suspended_installations. - status: active: lifts the kill switch. Without approval_id, opens a marketplace.package.resume approval with a quorum of two (202); with the approved id, the package and the installations it suspended resume (200 with resumed_installations). 409 installation_state when lifting a package that is not suspended.

Route: /v1/marketplace/packages/{name}/status (POST).

NameTypeDefaultRequiredDescription
nameStringyesName of the package.
bodyObjectyesTarget status, reason and approval for a lifting.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Set the kill switch of a package".

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

MarketplaceClient.setProduction​

JsonNode setProduction(String name, String version, Object body)

Promote a version to production. Production gate, required to install a version in prod. Needs tenant_admin or security_officer. Steps: 1. Without approval_id: every stored gate must have passed, the signature must still verify and an OCI artifact digest must be attached (else 422 publication_gate_failed); then a marketplace.promote approval is opened with a quorum of at least two and the answer is 202 with the checks. 2. With the approved approval_id: the version becomes production (200). A version already in production answers 200 at once; 409 package_suspended while the kill switch is on.

Route: /v1/marketplace/packages/{name}/versions/{version}/production (POST).

NameTypeDefaultRequiredDescription
nameStringyesName of the package.
versionStringyesSemantic version, for example 1.2.0.
bodyObjectyesApproved request, on the second call.

Returns: JsonNode. Decoded JSON answer of the operation "Promote a version to production".

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

MarketplaceClient.setProduction​

JsonNode setProduction(String name, String version, Object body, RequestOptions options)

Promote a version to production. Production gate, required to install a version in prod. Needs tenant_admin or security_officer. Steps: 1. Without approval_id: every stored gate must have passed, the signature must still verify and an OCI artifact digest must be attached (else 422 publication_gate_failed); then a marketplace.promote approval is opened with a quorum of at least two and the answer is 202 with the checks. 2. With the approved approval_id: the version becomes production (200). A version already in production answers 200 at once; 409 package_suspended while the kill switch is on.

Route: /v1/marketplace/packages/{name}/versions/{version}/production (POST).

NameTypeDefaultRequiredDescription
nameStringyesName of the package.
versionStringyesSemantic version, for example 1.2.0.
bodyObjectyesApproved request, on the second call.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Promote a version to production".

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

MarketplaceClient.supervision​

JsonNode supervision(String installationId)

Supervise an installed pack. Activity, quality, costs and incidents of an installed pack, aggregated from the objects it created: tool invocations and runs per state, refused authorizations, evaluation results, last smoke result, run success rate, run costs per currency, and the incidents naming its objects (50 most recent).

Route: /v1/marketplace/installations/{installation_id}/supervision (GET).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.

Returns: JsonNode. Decoded JSON answer of the operation "Supervise an installed pack".

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

MarketplaceClient.supervision​

JsonNode supervision(String installationId, RequestOptions options)

Supervise an installed pack. Activity, quality, costs and incidents of an installed pack, aggregated from the objects it created: tool invocations and runs per state, refused authorizations, evaluation results, last smoke result, run success rate, run costs per currency, and the incidents naming its objects (50 most recent).

Route: /v1/marketplace/installations/{installation_id}/supervision (GET).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Supervise an installed pack".

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

MarketplaceClient.uninstall​

JsonNode uninstall(String installationId)

Uninstall a pack. Removes every object and asset the installation created and sets it to uninstalled (grants, suspensions and previous version cleared). Allowed from installed, failed, pending_approval or suspended (else 409 installation_state). Needs tenant_admin; the policy marketplace.uninstall is evaluated. The answer lists removed. Audited as marketplace.uninstall.

Route: /v1/marketplace/installations/{installation_id}/uninstall (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.

Returns: JsonNode. Decoded JSON answer of the operation "Uninstall a pack".

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

MarketplaceClient.uninstall​

JsonNode uninstall(String installationId, RequestOptions options)

Uninstall a pack. Removes every object and asset the installation created and sets it to uninstalled (grants, suspensions and previous version cleared). Allowed from installed, failed, pending_approval or suspended (else 409 installation_state). Needs tenant_admin; the policy marketplace.uninstall is evaluated. The answer lists removed. Audited as marketplace.uninstall.

Route: /v1/marketplace/installations/{installation_id}/uninstall (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Uninstall a pack".

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

MarketplaceClient.upgrade​

JsonNode upgrade(String installationId, Object body)

Request the upgrade of an installation. Opens an upgrade request to a higher version (202 with approval, quorum and preflight), then apply it with POST .../apply once approved. The installation must be installed and the version strictly higher (else 409 installation_state). Configuration and secret references default to the current ones. Needs tenant_admin. Preflight failures answer as for an installation request.

Route: /v1/marketplace/installations/{installation_id}/upgrade (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
bodyObjectyesTarget version, granted permissions, configuration and secret references.

Returns: JsonNode. Decoded JSON answer of the operation "Request the upgrade of an installation".

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

MarketplaceClient.upgrade​

JsonNode upgrade(String installationId, Object body, RequestOptions options)

Request the upgrade of an installation. Opens an upgrade request to a higher version (202 with approval, quorum and preflight), then apply it with POST .../apply once approved. The installation must be installed and the version strictly higher (else 409 installation_state). Configuration and secret references default to the current ones. Needs tenant_admin. Preflight failures answer as for an installation request.

Route: /v1/marketplace/installations/{installation_id}/upgrade (POST).

NameTypeDefaultRequiredDescription
installationIdStringyesIdentifier (UUID) of the installation.
bodyObjectyesTarget version, granted permissions, configuration and secret references.
optionsRequestOptionsyesPer call options (idempotency key, traceparent, headers, abort signal).

Returns: JsonNode. Decoded JSON answer of the operation "Request the upgrade of an installation".

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