Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Microservice responsible to handle provisioning and access control requests for one or more data product components.
All the provisioning related operations
Code samples
Shell
# You can also use wget
curl -X POST /v2/validate \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
JavaScript
const inputBody = '{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string",
"latestEnrichedDescriptor": "string",
"removeData": false
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/v2/validate',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
URL obj = new URL("/v2/validate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/v2/validate', headers = headers)
print(r.json())
POST /v2/validate
Asynchronously validate a provisioning request
Body parameter
{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string",
"latestEnrichedDescriptor": "string",
"removeData": false
}
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ProvisioningRequest | true | Details of a provisioning request to be validated |
Example responses
202 Response
"string"
Status | Meaning | Description | Schema |
---|---|---|---|
202 | Accepted | It returns a token that can be used for polling the async validation operation status and results | string |
400 | Bad Request | Invalid input | RequestValidationError |
500 | Internal Server Error | System problem | SystemError |
Code samples
Shell
```shell # You can also use wget curl -X GET /v2/validate/{token}/status \ -H 'Accept: application/json' ```JavaScript
const headers = {
'Accept':'application/json'
};
fetch('/v2/validate/{token}/status',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
URL obj = new URL("/v2/validate/{token}/status");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/v2/validate/{token}/status', headers = headers)
print(r.json())
GET /v2/validate/{token}/status
Get status and results of an async validation operation
Name | In | Type | Required | Description |
---|---|---|---|---|
token | path | string | true | token that identifies the request |
Example responses
200 Response
{
"status": "RUNNING",
"info": {
"publicInfo": {
"valid": true,
"error": {
"errors": [
"string"
]
}
}
}
}
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request status | ValidationStatus |
400 | Bad Request | Invalid input | RequestValidationError |
500 | Internal Server Error | System problem | SystemError |
Code samples
Shell
# You can also use wget
curl -X POST /v1/provision \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
JavaScript
const inputBody = '{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/v1/provision',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
URL obj = new URL("/v1/provision");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/v1/provision', headers = headers)
print(r.json())
POST /v1/provision
Deploy a data product starting from its descriptor
Body parameter
{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string"
}
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ProvisioningRequest | true | A provisioning request descriptor wrapped as a string into a simple object |
Example responses
200 Response
{
"status": "RUNNING",
"result": "string"
}
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | It synchronously returns the request result | ProvisioningStatus |
202 | Accepted | If successful returns a provisioning deployment task token that can be used for polling the request status | string |
400 | Bad Request | Invalid input | RequestValidationError |
500 | Internal Server Error | System problem | SystemError |
Code samples
Shell
# You can also use wget
curl -X GET /v1/provision/{token}/status \
-H 'Accept: application/json'
JavaScript
const headers = {
'Accept':'application/json'
};
const token = "";
fetch(`/v1/provision/${token}/status`,
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
String token = "";
URL obj = new URL("/v1/provision/"+token+"/status");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Accept': 'application/json'
}
token = ''
r = requests.get(f'/v1/provision/{token}/status', headers = headers)
print(r.json())
GET /v1/provision/{token}/status
Get the status for a provisioning request
Name | In | Type | Required | Description |
---|---|---|---|---|
token | path | string | true | token that identifies the request |
Example responses
200 Response
{
"status": "RUNNING",
"result": "string"
}
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request status | ProvisioningStatus |
400 | Bad Request | Invalid input | RequestValidationError |
500 | Internal Server Error | System problem | SystemError |
Code samples
Shell
# You can also use wget
curl -X POST /v1/validate \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
JavaScript
const inputBody = '{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/v1/validate',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
URL obj = new URL("/v1/validate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/v1/validate', headers = headers)
print(r.json())
POST /v1/validate
Validate a provisioning request
Body parameter
{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string"
}
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ProvisioningRequest | true | A provisioning request descriptor wrapped as a string into a simple object |
Example responses
200 Response
{
"valid": true,
"error": {
"errors": [
"string"
],
"userMessage": "string",
"input": "string",
"inputErrorField": "string",
"moreInfo": {
"problems": [
"string"
],
"solutions": [
"string"
]
}
}
}
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | It synchronously returns a specific reply containing the validation result | ValidationResult |
500 | Internal Server Error | System problem | SystemError |
Code samples
Shell
# You can also use wget
curl -X POST /v1/unprovision \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
JavaScript
const inputBody = '{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/v1/unprovision',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
URL obj = new URL("/v1/unprovision");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/v1/unprovision', headers = headers)
print(r.json())
POST /v1/unprovision
Undeploy a data product starting from its descriptor
Body parameter
{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string"
}
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ProvisioningRequest | true | A provisioning request descriptor wrapped as a string into a simple object |
Example responses
200 Response
{
"status": "RUNNING",
"result": "string"
}
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | It synchronously returns the request result | ProvisioningStatus |
202 | Accepted | If successful returns a provisioning deployment task token that can be used for polling the request status | string |
400 | Bad Request | Invalid input | RequestValidationError |
500 | Internal Server Error | System problem | SystemError |
Code samples
Shell
# You can also use wget
curl -X POST /v1/updateacl \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
JavaScript
const inputBody = '{
"refs": [
"string"
],
"provisionInfo": {
"request": "string",
"result": "string"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/v1/updateacl',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
URL obj = new URL("/v1/updateacl");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/v1/updateacl', headers = headers)
print(r.json())
POST /v1/updateacl
Request the access to a specific provisioner component
Body parameter
{
"refs": [
"string"
],
"provisionInfo": {
"request": "string",
"result": "string"
}
}
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | UpdateAclRequest | true | An access request object |
Example responses
200 Response
{
"status": "RUNNING",
"result": "string"
}
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | It synchronously returns the access request response | ProvisioningStatus |
202 | Accepted | It synchronously returns the access request response | string |
400 | Bad Request | Invalid input | RequestValidationError |
500 | Internal Server Error | System problem | SystemError |
Code samples
Shell
# You can also use wget
curl -X POST /v1/reverse-provisioning \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
JavaScript
const inputBody = '{
"useCaseTemplateId": "urn:dmb:utm:op-standard:0.0.0",
"environment": "production",
"params": {
"inputA": "value A",
"inputB": 1
},
"catalogInfo": {}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/v1/reverse-provisioning',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
URL obj = new URL("/v1/reverse-provisioning");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/v1/reverse-provisioning', headers = headers)
print(r.json())
POST /v1/reverse-provisioning
Execute a reverse provisioning operation
Body parameter
{
"useCaseTemplateId": "urn:dmb:utm:op-standard:0.0.0",
"environment": "production",
"params": {
"inputA": "value A",
"inputB": 1
},
"catalogInfo": {}
}
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ReverseProvisioningRequest | true | none |
Example responses
200 Response
{
"status": "RUNNING",
"updates": {
"metadata.fieldA": "Value A",
"spec.mesh.description": "Updated value",
"spec.fieldB": {
"subfieldA": "Value A",
"subfieldB": 1
}
},
"logs": [
{
"timestamp": "2019-08-24T14:15:22Z",
"level": "DEBUG",
"message": "string",
"phase": "string"
}
]
}
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | It synchronously returns the reverse provisioning response | ReverseProvisioningStatus |
202 | Accepted | It returns a reverse provisioning task token that can be used for polling the request status | string |
400 | Bad Request | Invalid input | RequestValidationError |
500 | Internal Server Error | System problem | SystemError |
Code samples
Shell
# You can also use wget
curl -X GET /v1/reverse-provisioning/{token}/status \
-H 'Accept: application/json'
JavaScript
const headers = {
'Accept':'application/json'
};
fetch('/v1/reverse-provisioning/{token}/status',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
Java
URL obj = new URL("/v1/reverse-provisioning/{token}/status");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
Python
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('/v1/reverse-provisioning/{token}/status', headers = headers)
print(r.json())
GET /v1/reverse-provisioning/{token}/status
Get status and results of a reverse provisioning operation
Name | In | Type | Required | Description |
---|---|---|---|---|
token | path | string | true | token that identifies the request |
Example responses
200 Response
{
"status": "RUNNING",
"updates": {
"metadata.fieldA": "Value A",
"spec.mesh.description": "Updated value",
"spec.fieldB": {
"subfieldA": "Value A",
"subfieldB": 1
}
},
"logs": [
{
"timestamp": "2019-08-24T14:15:22Z",
"level": "DEBUG",
"message": "string",
"phase": "string"
}
]
}
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request status and results | ReverseProvisioningStatus |
400 | Bad Request | Invalid input | RequestValidationError |
500 | Internal Server Error | System problem | SystemError |
{
"status": "RUNNING",
"info": {
"publicInfo": {
"valid": true,
"error": {
"errors": [
"string"
]
}
}
}
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | string | true | none | - RUNNING : the validation task is still running- COMPLETED : the operation is complete and the validation result is available (info.publicInfo field)- FAILED : an exception occurred while running the validation task |
info | ValidationInfo | false | none | none |
Property | Value |
---|---|
status | RUNNING |
status | COMPLETED |
status | FAILED |
{
"refs": [
"user:alice",
"user:bob",
"group:groupA",
"group:groupB",
"group:groupC"
],
"provisionInfo": {
"request": "string",
"result": "string"
}
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
refs | [string] | true | none | Identities (i.e. users and groups) involved in the ACL update request |
provisionInfo | ProvisionInfo | true | none | Information related to the provisioning workflow of a data product component |
"DATAPRODUCT_DESCRIPTOR"
Values:
DATAPRODUCT_DESCRIPTOR
- Complete descriptor of a data product. It is used in the data product level provisioning workflow.COMPONENT_DESCRIPTOR
- Provisioning descriptor for a single data product component. Includes both the complete data product descriptor (dataProduct
object field) and the id of the component to be provisioned (componentIdToProvision
string field).DATAPRODUCT_DESCRIPTOR_WITH_RESULTS
- This value is not currently used in the scope of a specific provisioner.
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | Values: * DATAPRODUCT_DESCRIPTOR - Complete descriptor of a data product. It is used in the data product level provisioning workflow.* COMPONENT_DESCRIPTOR - Provisioning descriptor for a single data product component. Includes both the complete data product descriptor (dataProduct object field) and the id of the component to be provisioned (componentIdToProvision string field).* DATAPRODUCT_DESCRIPTOR_WITH_RESULTS - This value is not currently used in the scope of a specific provisioner. |
Property | Value |
---|---|
anonymous | DATAPRODUCT_DESCRIPTOR |
anonymous | COMPONENT_DESCRIPTOR |
anonymous | DATAPRODUCT_DESCRIPTOR_WITH_RESULTS |
{
"descriptorKind": "DATAPRODUCT_DESCRIPTOR",
"descriptor": "string",
"latestEnrichedDescriptor": "string",
"removeData": false
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
descriptorKind | DescriptorKind | true | none | Values: * DATAPRODUCT_DESCRIPTOR - Complete descriptor of a data product. It is used in the data product level provisioning workflow.* COMPONENT_DESCRIPTOR - Provisioning descriptor for a single data product component. Includes both the complete data product descriptor (dataProduct object field) and the id of the component to be provisioned (componentIdToProvision string field).* DATAPRODUCT_DESCRIPTOR_WITH_RESULTS - This value is not currently used in the scope of a specific provisioner. |
descriptor | string | true | none | Descriptor specification in yaml format. Its structure changes according to descriptorKind . |
latestEnrichedDescriptor | string | false | none | Filled only in case of provision/unprovison requests. Complete data product descriptor (YAML format), enriched with provisioning info provided by the specific provisioners during the latest (successful or failed) provisioning/unprovisioning operation for each component. If available, provisioning information is reported in the info fields at both the data product and component levels. The base schema for the info object is the same as Info, but additional fields may be included, such as the latestProvisioningOperation object. This object contains information about the most recent provisioning operation performed on the component, including the operation type (e.g. Deploy, Undeploy) in the operation field, as well as the status of the operation (e.g. NotStarted, Failed, Successful) in the status field. Please note that the information contained in a info object represents the most recent data provided by a specific provisioner for the corresponding component. However, this information may not have been provided during the last data product provisioning operation. For example, if the provisioning operation fails and the component's specific provisioner is not called, the information doesn't change. Only the latestProvisioningOperation object always refers to the most recent provisioning operation on the data product. |
removeData | boolean | true | none | If true, when a component is undeployed, its underlying data will also be deleted |
{
"status": "RUNNING",
"result": "string",
"info": {
"publicInfo": {},
"privateInfo": {}
},
"logs": [
{
"timestamp": "2019-08-24T14:15:22Z",
"level": "DEBUG",
"message": "string",
"phase": "string"
}
]
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | string | true | none | none |
result | string | true | none | none |
info | Info | false | none | none |
logs | [Log] | false | none | none |
Property | Value |
---|---|
status | RUNNING |
status | COMPLETED |
status | FAILED |
{
"valid": true,
"error": {
"errors": [
"string"
]
}
}
Result of a validation operation on a provided descriptor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
valid | boolean | true | none | Whether the provided descriptor is valid or not |
error | ValidationError | false | none | Validation error related to a provided descriptor |
{
"request": "string",
"result": "string"
}
Information related to the provisioning workflow of a data product component
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
request | string | true | none | Provisioning descriptor of type COMPONENT_DESCRIPTOR (see DescriptorKind schema) in JSON format. It had been used to provision the data product component |
result | string | true | none | Result message (e.g. a provisiong error or a success message returned by the specific provisioner in the ProvisioningStatus) |
{
"errors": [
"string"
]
}
Validation error related to a provided descriptor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | [string] | true | none | none |
{
"errors": [
"string"
],
"userMessage": "string",
"input": "string",
"inputErrorField": "string",
"moreInfo": {
"problems": [
"string"
],
"solutions": [
"string"
]
}
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | [string] | true | none | none |
userMessage | string | false | none | User-readable message to be displayed |
input | string | false | none | Optional field to include the file or descriptor that raised the error |
inputErrorField | string | false | none | Optional field to include the field path (in dot format) that raised the error |
moreInfo | ErrorMoreInfo | false | none | Object that will include the more in-depth, specific information about the error |
{
"error": "string",
"userMessage": "string",
"input": "string",
"inputErrorField": "string",
"moreInfo": {
"problems": [
"string"
],
"solutions": [
"string"
]
}
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
error | string | true | none | none |
userMessage | string | false | none | User-readable message to be displayed |
input | string | false | none | Optional field to include the file or descriptor that raised the error |
inputErrorField | string | false | none | Optional field to include the field path (in dot format) that raised the error |
moreInfo | ErrorMoreInfo | false | none | Object that will include the more in-depth, specific information about the error |
{
"problems": [
"string"
],
"solutions": [
"string"
]
}
Object that will include the more in-depth, specific information about the error
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
problems | [string] | true | none | Array of possible multiple problems: i.e. multiple validations failed |
solutions | [string] | true | none | Array of possible solutions that the developer gives to the user to solve the issue |
{
"publicInfo": {},
"privateInfo": {}
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
publicInfo | object | true | none | Fields to display in the Marketplace UI. Note that only the values compliant to specific structures will be rendered in the "Technical Information" card of the Marketplace pages. Check the documentation for additional details |
privateInfo | object | true | none | All the values in this object will be stored in the deployed descriptor, but will not be shown in the Marketplace UI |
{
"publicInfo": {
"valid": true,
"error": {
"errors": [
"string"
]
}
}
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
publicInfo | ValidationResult | true | none | Result of a validation operation on a provided descriptor |
{
"timestamp": "2019-08-24T14:15:22Z",
"level": "DEBUG",
"message": "string",
"phase": "string"
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
timestamp | string(date-time) | true | none | none |
level | string | true | none | This is the severity level of the log |
message | string | true | none | none |
phase | string | false | none | none |
Property | Value |
---|---|
level | DEBUG |
level | INFO |
level | WARNING |
level | ERROR |
{
"useCaseTemplateId": "urn:dmb:utm:op-standard:0.0.0",
"environment": "production",
"params": {
"inputA": "value A",
"inputB": 1
},
"catalogInfo": {}
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
useCaseTemplateId | string | true | none | Component's use case template id |
environment | string | true | none | Target environment |
params | object | false | none | Reverse provisioning input params |
catalogInfo | object | false | none | Content of the current catalog-info.yaml of the component |
{
"status": "RUNNING",
"updates": {
"metadata.fieldA": "Value A",
"spec.mesh.description": "Updated value",
"spec.fieldB": {
"subfieldA": "Value A",
"subfieldB": 1
}
},
"logs": [
{
"timestamp": "2019-08-24T14:15:22Z",
"level": "DEBUG",
"message": "string",
"phase": "string"
}
]
}
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
status | string | true | none | - RUNNING : the reverse provisioning operation is still running- COMPLETED : the operation is complete and the updates object is ready- FAILED : an exception occurred while running the reverse provisioning operation (additional details could be found in the logs array) |
updates | object | true | none | Field updates to be applied to the componenent's catalog-info.yaml . See the Reverse Provisioning documentation to learn more about the syntax of this object. |
logs | [Log] | false | none | none |
Property | Value |
---|---|
status | RUNNING |
status | COMPLETED |
status | FAILED |