Search documentation
karat

+

K

User Documentation ↗
Version 3.0Beta

Create Marketplace Installation Job

POST/api/v3/platform/marketplaceInstallationJobs
Warning

This endpoint is in preview and may be modified or removed at any time. To use this endpoint, add preview=true to the request query parameters.

Create a job to upgrade existing installations to their target versions.

The operation returns before preparation and validation complete. Poll the job's status to track progress.

Specify 1 to 10 distinct installations, with at most one installation per product. Targets must share a namespace and marketplace and have at most one resulting ontology after applying overrides.

For each target, values and explicitlyUnset replace all previously provided values and explicit unsets.

Inputs omitted from both fields may be fulfilled by defaults, automatic mapping, or recommendations. Use discoverInputs to inspect available sources.

This operation is not idempotent. Repeating it may create another draft or return a conflict.

Third-party applications using this endpoint via OAuth2 must request the following operation scope: api:v3:marketplace-installation-job:write:create.

Query parameters

preview
booleanoptional

Enables the use of preview functionality.

Request body

CreateMarketplaceInstallationJobRequest
object
Hide child attributes

Hide child attributes

installations
list<InstallationJobTarget>optional

Existing installations to upgrade to their target versions, along with their input mappings.

Show child attributes

Show child attributes

recommendations
list<RecommendationStrategy>optional

Strategies for selecting other installations whose outputs can fulfill the targets' inputs. Targets in this request may still supply inputs to one another, independent of recommendation strategy.

Show child attributes

Show child attributes

submissionMode
unionoptional

If omitted, submit with NON_BLOCKING_ERRORS tolerance and ABORT handling.

Show child attributes

Show child attributes

Response body

MarketplaceInstallationJob
object

An attempt to upgrade one or more existing product installations. The same RID identifies the draft and its submitted job.

Hide child attributes

Hide child attributes

rid
string

The RID of a Marketplace installation job or its draft.

status
string (enum)

Values:

  • ABORTED: The draft or running job was aborted. This can happen either via an explicit abort call or from a job submission failure. An aborted draft remains queryable until automatic cleanup, after which it is no longer found. Terminal status.
  • ABORTING: Cancellation has been requested for the submitted installation job, but it has not yet reached a terminal state. Continue polling.
  • BUILDING: Resources have been installed and dataset builds are being submitted or awaited. Continue polling.
  • FAILED: The installation job failed. Terminal.
  • IDLE_DRAFT: The draft is retained without running an installation job, either by request or because submission was prevented. Further action is required to submit it; polling alone will not advance it.
  • IN_PROGRESS: The installation job is executing. Continue polling.
  • PREPARING: The draft is resolving inputs, validating, or being submitted. Continue polling.
  • SUCCEEDED: The installation job completed successfully. Terminal.

Enum values: PREPARING, IDLE_DRAFT, ABORTING, IN_PROGRESS, BUILDING, ABORTED, SUCCEEDED, FAILED

Examples

Request

Copied!
1 2 3 4 5 curl -X POST \ \t-H "Content-type: application/json" \ \t-H "Authorization: Bearer $TOKEN" \ "https://$HOSTNAME/api/v3/platform/marketplaceInstallationJobs?preview=true" \ -d '{"installations":[{"installationRid":"ri.marketplace.main.block-set-installation.5b2d8f31-6c42-4a7e-9a13-8e0a3e6d9c52","targetVersion":{"type":"latest"},"overrides":{"ontology":{"ontologyRid":"ri.ontology.main.ontology.c1e96527-1a20-4c7b-b17a-b3c7cfc8f024","type":"set"}},"inputs":{"values":{"myDataset":{"type":"rid","rid":"ri.foundry.main.dataset.2f6d7c83-9e41-4b5a-8d20-1c7a34f0e6b9"},"myDataset.address":{"type":"string","value":"address"}},"explicitlyUnset":["myDataset.postcode"]}}],"recommendations":[{"suffixFilter":"shared","type":"sameNamespace"}],"submissionMode":{"type":"draft"}}'

Response

Copied!
1 2 3 4 { "rid": "ri.marketplace.main.installation-job.1a80ebf8-341a-4d9e-98e2-9fd4ba7c14d8", "status": "PREPARING" }

Error responses

Error Name
InstallationUninstallStartedError CodeCONFLICT
Status Code409
DescriptionUninstall has begun for the target installation. Create a new installation to install the product again.
ParametersinstallationRid
AmbiguousInstallationRecommendationError CodeINVALID_ARGUMENT
Status Code400
DescriptionA namespace recommendation strategy matches multiple installations of the same linked product. Narrow its suffix filter or use explicit recommendations. Overlapping recommendation inputs or sources are reported separately as `InstallationError` entries in the discovery response.
ParametersproductId, installationRids
ConflictingInstallationRecommendationError CodeINVALID_ARGUMENT
Status Code400
DescriptionA recommendation supplies a product that is also included in the requested targets. Remove that recommendation.
ParametersrecommendationInstallationRid, requestedInstallationRid
DuplicateInstallationJobInstallationsError CodeINVALID_ARGUMENT
Status Code400
DescriptionAn installation occurs more than once in the target list.
ParametersinstallationRids
InstallationInputNotFoundError CodeINVALID_ARGUMENT
Status Code400
DescriptionAn input API name is not present in the selected product version.
ParametersinstallationRid, apiName
InstallationTargetVersionNotFoundError CodeNOT_FOUND
Status Code404
DescriptionThe requested target version could not be found within the installation product and marketplace.
ParametersinstallationRid, targetVersion
InstallationInputApiNamesNotEnabledError CodeINVALID_ARGUMENT
Status Code400
DescriptionOne or more installations have product inputs without API names. Enable input API name generation for those products before interacting with them.
ParametersinstallationRids
MissingInstallationInputParentValueError CodeINVALID_ARGUMENT
Status Code400
DescriptionA child input with a value requires its parent to have a value in `inputs.values` for the same installation.
ParametersinstallationRid, childApiName, parentApiName
CreateInstallationJobPermissionDeniedError CodePERMISSION_DENIED
Status Code403
DescriptionThe request token cannot prepare or submit a job for one or more target installations or dependencies.
ParametersinstallationRids
MarketplaceInstallationNotFoundError CodeNOT_FOUND
Status Code404
Description
ParametersmarketplaceInstallationRid
InstallationJobMarketplaceConstraintViolatedError CodeINVALID_ARGUMENT
Status Code400
DescriptionThe target products must belong to a single marketplace.
ParametersinstallationRids
MissingInstallationJobInstallationsError CodeINVALID_ARGUMENT
Status Code400
DescriptionAt least one installation target must be supplied.
Parameters
InstallationJobNamespaceConstraintViolatedError CodeINVALID_ARGUMENT
Status Code400
DescriptionThe target installations must belong to a single namespace.
ParametersinstallationRids
InvalidInstallationInputError CodeINVALID_ARGUMENT
Status Code400
DescriptionAn input value could not be converted for the selected product version. The error reason does not contain the supplied value.
ParametersinstallationRid, apiName, reason
InstallationDraftAlreadyExistsError CodeCONFLICT
Status Code409
DescriptionThe caller already has a preparing or idle draft for a target installation. Complete or abort the existing draft before preparing another job or discovering inputs for that installation.
ParametersinstallationRid, existingInstallationJobRid
DuplicateInstallationJobProductsError CodeINVALID_ARGUMENT
Status Code400
DescriptionMore than one target installation uses the same product.
ParametersproductId, installationRids
ConflictingInstallationInputIntentError CodeINVALID_ARGUMENT
Status Code400
DescriptionAn input name occurs more than once in `explicitlyUnset` or occurs in both `values` and `explicitlyUnset` for the same installation.
ParametersinstallationRid, apiName
ConflictingInstallationJobError CodeCONFLICT
Status Code409
DescriptionAn installation targeted for submission already has a running job. Draft mode may still prepare a draft.
ParametersinstallationRids
MaxInstallationJobInstallationsCountExceededError CodeINVALID_ARGUMENT
Status Code400
DescriptionThe number of installation targets exceeds the maximum supported by this operation.
ParametersinstallationsCount, maxInstallationsCount
InstallationJobOntologyConstraintViolatedError CodeINVALID_ARGUMENT
Status Code400
DescriptionThe target installations must have at most one resulting ontology after applying location overrides.
ParametersinstallationRids
InvalidInstallationTargetVersionError CodeINVALID_ARGUMENT
Status Code400
DescriptionThe target semantic version must be an exact major.minor.patch version with non-negative integer components and no leading zeros. Each component must be at most 2⁵³ - 2 (9,007,199,254,740,990). Version ranges, wildcards, prerelease identifiers, and build metadata are not supported.
Parametersversion