Witboost API
Witboost API can be used to programmatically interact with the Witboost platform.
The available APIs are:
- Builder API: allows to interact with the Builder module of Witboost to register Tech Adapters or to update hooks states.
- Provisioning Coordinator API: allows to coordinate all the provisioning tasks of resources within Witboost.
- Computational Governance Platform API: enables policy or metric evaluation against resources.
The Builder module houses templates, resources and all that is needed to enhance the Data Developer experience. It also interacts with the Provisioning Coordinator to provide a fully automated provisioning experience.
Through the Builder API, you will be able to interact with essential parts of the Builder module.
Update the status of a hook
Witboost Hooks model third-party approval workflows.
Hooks are used, for instance, to model the Access Control workflow, where an Data Consumer asks access to a Data Owner. In case an Access Control request is forwarded to third-party ticketing systems, this endpoint helps Witboost understand whether the request is still pending, completed or rejected/failed.
In general, outside of the Access Control workflow, this endpoint is used to update the status of a hook, so that the Witboost platform knows how to proceed with a pending request.
path Parameters
id required | string Request ID as provided by the Witboost platform in the respondToUrl field. |
Request Body schema: application/jsonrequired
A resource to be evaluated
status required | string Enum: "KO" "OK" Represents the desired state of the hook. OK means the third-party interaction has been completed with a positive result, KO on the other hand can be used to represent a negative result. If the hook is attached to an action, signaling KO could prevent the action's callback to be invoked |
hookInfo | object A free-form object that will be stored as the hook's response data |
Responses
Request samples
- Payload
{- "status": "OK",
- "hookInfo": {
- "message": "The request has been accepted on the external system"
}
}
Response samples
- 200
- 404
- 409
- 500
{- "hookId": "34797dd1-1f25-48b0-89c7-14d2ce04a78b",
- "hookName": "RemoteRequestHook",
- "actionId": "0298b78f-4d77-45f7-a7a4-f16278144141",
- "actionName": "AccessControlAction",
- "creationAt": "2021-09-01T12:00:00Z",
- "updateAt": "2021-09-01T12:00:00Z",
- "status": "OK"
}
Register a Tech Adapter
This endpoint is used to register the Technology Adapter's URL and link it to the infrastructureTemplateId
.
After deploying a new Technology Adapter into the infrastructure, all the components with a your chosen infrastructureTemplateId
should invoke said microservice.
To do so, we need to link the infrastructureTemplateId
with the Technology Adapter's URL where the microservice is located. Make sure the URL is reachable by the Witboost platform.
Request Body schema: application/jsonrequired
id required | string Unique identifier of the Technology Adapter, in the form of a Witboost's URN, like "urn:dmb:itm:snowflake-outputport-provisioner:0" |
name required | string Name of the Technology Adapter, like "Snowflake Output Port" |
description required | string A description that explains the purpose of the Technology Adapter |
version required | string The Technology Adapter's version, like "0". This version must be ALWAYS equal to the version defined in the URN identifier (the last section of the URN identifier after the last ":") |
url required | string The URL of the Technology Adapter, like "http://my-tech-adapter:8093/snowflake-outputport-provisioner". This uRL must be reachable from the provisioning coordinator (from a pod in the Kubernetes cluster where the provisioning coordinator is running) |
environment required | string The environment where the Technology Adapter is running, like "production". The environment here must be one of the environments configured for the Builder module of Witboost. |
object Additional infrastructure template properties |
Responses
Request samples
- Payload
{- "id": "urn:dmb:itm:snowflake-outputport-provisioner:0",
- "name": "Snowflake Output Port",
- "description": "Provisions a Snowflake Output Port",
- "version": "0",
- "environment": "production"
}
Response samples
- 200
- 500
"OK"
The Computational Governance Platform is a service responsible for managing policies and metrics that are used to evaluate resources.
It is a central service that allows the governance team to define policies and metrics that will check each resource in Witboost.
The API allows the governance team to create, update, and delete policies and metrics programmatically.
It also allows the users of these APIs to evaluate resources against these policies and metrics.
Evaluate a resource against all policy that apply to its resource_type
Request Body schema: application/jsonrequired
A resource to be evaluated
id required | string A unique identifier of the resource. |
displayName | string |
environment required | string |
resourceType required | string |
descriptor required | string |
labels | Array of strings Labels to be attached to the evaluation report. |
Responses
Request samples
- Payload
{- "id": "string",
- "displayName": "string",
- "environment": "string",
- "resourceType": "string",
- "descriptor": "string",
- "labels": [
- "string"
]
}
Response samples
- 202
- 400
- 500
{- "reportId": "string"
}
Registers a new Metric in the Computational Governance Platform
Request Body schema: application/jsonrequired
A metric object to be registered
name required | string Name of the metric. This is also used for display purposes. |
description required | string Description of the metric |
context required | string Enum: "global" "local" |
strategy required | string Enum: "default" "previous_vs_current" "none" Execution strategy of the governance entity |
engine required | string Enum: "cue" "remote" "none" |
trigger required | string Enum: "active" "passive" |
timing required | string Enum: "deployment" "runtime" |
interactionType required | string Enum: "user2user" "user2platform" |
required | Array of objects |
preprocessing | Array of strings |
resourceType required | string Resource type compatible to this metric |
tags required | Array of strings Descriptive tags to add contextual information on the metric |
environment required | string Environment where this metric gets executed |
cronExpression | string Cron expression in Quartz-like syntax with 6 fields that go from seconds to day of week in the following order: Seconds (0-59), Minutes (0-59), Hour of Day (0-23), Day of Month (1-31), Month (1-12), Day Of Week (0-6 where 0 is Monday). The following special characters are not allowed: L, W, LW, #. Time zone: UTC |
externalUrl | string The external URL to be contacted to trigger the execution of the metric |
object | |
required | object |
additionalMetadata required | string |
Responses
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "context": "global",
- "strategy": "default",
- "engine": "cue",
- "trigger": "active",
- "timing": "deployment",
- "interactionType": "user2user",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "resourceType": "string",
- "tags": [
- "string"
], - "environment": "string",
- "cronExpression": "string",
- "externalUrl": "string",
- "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "additionalMetadata": "string"
}
Response samples
- 202
- 400
- 500
{- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
Updates a metric status in the Computational Governance Platform
path Parameters
id required | string metric unique ID |
Request Body schema: application/jsonrequired
The desired status for the metric
status required | string Enum: "draft" "grace" "disabled_grace" "enabled" "disabled" "deprecated" "deleted" Status of the governance entity |
Responses
Request samples
- Payload
{- "status": "draft"
}
Response samples
- 202
- 400
- 500
{- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
Updates a metric
path Parameters
id required | string metric unique ID |
Request Body schema: application/jsonrequired
A metric object to be update
groupId required | string |
name required | string Name of the metric. This is also used for display purposes. |
version required | integer |
description required | string Description of the metric |
context required | string Enum: "global" "local" |
strategy required | string Enum: "default" "previous_vs_current" "none" Execution strategy of the governance entity |
engine required | string Enum: "cue" "remote" "none" |
trigger required | string Enum: "active" "passive" |
timing required | string Enum: "deployment" "runtime" |
interactionType required | string Enum: "user2user" "user2platform" |
required | Array of objects |
preprocessing | Array of strings |
resourceType required | string Resource type compatible to this metric |
tags required | Array of strings Descriptive tags to add contextual information on the metric |
environment required | string Environment where this metric gets executed |
cronExpression | string Cron expression in Quartz-like syntax with 6 fields that go from seconds to day of week in the following order: Seconds (0-59), Minutes (0-59), Hour of Day (0-23), Day of Month (1-31), Month (1-12), Day Of Week (0-6 where 0 is Monday). The following special characters are not allowed: L, W, LW, #. Time zone: UTC |
externalUrl | string The external URL to be contacted to trigger the execution of the metric |
object | |
object | |
additionalMetadata required | string |
Responses
Request samples
- Payload
{- "groupId": "string",
- "name": "string",
- "version": 0,
- "description": "string",
- "context": "global",
- "strategy": "default",
- "engine": "cue",
- "trigger": "active",
- "timing": "deployment",
- "interactionType": "user2user",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "resourceType": "string",
- "tags": [
- "string"
], - "environment": "string",
- "cronExpression": "string",
- "externalUrl": "string",
- "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "additionalMetadata": "string"
}
Response samples
- 202
- 400
- 500
{- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
Response samples
- 200
- 400
- 500
{- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
Test a metric against its resource perimeter
path Parameters
id required | string Metric ID |
Request Body schema: application/jsonrequired
Additional options for the test
Array of objects Additional selectors to restrict the resources perimeter | |||||||
Array
|
Responses
Request samples
- Payload
{- "filters": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
]
}
Response samples
- 202
- 400
- 404
- 500
{- "reportId": "string"
}
Push a set of evaluation results for a metric in the Governance Platform
path Parameters
id required | string passive metric unique ID |
query Parameters
environment required | string Environment to which these evaluation correspond to |
Request Body schema: application/jsonrequired
A list of evaluation results to generate a report. Each result is the consequence of a metric evaluating a resource.
Important! If the provided resource is not already registered in CGP, it will be registered as a primary resource (i.e., a resource within the scope of a perimeter resolver) associated with the resource type of the given metric.
required | object |
required | object |
Responses
Request samples
- Payload
[- {
- "resource": {
- "id": "string",
- "displayName": "string",
- "descriptor": "string"
}, - "result": {
- "value": 0,
- "errors": [
- "string"
], - "details": { }
}
}
]
Response samples
- 201
- 400
- 422
- 500
{- "id": "string",
- "environment": "string",
- "evaluationScope": "evaluation",
- "evaluationResults": [
- {
- "governanceEntityId": "string",
- "governanceEntityStatus": "draft",
- "governanceEntityType": "metric",
- "resource": {
- "id": "string",
- "displayName": "string",
- "environment": "string",
- "resourceType": "string",
- "descriptor": "string"
}, - "outcome": "ok",
- "result": {
- "isError": true,
- "value": 0,
- "thresholdResult": {
- "label": "string",
- "labelColor": "string"
}, - "satisfiesPolicy": true,
- "errors": [
- "string"
], - "details": { }
}, - "creationTime": "2019-08-24T14:15:22Z"
}
], - "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "status": "completedWithSuccess"
}
Registers a new Policy in the Computational Governance Platform
Request Body schema: application/jsonrequired
A policy object to be registered
name required | string Name of the policy. This is also used for display purposes. |
description required | string Description of the policy |
context required | string Enum: "global" "local" |
strategy required | string Enum: "default" "previous_vs_current" "none" Execution strategy of the governance entity |
engine required | string Enum: "cue" "remote" "none" |
trigger required | string Enum: "active" "passive" |
timing required | string Enum: "deployment" "runtime" |
interactionType required | string Enum: "user2user" "user2platform" |
required | Array of objects |
preprocessing | Array of strings |
resourceType required | string Resource type compatible to this policy |
tags required | Array of strings Descriptive tags to add contextual information on the policy |
environment required | string Environment where this policy gets executed |
cronExpression | string Cron expression in Quartz-like syntax with 6 fields that go from seconds to day of week in the following order: Seconds (0-59), Minutes (0-59), Hour of Day (0-23), Day of Month (1-31), Month (1-12), Day Of Week (0-6 where 0 is Monday). The following special characters are not allowed: L, W, LW, #. Time zone: UTC |
externalUrl | string If engine is remote, this field contains the external URL to be contacted to trigger the execution of the policy |
cueScript | string If engine is cue, this field contains the CUE script |
severity required | string Enum: "info" "warning" "error" Describes the severity of the governance entity in case of a failing condition |
additionalMetadata required | string |
Responses
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "context": "global",
- "strategy": "default",
- "engine": "cue",
- "trigger": "active",
- "timing": "deployment",
- "interactionType": "user2user",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "resourceType": "string",
- "tags": [
- "string"
], - "environment": "string",
- "cronExpression": "string",
- "externalUrl": "string",
- "cueScript": "string",
- "severity": "info",
- "additionalMetadata": "string"
}
Response samples
- 202
- 400
- 500
{- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
Updates a policy status
path Parameters
id required | string policy unique ID |
Request Body schema: application/jsonrequired
The desired status for the policy
status required | string Enum: "draft" "grace" "disabled_grace" "enabled" "disabled" "deprecated" "deleted" Status of the governance entity |
Responses
Request samples
- Payload
{- "status": "draft"
}
Response samples
- 202
- 400
- 500
{- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
Test a policy against its resource perimeter
path Parameters
id required | string Policy ID |
Request Body schema: application/jsonrequired
Additional options for the test
Array of objects Additional selectors to restrict the resources perimeter | |||||||
Array
|
Responses
Request samples
- Payload
{- "filters": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
]
}
Response samples
- 202
- 400
- 404
- 500
{- "reportId": "string"
}
Updates a policy
path Parameters
id required | string policy unique ID |
Request Body schema: application/jsonrequired
A policy object to be update
groupId required | string |
name required | string Name of the policy. This is also used for display purposes. |
version required | integer |
description required | string Description of the policy |
context required | string Enum: "global" "local" |
strategy required | string Enum: "default" "previous_vs_current" "none" Execution strategy of the governance entity |
engine required | string Enum: "cue" "remote" "none" |
trigger required | string Enum: "active" "passive" |
timing required | string Enum: "deployment" "runtime" |
interactionType required | string Enum: "user2user" "user2platform" |
required | Array of objects |
preprocessing | Array of strings |
resourceType required | string Resource type compatible to this policy |
tags required | Array of strings Descriptive tags to add contextual information on the policy |
environment required | string Environment where this policy gets executed |
cronExpression | string Cron expression in Quartz-like syntax with 6 fields that go from seconds to day of week in the following order: Seconds (0-59), Minutes (0-59), Hour of Day (0-23), Day of Month (1-31), Month (1-12), Day Of Week (0-6 where 0 is Monday). The following special characters are not allowed: L, W, LW, #. Time zone: UTC |
externalUrl | string If engine is remote, this field contains the external URL to be contacted to trigger the execution of the policy |
cueScript | string If engine is cue, this field contains the CUE script |
severity required | string Enum: "info" "warning" "error" Describes the severity of the governance entity in case of a failing condition |
additionalMetadata required | string |
Responses
Request samples
- Payload
{- "groupId": "string",
- "name": "string",
- "version": 0,
- "description": "string",
- "context": "global",
- "strategy": "default",
- "engine": "cue",
- "trigger": "active",
- "timing": "deployment",
- "interactionType": "user2user",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "resourceType": "string",
- "tags": [
- "string"
], - "environment": "string",
- "cronExpression": "string",
- "externalUrl": "string",
- "cueScript": "string",
- "severity": "info",
- "additionalMetadata": "string"
}
Response samples
- 202
- 400
- 500
{- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
Response samples
- 200
- 400
- 500
{- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
Push a set of evaluation results for a policy in the Governance Platform
path Parameters
id required | string passive policy unique ID |
query Parameters
environment required | string Environment to which these evaluation correspond to |
Request Body schema: application/jsonrequired
A list of evaluation results to generate a report. Each result is the consequence of a policy evaluating a resource.
Important! If the provided resource is not already registered in CGP, it will be registered as a primary resource (i.e., a resource within the scope of a perimeter resolver) associated with the resource type of the given policy.
required | object |
required | object |
Responses
Request samples
- Payload
[- {
- "resource": {
- "id": "string",
- "displayName": "string",
- "descriptor": "string"
}, - "result": {
- "satisfiesPolicy": true,
- "errors": [
- "string"
], - "details": { }
}
}
]
Response samples
- 201
- 400
- 422
- 500
{- "id": "string",
- "environment": "string",
- "evaluationScope": "evaluation",
- "evaluationResults": [
- {
- "governanceEntityId": "string",
- "governanceEntityStatus": "draft",
- "governanceEntityType": "metric",
- "resource": {
- "id": "string",
- "displayName": "string",
- "environment": "string",
- "resourceType": "string",
- "descriptor": "string"
}, - "outcome": "ok",
- "result": {
- "isError": true,
- "value": 0,
- "thresholdResult": {
- "label": "string",
- "labelColor": "string"
}, - "satisfiesPolicy": true,
- "errors": [
- "string"
], - "details": { }
}, - "creationTime": "2019-08-24T14:15:22Z"
}
], - "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "status": "completedWithSuccess"
}
Response samples
- 200
- 400
- 404
- 500
{- "id": "string",
- "environment": "string",
- "evaluationScope": "evaluation",
- "evaluationResults": [
- {
- "governanceEntityId": "string",
- "governanceEntityStatus": "draft",
- "governanceEntityType": "metric",
- "resource": {
- "id": "string",
- "displayName": "string",
- "environment": "string",
- "resourceType": "string",
- "descriptor": "string"
}, - "outcome": "ok",
- "result": {
- "isError": true,
- "value": 0,
- "thresholdResult": {
- "label": "string",
- "labelColor": "string"
}, - "satisfiesPolicy": true,
- "errors": [
- "string"
], - "details": { }
}, - "creationTime": "2019-08-24T14:15:22Z"
}
], - "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "status": "completedWithSuccess"
}
Registers or updates a resource type
Request Body schema: application/jsonrequired
name required | string Unique resource type name and identifier |
displayName | string Resource type display name. It defaults to |
required | object Information about the shape of descriptors of this resource type |
required | object Details about the service implementing the perimeter resolver API |
cuePreprocessScript | string |
Responses
Request samples
- Payload
{- "name": "my-resource-type",
- "displayName": "My Resource Type",
- "descriptorConfiguration": {
- "resourceNameField": "id",
- "resourceDisplayNameFields": [
- "domain",
- "name",
- "version"
], - "resourceFilterField": "version"
}, - "resolverConfiguration": {
- "url": "id",
- "path": "v1/resolve",
- "batchSize": 5
}, - "cuePreprocessScript": "string"
}
Response samples
- 200
- 400
- 500
{- "name": "my-resource-type",
- "displayName": "My Resource Type",
- "descriptorConfiguration": {
- "resourceNameField": "id",
- "resourceDisplayNameFields": [
- "domain",
- "name",
- "version"
], - "resourceFilterField": "version"
}, - "resolverConfiguration": {
- "url": "id",
- "path": "v1/resolve",
- "batchSize": 5
}, - "cuePreprocessScript": "string"
}
Retrieves the configuration of a resource type
path Parameters
resourceType required | string Example: my-resource-type Resource type name |
Responses
Response samples
- 200
- 400
- 404
- 500
{- "name": "my-resource-type",
- "displayName": "My Resource Type",
- "descriptorConfiguration": {
- "resourceNameField": "id",
- "resourceDisplayNameFields": [
- "domain",
- "name",
- "version"
], - "resourceFilterField": "version"
}, - "resolverConfiguration": {
- "url": "id",
- "path": "v1/resolve",
- "batchSize": 5
}, - "cuePreprocessScript": "string"
}
Computes a list of policies with the highest failure rate in a given date interval
Request Body schema: application/jsonrequired
environment required | string |
limit required | integer [ 1 .. 50 ] Default: 10 Maximum number of policies to be returned. |
startDate required | string <date-time> Lower bound of the date interval (inclusive) |
endDate required | string <date-time> Upper bound of the date interval (inclusive) |
includePolicyDetails required | boolean Default: false Whether to include full policy details in the results or just policy ids (faster) |
Responses
Request samples
- Payload
{- "environment": "string",
- "limit": 10,
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "includePolicyDetails": false
}
Response samples
- 200
- 400
- 500
[- {
- "policyId": "string",
- "failureRate": 0.8,
- "policy": {
- "id": "string",
- "groupId": "string",
- "status": "draft",
- "name": "string",
- "description": "string",
- "context": "global",
- "interactionType": "user2user",
- "trigger": "active",
- "timing": "deployment",
- "version": 0,
- "creationTime": "2019-08-24T14:15:22Z",
- "updateTime": "2019-08-24T14:15:22Z",
- "selectors": [
- {
- "description": "string",
- "path": "string",
- "values": [
- "string"
]
}
], - "preprocessing": [
- "string"
], - "tags": [
- "string"
], - "externalUrl": "string",
- "strategy": "default",
- "engine": "cue",
- "resourceType": "string",
- "cueScript": "string",
- "severity": "info",
- "environment": "string",
- "cronExpression": "string",
- "thresholds": {
- "expression": "below_or_equal",
- "range": [
- {
- "label": "string",
- "labelColor": "string",
- "value": 0
}
]
}, - "domain": {
- "lowerBound": 0,
- "upperBound": 0
}, - "additionalMetadata": "string"
}
}
]
Computes policy execution stats
Request Body schema: application/jsonrequired
environment required | string |
startDate required | string <date-time> Lower bound of the date interval (inclusive) |
endDate required | string <date-time> Upper bound of the date interval (inclusive) |
Responses
Request samples
- Payload
{- "environment": "string",
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z"
}
Response samples
- 200
- 400
- 500
[- {
- "resourceType": "string",
- "failed": 0,
- "total": 0,
- "noResult": 0
}
]
Computes failed policy evaluation stats
Request Body schema: application/jsonrequired
environment required | string |
startDate required | string <date-time> Lower bound of the date interval (inclusive) |
endDate required | string <date-time> Upper bound of the date interval (inclusive) |
reportLabels | Array of strings If defined, only failed executions linked to an evaluation report containing all these labels will be included in the computation |
Responses
Request samples
- Payload
{- "environment": "string",
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z",
- "reportLabels": [
- "deployment"
]
}
Response samples
- 200
- 400
- 500
[- {
- "resourceType": "string",
- "failedEvaluations": 0
}
]
Registers new resources
Registers the provided resources if not already registered. If a resource already exists, it will be left unmodified and will not be included in the response.
Request Body schema: application/jsonrequired
Array of objects Resources with a resource type among the ones registered in CGP. Their descriptor is directly provided by a perimeter resolver. | |
Array of objects Resources derived from a primary resource (the origin resource). Their descriptor is not directly provided by a perimeter resolver, but it is derived by applying transformations to their origin's descriptor. |
Responses
Request samples
- Payload
{- "primaryResources": [
- {
- "identifier": {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}, - "resourceType": "dataproduct"
}
], - "derivedResources": [
- {
- "identifier": {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}, - "originExternalId": "urn:dmb:dp:my-domain:my-origin-resource:0"
}
]
}
Response samples
- 200
- 400
- 500
{- "registeredResources": [
- {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}
]
}
Returns a registered resource
path Parameters
externalId required | string Example: urn:dmb:dp:my-domain:my-resource:0 Resource external id |
query Parameters
environment required | string Example: environment=development Resource environment |
Responses
Response samples
- 200
- 400
- 404
- 500
{- "identifier": {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}, - "kind": "PRIMARY",
- "resourceType": "dataproduct",
- "originExternalId": "urn:dmb:dp:my-domain:my-origin-resource:0"
}
Updates the evaluation status of a resource
Updates the evaluation status of a resource in relation to a governance entity. If the evaluation status is not currently tracked, it will be registered.
path Parameters
externalId required | string Example: urn:dmb:dp:my-domain:my-resource:0 Resource external id |
governanceEntityId required | string Example: 2b3a16c4-5b2a-49a3-8cb7-ecb35c9a1b0a Governance entity id |
query Parameters
environment required | string Example: environment=development Resource environment |
Request Body schema: application/jsonrequired
object If
| |
object If |
Responses
Request samples
- Payload
{- "resultScheduling": {
- "newValue": {
- "frequency": "0 0 0,12 ? * *",
- "toleranceWindowLength": "PT1H"
}
}, - "lastResultId": {
- "newValue": "3580fd57-c673-4682-891e-eccb20b7a2d4"
}
}
Response samples
- 200
- 400
- 500
{- "identifier": {
- "resourceIdentifier": {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}, - "governanceEntityId": "9efba4e8-a014-4e45-aa67-8063fe3a912f"
}, - "resultScheduling": {
- "frequency": "0 0 0,12 ? * *",
- "toleranceWindowLength": "PT1H"
}, - "lastResultId": "3580fd57-c673-4682-891e-eccb20b7a2d4"
}
Retrieves the evaluation status of one or more resources
Request Body schema: application/jsonrequired
required | object |
required | object |
Responses
Request samples
- Payload
{- "filters": {
- "statusFilter": {
- "identifierIn": [
- {
- "resourceIdentifier": {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}, - "governanceEntityId": "9efba4e8-a014-4e45-aa67-8063fe3a912f"
}
]
}, - "resourceFilter": {
- "identifierIn": [
- {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}
]
}, - "governanceEntityFilter": {
- "idIn": [
- "9efba4e8-a014-4e45-aa67-8063fe3a912f"
], - "typeIn": [
- "metric"
], - "timingIn": [
- "deployment"
], - "statusIn": [
- "draft"
]
}, - "resultFilter": {
- "outcomeIn": [
- "ok"
]
}
}, - "resultOptions": {
- "additionalFields": [
- "LAST_RESULT_RESOURCE_SNAPSHOT"
], - "pagination": {
- "pageSize": 10,
- "cursor": "NTAwMGRkZA=="
}
}
}
Response samples
- 200
- 400
- 500
{- "data": [
- {
- "identifier": {
- "resourceIdentifier": {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}, - "governanceEntityId": "9efba4e8-a014-4e45-aa67-8063fe3a912f"
}, - "resultScheduling": {
- "frequency": "0 0 0,12 ? * *",
- "toleranceWindowLength": "PT1H",
- "expectedResultTime": "2020-01-01T00:00:00.000Z",
- "acceptableResultTimeLimit": "2020-01-01T01:00:00.000Z",
- "status": "ON_TIME"
}, - "lastResult": {
- "details": {
- "id": "3580fd57-c673-4682-891e-eccb20b7a2d4",
- "identifier": {
- "reportId": "2860fd57-c673-4682-891e-eccb20b7a2d4",
- "resourceIdentifier": {
- "resourceExternalId": "urn:dmb:dp:my-domain:my-resource:0",
- "environment": "development"
}, - "governanceEntityId": "9efba4e8-a014-4e45-aa67-8063fe3a912f"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "outcome": "ok",
- "governanceEntityStatus": "draft"
}, - "resourceSnapshot": {
- "displayName": "My Resource",
- "snapshotName": "SNAPSHOT-1",
- "content": "string"
}, - "resultContent": {
- "isError": true,
- "value": 0,
- "thresholdResult": {
- "label": "string",
- "labelColor": "string"
}, - "satisfiesPolicy": true,
- "errors": [
- "string"
], - "details": { }
}
}
}
], - "meta": {
- "pagination": {
- "pageSize": 10,
- "nextCursor": "NTAwMGRkZA=="
}
}
}
Analyzes an evaluation report to update the evaluation status of one or more resources
path Parameters
reportId required | string Evaluation report id |
Responses
Response samples
- 400
- 500
{- "errors": [
- "string"
], - "code": "string",
- "userMessage": "string",
- "input": "string",
- "inputErrorField": "string",
- "moreInfo": {
- "problems": [
- "string"
], - "solutions": [
- "string"
]
}
}
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.
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.
Validate a deployment request
Request Body schema: application/jsonrequired
A deployment request descriptor wrapped as a string into a simple object
descriptor required | string |
Responses
Request samples
- Payload
{- "descriptor": "string"
}
Response samples
- 202
- 400
- 500
"string"
Validate a deployment request
path Parameters
token required | string token that identifies the request |
Responses
Response samples
- 200
- 400
- 500
{- "status": "RUNNING",
- "validationSummaryStatus": {
- "results": [
- {
- "validationPhaseKind": "INTERNAL_VALIDATION_PHASE",
- "validatedDescriptor": "string",
- "errors": {
- "errors": [
- "string"
], - "code": "string",
- "userMessage": "string",
- "input": "string",
- "inputErrorField": "string",
- "moreInfo": {
- "problems": [
- "string"
], - "solutions": [
- "string"
]
}
}, - "status": "RUNNING"
}
]
}
}
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
- 200
- 400
- 500
{- "status": "DEPLOYED",
- "provisioningDetails": {
- "descriptorVersion": "2.7.1",
- "descriptor": {
- "id": "my-system:2",
- "name": "my-system",
- "version": "2.7.1",
- "components": [
- {
- "id": "my-component-1",
- "name": "My Component 1",
- "dependsOn": [ ]
}, - {
- "id": "my-component-2",
- "name": "My Component 2",
- "dependsOn": [ ]
}, - {
- "id": "my-component-3",
- "name": "My Component 3",
- "dependsOn": [
- "my-component-1"
]
}
]
}, - "provisioningInfo": {
}, - "componentsStatus": [
- {
- "componentId": "my-component-1",
- "descriptorVersion": "2.7.1",
- "status": "DEPLOYED"
}
]
}
}
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
- 200
- 400
- 500
{- "status": "DEPLOYED",
- "provisioningDetails": {
- "descriptorVersion": "2.7.1",
- "descriptor": {
- "id": "my-system:2",
- "name": "my-system",
- "version": "2.7.1",
- "components": [
- {
- "id": "my-component-1",
- "name": "My Component 1",
- "dependsOn": [ ]
}, - {
- "id": "my-component-2",
- "name": "My Component 2",
- "dependsOn": [ ]
}, - {
- "id": "my-component-3",
- "name": "My Component 3",
- "dependsOn": [
- "my-component-1"
]
}
]
}
}
}
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
|
Request Body schema: application/jsonrequired
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 |
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 |
Responses
Request samples
- Payload
{- "descriptor": {
- "id": "my-system:2",
- "name": "my-system",
- "version": "2.7.1",
- "components": [
- {
- "id": "my-component-1",
- "name": "My Component 1",
- "dependsOn": [ ]
}, - {
- "id": "my-component-2",
- "name": "My Component 2",
- "dependsOn": [ ]
}, - {
- "id": "my-component-3",
- "name": "My Component 3",
- "dependsOn": [
- "my-component-1"
]
}
]
}, - "targetStatus": [
- {
- "componentId": "my-component-1",
- "targetStatus": "DEPLOYED",
- "action": "DEPLOY"
}
], - "removeData": false,
- "preventRedeploy": false
}
Response samples
- 200
- 400
- 500
{- "outcome": "OK",
- "operations": [
- {
- "componentId": "my-component-1",
- "targetStatus": "DEPLOYED",
- "action": "DEPLOY",
- "reason": "REQUEST",
- "additionalReasons": [
- "REQUEST"
], - "dependencyOf": [
- "my-component-3"
], - "dependantOn": [
- "my-component-4"
]
}
], - "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/jsonrequired
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 |
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 |
Responses
Request samples
- Payload
{- "descriptor": {
- "id": "my-system:2",
- "name": "my-system",
- "version": "2.7.1",
- "components": [
- {
- "id": "my-component-1",
- "name": "My Component 1",
- "dependsOn": [ ]
}, - {
- "id": "my-component-2",
- "name": "My Component 2",
- "dependsOn": [ ]
}, - {
- "id": "my-component-3",
- "name": "My Component 3",
- "dependsOn": [
- "my-component-1"
]
}
]
}, - "targetStatus": [
- {
- "componentId": "my-component-1",
- "targetStatus": "DEPLOYED",
- "action": "DEPLOY"
}
], - "removeData": false,
- "preventRedeploy": false
}
Response samples
- 202
- 400
- 422
- 500
"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
|
Responses
Response samples
- 400
- 500
{- "errors": [
- "string"
], - "code": "string",
- "userMessage": "string",
- "input": "string",
- "inputErrorField": "string",
- "moreInfo": {
- "problems": [
- "string"
], - "solutions": [
- "string"
]
}
}
Validate a deployment request
Request Body schema: application/jsonrequired
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
- Payload
{- "descriptor": "string",
- "removeData": false
}
Response samples
- 200
- 400
- 500
{- "results": [
- {
- "validationPhaseKind": "INTERNAL_VALIDATION_PHASE",
- "validatedDescriptor": "string",
- "errors": {
- "errors": [
- "string"
], - "code": "string",
- "userMessage": "string",
- "input": "string",
- "inputErrorField": "string",
- "moreInfo": {
- "problems": [
- "string"
], - "solutions": [
- "string"
]
}
}, - "status": "RUNNING"
}
]
}
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
- 200
- 400
- 500
[- {
- "timestamp": "2019-08-24T14:15:22Z",
- "severity": "DEBUG",
- "task": "string",
- "message": "string",
- "phase": "string"
}
]
Deploy a data product starting from its descriptor Deprecated
Deprecation notice: Replaced by
v2/deployment-units/{deployment-unit-id}/provisioning
Request Body schema: application/jsonrequired
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
- Payload
{- "descriptor": "string",
- "removeData": false
}
Response samples
- 202
- 400
- 500
"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/jsonrequired
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
- Payload
{- "descriptor": "string",
- "removeData": false
}
Response samples
- 202
- 400
- 500
"string"
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
- 200
- 400
- 500
"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
- 200
- 400
- 500
{- "provisioningPlans": [
- {
- "environment": "string",
- "dag": {
- "id": "string",
- "displayName": "string",
- "name": "string",
- "componentName": "string",
- "descriptor": "string",
- "version": "string",
- "status": "RUNNING",
- "action": "PROVISION",
- "result": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "stopTime": "2019-08-24T14:15:22Z",
- "dependsOnTasks": [
- { }
], - "subPlanId": "string"
}
}
], - "page": {
- "offset": 0,
- "limit": 0,
- "count": 0
}
}
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
- 200
- 400
- 500
{- "status": "RUNNING",
- "result": "string",
- "info": {
- "publicInfo": { },
- "privateInfo": { }
}
}
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
- 200
- 400
- 500
{- "environment": "string",
- "dag": {
- "id": "string",
- "displayName": "string",
- "name": "string",
- "componentName": "string",
- "descriptor": "string",
- "version": "string",
- "status": "RUNNING",
- "action": "PROVISION",
- "result": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "stopTime": "2019-08-24T14:15:22Z",
- "dependsOnTasks": [
- { }
], - "subPlanId": "string"
}
}
Crate a new template metadata item
Request Body schema: application/jsonrequired
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 |
Responses
Request samples
- Payload
{- "id": "urn:dmb:itm:snowflake-outputport-provisioner:0",
- "name": "Snowflake Output Port",
- "description": "Provisions a Snowflake Output Port",
- "version": "0",
- "environment": "production"
}
Response samples
- 200
- 400
- 500
"string"
Request the access to a specific provisioner and saves the result inside the Marketplace proxy.
Request Body schema: application/jsonrequired
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
- Payload
{- "dataProductUrn": "string",
- "outputPortId": 0,
- "outputPortUrn": "string",
- "requestId": "string",
- "identities": [
- "string"
], - "environment": "string",
- "accessControlFields": { }
}
Response samples
- 202
- 400
- 500
"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
- 200
- 400
- 404
- 500
{- "content": [
- "string"
], - "page": {
- "offset": 0,
- "limit": 0,
- "count": 0
}
}
Execute a reverse provisioning operation
Request Body schema: application/jsonrequired
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 |
Responses
Request samples
- Payload
{- "useCaseTemplateId": "urn:dmb:utm:op-standard:0.0.0",
- "infrastructureTemplateIds": [
- "urn:dmb:itm:op-provisioner:0"
], - "environment": "production",
- "params": {
- "inputA": "value A",
- "inputB": 1
}, - "catalogInfo": { }
}
Response samples
- 202
- 400
- 500
"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
- 200
- 400
- 500
{- "environment": "string",
- "dag": {
- "id": "string",
- "displayName": "string",
- "name": "string",
- "status": "RUNNING",
- "result": { },
- "startTime": "2019-08-24T14:15:22Z",
- "stopTime": "2019-08-24T14:15:22Z",
- "dependsOnTasks": [ ]
}
}
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
- 200
- 400
- 500
{- "descriptors": [
- {
- "descriptor": "string",
- "operation": "Provision"
}
], - "lastDeploymentTime": "2019-08-24T14:15:22Z"
}