ODM Platform's data product experience plane API Reference (v0.0.1)

Download OpenAPI specification:Download

ODM Platform Team: odm.info@quantyca.it License: Apache 2.0

Content Types

The Schema Registry REST server uses content types for both requests and responses to indicate the serialization format of the data as well as the version of the API being used. Currently, the only serialization format supported is JSON and the only version of the API is v1. However, to remain compatible with future versions, you should specify preferred content types in requests and check the content types of responses. The preferred format for content types is application/vnd.odmp.v1+json, where v1 is the API version and json is the serialization format. However, other less specific content types are permitted, including application/vnd.odmp+json to indicate no specific API version should be used (the most recent stable version will be used), application/json, and application/octet-stream. The latter two are only supported for compatibility and ease of use. Your requests should specify the most specific format and version information possible via the HTTP Accept header:

Accept: application/vnd.odmp.v1+json

The server does not supports at the moment content negotiation.

Errors

All API endpoints use a standard error message format for any requests that return an HTTP status indicating an error (any 400 or 500 statuses). For example, a request entity that omits a required field may generate the following response:

HTTP/1.1 422 Unprocessable Entity
Content-Type: application/vnd.schemaregistry.v1+json
{
"error_code": 422,
"message": "schema may not be empty"
}

Although it is good practice to check the status code, you may safely parse the response of any non-DELETE API calls and check for the presence of an error_code field to detect errors.

Domains

Domains

Get all registered domains

Get all domains registered in the Domain Registry.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "dataproduct",
  • "name": "string",
  • "displayName": "string",
  • "summary": "string",
  • "description": "string"
}

Update a domain

Update the provided domain

Request Body schema:
id
string

Auto generated Domain ID

fullyQualifiedName
required
string

Domain fully qualified name

entityType
required
string
Default: "domain"
Enum: "dataproduct" "inputport" "outputport" "discoveryport" "controlport" "observabilityport" "application" "infrastructure" "api" "template" "domain"

Entity Type

name
required
string

Domain name

displayName
required
string

Domain name to display

summary
required
string

Domain summary

description
required
string

Domain description

Responses

Request samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "dataproduct",
  • "name": "string",
  • "displayName": "string",
  • "summary": "string",
  • "description": "string"
}

Response samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "dataproduct",
  • "name": "string",
  • "displayName": "string",
  • "summary": "string",
  • "description": "string"
}

Register the domain

Register the provided domain in the Domain Registry

Request Body schema:
id
string

Auto generated Domain ID

fullyQualifiedName
required
string

Domain fully qualified name

entityType
required
string
Default: "domain"
Enum: "dataproduct" "inputport" "outputport" "discoveryport" "controlport" "observabilityport" "application" "infrastructure" "api" "template" "domain"

Entity Type

name
required
string

Domain name

displayName
required
string

Domain name to display

summary
required
string

Domain summary

description
required
string

Domain description

Responses

Request samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "dataproduct",
  • "name": "string",
  • "displayName": "string",
  • "summary": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "dataproduct",
  • "name": "string",
  • "displayName": "string",
  • "summary": "string",
  • "description": "string"
}

Get the specified domain

Get the domain identified by the input id

path Parameters
id
required
string

Identifier of the domain

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "dataproduct",
  • "name": "string",
  • "displayName": "string",
  • "summary": "string",
  • "description": "string"
}

Delete the specified domain

Delete the domain identified by the input id

path Parameters
id
required
string

Identifier of the domain

Responses

Data Products

Endpoints associated to products collection

Get all registered data products

Get all data products registered in the Data Product Registry.

query Parameters
fqn
string

Add fqn parameter to the request to get only data products with the specified fullyQualifiedName

domain
string

Add domain parameter to the request to get only data products belonging to a specific domain

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "description": "string",
  • "domain": "string"
}

Update a data product

Update the provided data product

Request Body schema:
required
id
string

Auto generated DataProduct ID

fullyQualifiedName
required
string

DataProduct fully qualified name

description
required
string

DataProduct description

domain
required
string

DataProduct domain

Responses

Request samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "description": "string",
  • "domain": "string"
}

Response samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "description": "string",
  • "domain": "string"
}

Register the the data product

Register the provided data product in the Data Product Registry

Request Body schema:
required
id
string

Auto generated DataProduct ID

fullyQualifiedName
required
string

DataProduct fully qualified name

description
required
string

DataProduct description

domain
required
string

DataProduct domain

Responses

Request samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "description": "string",
  • "domain": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "description": "string",
  • "domain": "string"
}

Get the specified data product

Get the data product identified by the input id

path Parameters
id
required
string

Identifier of the data product

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "description": "string",
  • "domain": "string"
}

Delete the specified data product

Delete the data product identified by the input id and all its associated versions

path Parameters
id
required
string

Identifier of the data product

Responses

Response samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "description": "string",
  • "domain": "string"
}

Schemas

Schemas

Get all registered schemas

Get all schemas registered in the Data Product Registry.

query Parameters
name
string

Add name parameter to the request to get only schemas with the specific name

version
string

Add version parameter to the request to get only schemas with the specific version

apiId
string

Add apiId parameter to the request to get only schemas related to the specific api

content
boolean
Default: false

Add content parameter in request to specify to include or not raw content in response. The default is false

Responses

Response samples

Content type
application/json
"string"

Register the schema

Register the provided schema in the Data Product Registry

Request Body schema:
id
integer <int64>

Auto generated Schema ID

name
required
string

Schema name

version
required
string

Schema version

mediaType
required
string

Media Type of the Schema

content
required
string

Content of the Schema

Responses

Request samples

Content type
{
  • "id": 0,
  • "name": "string",
  • "version": "string",
  • "mediaType": "string",
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "version": "string",
  • "mediaType": "string",
  • "content": "string"
}

Get the specified schema

Get the schema identified by the input id

path Parameters
id
required
integer <int64>

Identifier of the schema

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "version": "string",
  • "mediaType": "string",
  • "content": "string"
}

Delete the specified schema

Delete the schema identified by the input id

path Parameters
id
required
integer <int64>

Identifier of the schema

Responses

Response samples

Content type
application/json
{
  • "status": 0,
  • "code": "string",
  • "description": "string",
  • "message": "string",
  • "path": "string",
  • "timestamp": 0
}

Get the specified schema raw content

Get the schema raw content identified by the input id

path Parameters
id
required
integer <int64>

Identifier of the schema

Responses

Response samples

Content type
application/json
{
  • "status": 0,
  • "code": "string",
  • "description": "string",
  • "message": "string",
  • "path": "string",
  • "timestamp": 0
}

Get the api that use the specified schema

Get the api that use the schema specified by the input id

path Parameters
id
required
integer <int64>

Identifier of the schema

Responses

Response samples

Content type
application/json
"string"

Data Product Components

Data Product Components

Update a variable of a data product version

Update the value of a specific variable of the provided data product

path Parameters
id
required
string

The identifier of the data product

version
required
string

The version number

varId
required
integer <int64>

The identifier of the variable

query Parameters
value
required
string

The new value of the variable

Responses

Response samples

Content type
{
  • "id": 0,
  • "name": "string",
  • "value": "string"
}

Get all the variables of the specified data product version

Get all the existing variables of the specified data product version.

path Parameters
id
required
string

The identifier of the data product

version
required
string

The version number

Responses

Response samples

Content type
application/json
{
  • "inputPorts": [
    ],
  • "outputPorts": [
    ],
  • "discoveryPorts": [
    ],
  • "observabilityPorts": [
    ],
  • "controlPorts": [
    ]
}

Get all the ports of the specified data product version

Get all the ports of the specified data product version grouped by port type.

path Parameters
id
required
string

The identifier of the data product

version
required
string

The version number

query Parameters
portType
string
format
string

Responses

Response samples

Content type
application/json
{
  • "inputPorts": [
    ],
  • "outputPorts": [
    ],
  • "discoveryPorts": [
    ],
  • "observabilityPorts": [
    ],
  • "controlPorts": [
    ]
}

Get the infrastructure components in the internal components for the specified data product version

Get the infrastructure components in the internal components for the data product version identified by id and 'version'.The returned value is a descriptor component document compliant with DPDS version 1.0.0-DRAFT.

path Parameters
id
required
string

The identifier of the data product

version
required
string

The data product version number

query Parameters
format
string

Format used to serialize the descriptor component document. Available formats are:

  • normalized : TODO
  • canonical (default): TODO

Responses

Response samples

Content type
application/json
{
  • "externalReference": true,
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "string",
  • "name": "string",
  • "version": "string",
  • "displayName": "string",
  • "description": "string",
  • "$ref": "string",
  • "componentGroup": "string",
  • "tags": [
    ],
  • "externalDocs": {
    },
  • "platform": "string",
  • "applicationType": "string",
  • "consumesFrom": [
    ],
  • "providesTo": [
    ],
  • "dependsOn": [
    ]
}

Get the application components in the internal components for the specified data product version

Get the application components in the internal components for the data product version identified by id and 'version'.The returned value is a descriptor component document compliant with DPDS version 1.0.0-DRAFT.

path Parameters
id
required
string

The identifier of the data product

version
required
string

The data product version number

query Parameters
format
string

Format used to serialize the descriptor component document. Available formats are:

  • normalized: TODO
  • canonical (default): TODO

Responses

Response samples

Content type
application/json
{
  • "externalReference": true,
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "string",
  • "name": "string",
  • "version": "string",
  • "displayName": "string",
  • "description": "string",
  • "$ref": "string",
  • "componentGroup": "string",
  • "tags": [
    ],
  • "externalDocs": {
    },
  • "platform": "string",
  • "applicationType": "string",
  • "consumesFrom": [
    ],
  • "providesTo": [
    ],
  • "dependsOn": [
    ]
}

Owners

Owners

Get all registered owners

Get all owners registered in the Owner Registry.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Update an owner

Update the provided owner

Request Body schema:
id
string

Auto generated Owner ID

name
required
string

Owner name

Responses

Request samples

Content type
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
{
  • "id": "string",
  • "name": "string"
}

Register the Owner

Register the provided Owner in the Owner Registry

Request Body schema:
id
string

Auto generated Owner ID

name
required
string

Owner name

Responses

Request samples

Content type
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Get the specified owner

Get the owner identified by the input id

path Parameters
id
required
string

Identifier of the owner

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Delete the specified owner

Delete the owner identified by the input id

path Parameters
id
required
string

Identifier of the owner

Responses

Data Product Versions

Data Product Versions

Get all register definitions

Get all definitions registered in the Data Product Registry

path Parameters
id
required
string

The denntifier of the data product

Responses

Response samples

Content type
application/json
"string"

Create a new data product version

Create a new data product version and associate it to the specified data product

path Parameters
id
required
string

The identifier of the data product to which the new version must be associated

Request Body schema:
required
string

A data product descriptor document compliant with DPDS version 1.0.0-DRAFT

Responses

Request samples

Content type
"string"

Response samples

Content type
application/json
{
  • "dataProductDescriptor": "string",
  • "info": {
    },
  • "interfaceComponents": {
    },
  • "internalComponents": {
    },
  • "components": {
    },
  • "tags": [
    ],
  • "externalDocs": {
    }
}

Get the specified data product version

Get the data product version version of the data product identified by id.The retuned value is a descriptor document compliant with DPDS version 1.0.0-DRAFT.

path Parameters
id
required
string

The identifier of the data product

version
required
string

The data product version number

query Parameters
format
string

Format used to serialize the descriptor document. Available formats are:

  • normalized (default): TODO
  • canonical: TODO

Responses

Response samples

Content type
application/json
{
  • "dataProductDescriptor": "string",
  • "info": {
    },
  • "interfaceComponents": {
    },
  • "internalComponents": {
    },
  • "components": {