Skip to content

Latest commit

 

History

History
1650 lines (1318 loc) · 39.5 KB

File metadata and controls

1650 lines (1318 loc) · 39.5 KB

Specific Provisioner Micro Service v2.1.0

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.

SpecificProvisioner

All the provisioning related operations

asyncValidate

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
}

Parameters

Name In Type Required Description
body body ProvisioningRequest true Details of a provisioning request to be validated

Example responses

202 Response

"string"

Responses

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
This operation does not require authentication

getValidationStatus

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

Parameters

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"
        ]
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK The request status ValidationStatus
400 Bad Request Invalid input RequestValidationError
500 Internal Server Error System problem SystemError
This operation does not require authentication

provision

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"
}

Parameters

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"
}

Responses

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
This operation does not require authentication

getStatus

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

Parameters

Name In Type Required Description
token path string true token that identifies the request

Example responses

200 Response

{
  "status": "RUNNING",
  "result": "string"
}

Responses

Status Meaning Description Schema
200 OK The request status ProvisioningStatus
400 Bad Request Invalid input RequestValidationError
500 Internal Server Error System problem SystemError
This operation does not require authentication

validate

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"
}

Parameters

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"
      ]
    }
  }
}

Responses

Status Meaning Description Schema
200 OK It synchronously returns a specific reply containing the validation result ValidationResult
500 Internal Server Error System problem SystemError
This operation does not require authentication

unprovision

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"
}

Parameters

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"
}

Responses

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
This operation does not require authentication

updateacl

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"
  }
}

Parameters

Name In Type Required Description
body body UpdateAclRequest true An access request object

Example responses

200 Response

{
  "status": "RUNNING",
  "result": "string"
}

Responses

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
This operation does not require authentication

runReverseProvisioning

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": {}
}

Parameters

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"
    }
  ]
}

Responses

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
This operation does not require authentication

getReverseProvisioningStatus

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

Parameters

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"
    }
  ]
}

Responses

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
This operation does not require authentication

Schemas

ValidationStatus

{
  "status": "RUNNING",
  "info": {
    "publicInfo": {
      "valid": true,
      "error": {
        "errors": [
          "string"
        ]
      }
    }
  }
}

Properties

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

Enumerated Values

Property Value
status RUNNING
status COMPLETED
status FAILED

UpdateAclRequest

{
  "refs": [
    "user:alice",
    "user:bob",
    "group:groupA",
    "group:groupB",
    "group:groupC"
  ],
  "provisionInfo": {
    "request": "string",
    "result": "string"
  }
}

Properties

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

DescriptorKind

"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.

Properties

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.

Enumerated Values

Property Value
anonymous DATAPRODUCT_DESCRIPTOR
anonymous COMPONENT_DESCRIPTOR
anonymous DATAPRODUCT_DESCRIPTOR_WITH_RESULTS

ProvisioningRequest

{
  "descriptorKind": "DATAPRODUCT_DESCRIPTOR",
  "descriptor": "string",
  "latestEnrichedDescriptor": "string",
  "removeData": false
}

Properties

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

ProvisioningStatus

{
  "status": "RUNNING",
  "result": "string",
  "info": {
    "publicInfo": {},
    "privateInfo": {}
  },
  "logs": [
    {
      "timestamp": "2019-08-24T14:15:22Z",
      "level": "DEBUG",
      "message": "string",
      "phase": "string"
    }
  ]
}

Properties

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

Enumerated Values

Property Value
status RUNNING
status COMPLETED
status FAILED

ValidationResult

{
  "valid": true,
  "error": {
    "errors": [
      "string"
    ]
  }
}

Result of a validation operation on a provided descriptor

Properties

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

ProvisionInfo

{
  "request": "string",
  "result": "string"
}

Information related to the provisioning workflow of a data product component

Properties

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)

ValidationError

{
  "errors": [
    "string"
  ]
}

Validation error related to a provided descriptor

Properties

Name Type Required Restrictions Description
errors [string] true none none

RequestValidationError

{
  "errors": [
    "string"
  ],
  "userMessage": "string",
  "input": "string",
  "inputErrorField": "string",
  "moreInfo": {
    "problems": [
      "string"
    ],
    "solutions": [
      "string"
    ]
  }
}

Properties

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

SystemError

{
  "error": "string",
  "userMessage": "string",
  "input": "string",
  "inputErrorField": "string",
  "moreInfo": {
    "problems": [
      "string"
    ],
    "solutions": [
      "string"
    ]
  }
}

Properties

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

ErrorMoreInfo

{
  "problems": [
    "string"
  ],
  "solutions": [
    "string"
  ]
}

Object that will include the more in-depth, specific information about the error

Properties

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

Info

{
  "publicInfo": {},
  "privateInfo": {}
}

Properties

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

ValidationInfo

{
  "publicInfo": {
    "valid": true,
    "error": {
      "errors": [
        "string"
      ]
    }
  }
}

Properties

Name Type Required Restrictions Description
publicInfo ValidationResult true none Result of a validation operation on a provided descriptor

Log

{
  "timestamp": "2019-08-24T14:15:22Z",
  "level": "DEBUG",
  "message": "string",
  "phase": "string"
}

Properties

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

Enumerated Values

Property Value
level DEBUG
level INFO
level WARNING
level ERROR

ReverseProvisioningRequest

{
  "useCaseTemplateId": "urn:dmb:utm:op-standard:0.0.0",
  "environment": "production",
  "params": {
    "inputA": "value A",
    "inputB": 1
  },
  "catalogInfo": {}
}

Properties

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

ReverseProvisioningStatus

{
  "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"
    }
  ]
}

Properties

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

Enumerated Values

Property Value
status RUNNING
status COMPLETED
status FAILED