Skip to main content

Provisioning Coordinator API

note

Read this page in wide view mode from here

Provisioning Coordinator API (2.2.0)

The Provisioning Coordinator is the module responsible for coordinating all the provisioning tasks of resources within Witboost.

It interacts with Tech Adapters to deploy and undeploy resources to the underlying infrastructure.

API Usage

The Provisioning Coordinator API is used to validate and execute provisioning plans, as well as to retrieve the status of a provisioning operation. It is also the central point for updating Access Control Lists on the infrastructure, always by interacting with Tech Adapters.

ProvisioningCoordinator

All the data product related operations

Validate a deployment request

Request Body schema: application/json
required

A deployment request descriptor wrapped as a string into a simple object

descriptor
required
string

Responses

Request samples

Content type
application/json
{
  • "descriptor": "string"
}

Response samples

Content type
application/json
"string"

Validate a deployment request

path Parameters
token
required
string

token that identifies the request

Responses

Response samples

Content type
application/json
{
  • "status": "RUNNING",
  • "validationSummaryStatus": {
    }
}

Retrieve the provisioning status of a deployment unit in a given environment

path Parameters
deployment-unit-id
required
string
Example: my-system:2
query Parameters
environment
required
string
Example: environment=development
include-descriptor
required
boolean
Default: false

Whether the response should include the deployed deployment unit descriptor

Responses

Response samples

Content type
application/json
{
  • "status": "DEPLOYED",
  • "provisioningDetails": {
    }
}

Retrieve the provisioning status of a deployment unit component in a given environment

path Parameters
deployment-unit-id
required
string
Example: my-system:2
component-id
required
string
Example: my-component-1
query Parameters
environment
required
string
Example: environment=development
include-descriptor
required
boolean
Default: false

Whether the response should include the deployment unit descriptor

Responses

Response samples

Content type
application/json
{
  • "status": "DEPLOYED",
  • "provisioningDetails": {
    }
}

Computes the preview of all the deploy/undeploy operations that will be executed on the different components of a deployment unit

path Parameters
deployment-unit-id
required
string
Example: my-system:2
query Parameters
environment
required
string
Example: environment=development
autofill-target-status
boolean
Default: false
  • if true - the targetStatus array in the request body will be filled with all the components in the provided descriptor (including the root-component in case of deployment unit level provisioning) that are not already specified. The auto-generated target status value will try to preserve the current component provisioning status, if it is not corrupt.

  • if false - the targetStatus array in the request body must include all the components in the descriptor (including the root-component in case of deployment unit level provisioning). Otherwise, an error will be returned.

Request Body schema: application/json
required

Provisioning request

descriptor
required
object

Deployment unit descriptor

required
Array of objects

Desired provisioning status on the different components

removeData
boolean
Default: false

Used to indicate to the tech adapters of components that are going to be undeployed, whether the underlying infrastructural data are to be removed as well. Actions UNDEPLOY and UNDEPLOY_AND_REMOVE_DATA in targetStatus overwrite this indication at component-level

preventRedeploy
boolean
Default: false

If true, when a component is already deployed and its descriptor has remained unchanged, it will not be marked as to redeploy. Actions DEPLOY and NO_ACTION in targetStatus overwrite this indication at component-level

Responses

Request samples

Content type
application/json
{
  • "descriptor": {
    },
  • "targetStatus": [
    ],
  • "removeData": false,
  • "preventRedeploy": false
}

Response samples

Content type
application/json
{
  • "outcome": "OK",
  • "operations": [
    ],
  • "conflictingOperations": [ ]
}

Validates and executes a provisioning plan

path Parameters
deployment-unit-id
required
string
Example: my-system:2
query Parameters
environment
required
string
Example: environment=development
unsafe
boolean
Default: false

If set to false, the request body is required to specify the desired provisioning status for each component in the descriptor. When set to true, any missing target status indications will be automatically inferred by trying to preserve the current provisioning status of the component.

Request Body schema: application/json
required

Provisioning request

descriptor
required
object

Deployment unit descriptor

required
Array of objects

Desired provisioning status on the different components

removeData
boolean
Default: false

Used to indicate to the tech adapters of components that are going to be undeployed, whether the underlying infrastructural data are to be removed as well. Actions UNDEPLOY and UNDEPLOY_AND_REMOVE_DATA in targetStatus overwrite this indication at component-level

preventRedeploy
boolean
Default: false

If true, when a component is already deployed and its descriptor has remained unchanged, it will not be marked as to redeploy. Actions DEPLOY and NO_ACTION in targetStatus overwrite this indication at component-level

Responses

Request samples

Content type
application/json
{
  • "descriptor": {
    },
  • "targetStatus": [
    ],
  • "removeData": false,
  • "preventRedeploy": false
}

Response samples

Content type
application/json
"aa53de04-f563-4bd3-9407-fb963a00d26b"

Terminates a running provisioning operation on the provided deployment unit

Interrupts any ongoing provisioning operation on the provided deployment unit. If the operation is associated with an active execution plan, the termination request will seamlessly pass to the plan. This last scenario mirrors a direct invocation of the v1/execution-plans/{token}/terminate endpoint.

path Parameters
deployment-unit-id
required
string
Example: my-system:2
query Parameters
environment
required
string
Example: environment=development
mode
string
Default: "safe"
Enum: "safe" "forced"
Example: mode=safe
  • safe - when the operation is linked to an active execution plan, all running tasks within the plan will receive an abort signal, prompting the plan to wait until each task undergoes a managed termination routine. If certain tasks do not support termination, the plan will wait until they are finished. The execution of tasks in a waiting status will not be prevented.
  • forced - when the operation is linked to an active execution plan, the plan's execution will be abruptly halted without the transmission of any abort signals.

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "code": "string",
  • "userMessage": "string",
  • "input": "string",
  • "inputErrorField": "string",
  • "moreInfo": {
    }
}

Search for provisioning operations

Returns a list of provisioning operations matching the provided filter criteria, ordered by start time

query Parameters
environment
string
Example: environment=development,production

Filter by environment (comma-separated list)

status
string
Example: status=SUCCEEDED,FAILED

Filter by provisioning operation status (comma-separated list).
Available values: SCHEDULED, RUNNING, SUCCEEDED, FAILED, NOT_STARTED

include-descriptors
boolean
Default: false

Whether to include deployment unit descriptors in the result

sort-order
string
Default: "desc"
Enum: "asc" "desc"

Sort order by start time

start-time-after
string <date-time>
Example: start-time-after=2022-01-01T00:00:00Z

Filter for operations that started after the specified time (exclusive). Use this as a cursor when sort-order is set to asc.

start-time-before
string <date-time>
Example: start-time-before=2022-01-01T00:00:00Z

Filter for operations that started before the specified time (exclusive). Use this as a cursor when sort-order is set to desc.

limit
integer
Default: 20

Maximum number of results to return

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Validate a deployment request

Request Body schema: application/json
required

A deployment request descriptor wrapped as a string into a simple object

descriptor
required
string

Data Product descriptor in yaml format

removeData
boolean
Default: false

If true, when a component is undeployed, its underlying data will also be deleted

Responses

Request samples

Content type
application/json
{
  • "descriptor": "string",
  • "removeData": false
}

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Fetching logs for the specified provisioning plan

path Parameters
provisioning_plan_id
required
string

The id of the plan for which we want to fetch the logs

query Parameters
level
string

Filter for logs severity level to be displayed

task_id
string

Filter for the Id of the task that generated the logs to be retrieved

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Deploy a data product starting from its descriptor Deprecated

Deprecation notice: Replaced by v2/deployment-units/{deployment-unit-id}/provisioning

Request Body schema: application/json
required

A data product descriptor wrapped as a string into a simple object

descriptor
required
string

Data Product descriptor in yaml format

removeData
boolean
Default: false

If true, when a component is undeployed, its underlying data will also be deleted

Responses

Request samples

Content type
application/json
{
  • "descriptor": "string",
  • "removeData": false
}

Response samples

Content type
application/json
"string"

Undeploy a data product starting from its descriptor Deprecated

Deprecation notice: Replaced by v2/deployment-units/{deployment-unit-id}/provisioning

Request Body schema: application/json
required

A data product descriptor wrapped as a string into a simple object

descriptor
required
string

Data Product descriptor in yaml format

removeData
boolean
Default: false

If true, when a component is undeployed, its underlying data will also be deleted

Responses

Request samples

Content type
application/json
{
  • "descriptor": "string",
  • "removeData": false
}

Response samples

Content type
application/json
"string"

Get the status of an execution plan

path Parameters
token
required
string

execution plan token

Responses

Response samples

Content type
application/json
{
  • "status": "RUNNING"
}

Terminate the execution plan associated to the provided token

path Parameters
token
required
string

token that identifies the execution plan

query Parameters
mode
string
Default: "safe"
Enum: "safe" "forced"
Example: mode=safe

it describe the termination mode

Responses

Response samples

Content type
application/json
"string"

Get the provisioning plans associated to a data product id and an environment of the environments list

query Parameters
data-product-id
required
string

the id of the data product

environments
required
string

the environments to filter

version
string

the data product version to filter

operations
string

the operations to filter

include-descriptors
boolean
Default: true

whether to include the data product descriptor along with other task details

include-snapshot
boolean
Default: true

whether to retrieve also snapshot versions

offset
integer

offset value

limit
integer

limit value

ordering
string
Enum: "asc" "desc"

Sort order, default is desc

Responses

Response samples

Content type
application/json
{
  • "provisioningPlans": [
    ],
  • "page": {
    }
}

Get the status for a deployment request Deprecated

Deprecation notice: Replaced by v1/execution-plans/{token}/status

path Parameters
token
required
string

token that identifies the request

Responses

Response samples

Content type
application/json
{
  • "status": "RUNNING",
  • "result": "string",
  • "info": {
    }
}

Get the provisioning plan associated to a specific deploy request

path Parameters
token
required
string

token that identifies the request

query Parameters
include-descriptors
boolean
Default: true

whether to include the data product descriptor along with other task details

Responses

Response samples

Content type
application/json
{
  • "environment": "string",
  • "dag": {
    }
}

Terminate the plan with the provided token Deprecated

Deprecation notice: Replaced by v1/execution-plans/{token}/terminate

path Parameters
token
required
string

token that identifies the request

Responses

Response samples

Content type
application/json
"string"

Crate a new template metadata item

Request Body schema: application/json
required

An object containing the template metadata

id
required
string
name
required
string
description
required
string
version
required
string
infrastructureIdRef
string
url
string
environment
string
object (InfraTemplateProperties)

Responses

Request samples

Content type
application/json
Example
{}

Response samples

Content type
application/json
"string"

Upsert a tech adapter

Request Body schema: application/json
required
id
required
string

Unique identifier of the tech adapter

version
required
string

Version of the tech adapter used for display purposes

name
required
string
description
string
labels
Array of strings

Labels that can be used for filtering

Responses

Request samples

Content type
application/json
{
  • "id": "urn:dmb:itm:snowflake-outputport-provisioner:0",
  • "version": "0",
  • "name": "Snowflake Output Port Tech Adapter",
  • "description": "Provisions a Snowflake Output Port",
  • "labels": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "urn:dmb:itm:snowflake-outputport-provisioner:0",
  • "version": "0",
  • "name": "Snowflake Output Port Tech Adapter",
  • "description": "Provisions a Snowflake Output Port",
  • "labels": [
    ],
  • "deployments": {
    }
}

Search for the registered tech adapters

query Parameters
search
string
Example: search=Snowflake

Search keyword for filtering results by tech adapter name. Supports partial and case-insensitive matches.

labels
string
Example: labels=label1,label2,label3

Filter tech adapters by a list of labels

sort-by
string
Default: "name"
Value: "name"

Field name to sort by

sort-order
string
Default: "asc"
Enum: "asc" "desc"

Sort order

limit
integer
Default: 20

Maximum number of items to return

offset
integer
Default: 0

Number of items to skip

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get a registered tech adapter

path Parameters
id
required
string
Example: urn:dmb:itm:snowflake-outputport-provisioner:0

Responses

Response samples

Content type
application/json
{
  • "id": "urn:dmb:itm:snowflake-outputport-provisioner:0",
  • "version": "0",
  • "name": "Snowflake Output Port Tech Adapter",
  • "description": "Provisions a Snowflake Output Port",
  • "labels": [
    ],
  • "deployments": {
    }
}

Delete a registered tech adapter

path Parameters
id
required
string
Example: urn:dmb:itm:snowflake-outputport-provisioner:0

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "code": "string",
  • "userMessage": "string",
  • "input": "string",
  • "inputErrorField": "string",
  • "moreInfo": {
    }
}

Upsert a tech adapter deployment

Creates or updates a tech adapter deployment in one of the environments

path Parameters
id
required
string
Example: urn:dmb:itm:snowflake-outputport-provisioner:0
environment
required
string
Example: production
Request Body schema: application/json
required
url
required
string
enabled
boolean
Default: true
object (InfraTemplateProperties)

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "properties": {
    }
}

Response samples

Content type
application/json
{}

Get details about a tech adapter deployment

Returns information about a tech adapter deployment in one of the environments

path Parameters
id
required
string
Example: urn:dmb:itm:snowflake-outputport-provisioner:0
environment
required
string
Example: production

Responses

Response samples

Content type
application/json
{}

Delete a tech adapter deployment

path Parameters
id
required
string
Example: urn:dmb:itm:snowflake-outputport-provisioner:0
environment
required
string
Example: production

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "code": "string",
  • "userMessage": "string",
  • "input": "string",
  • "inputErrorField": "string",
  • "moreInfo": {
    }
}

Reload the configuration

Responses

Get the current log level

Responses

Response samples

Content type
application/json
"TRACE"

Change the log level

path Parameters
level
required
string (LogLevel)
Enum: "TRACE" "DEBUG" "INFO" "WARN" "ERROR" "OFF"

Log level

Responses

Response samples

Content type
application/json
"TRACE"

Request the access to a specific provisioner and saves the result inside the Marketplace proxy.

Request Body schema: application/json
required

An object containing the access request

dataProductUrn
required
string
outputPortId
required
integer
outputPortUrn
required
string
requestId
required
string
identities
required
Array of strings
environment
required
string
accessControlFields
object

Responses

Request samples

Content type
application/json
{
  • "dataProductUrn": "string",
  • "outputPortId": 0,
  • "outputPortUrn": "string",
  • "requestId": "string",
  • "identities": [
    ],
  • "environment": "string",
  • "accessControlFields": { }
}

Response samples

Content type
application/json
"string"

Find resources

query Parameters
environment
string

environment name

resource-types
string
Example: resource-types=type1,type2,type3

Comma-separated list of resource types to filter on

id
string

deployment unit id

offset
integer

number of items to skip before retrieving data.

limit
integer <= 50
Default: 5

maximum number of items to return

Responses

Response samples

Content type
application/json
{
  • "content": [
    ],
  • "page": {
    }
}

Execute a reverse provisioning operation

Request Body schema: application/json
required
useCaseTemplateId
required
string

Component's use case template id

infrastructureTemplateIds
required
Array of strings non-empty

IDs of all the infrastructure templates involved in the component's provisioning

environment
required
string

Environment of the specific provisioners (infrastructure templates) to be involved in the reverse provisioning process

params
object

Reverse provisioning input params

catalogInfo
object

Content of the current catalog-info.yaml of the component

Responses

Request samples

Content type
application/json
{
  • "useCaseTemplateId": "urn:dmb:utm:op-standard:0.0.0",
  • "infrastructureTemplateIds": [
    ],
  • "environment": "production",
  • "params": {
    },
  • "catalogInfo": { }
}

Response samples

Content type
application/json
"string"

Get the execution plan associated to a reverse provisioning run

path Parameters
token
required
string

token that identifies the execution plan

Responses

Response samples

Content type
application/json
{
  • "environment": "string",
  • "dag": {
    }
}

Fetch all the descriptors deployed with success from lastDeploymentTime until now

query Parameters
kind
required
string
Value: "pre-deployed"

the kind related to the descriptor that we want to take. "pre-deployed" for having a descriptor without deploy and build info

lastDeploymentTime
string <date-time>

the time after which the coordinator must search for descriptors

limit
required
integer

the number of descriptors that the coordinator must return

Responses

Response samples

Content type
application/json
{
  • "descriptors": [
    ],
  • "lastDeploymentTime": "2019-08-24T14:15:22Z"
}

GovernancePlatform

All the governance platform related operations