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

Idenntifier 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 defualt 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>

Idenntifier 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>

Idenntifier 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>

Idenntifier of the schema

Responses

Response samples

Content type
application/json
"string"

Data Product Components

Data Product Components

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": {
    },
  • "tags": [
    ],
  • "externalDocs": {
    }
}

Delete the specified data product version

Delete the data product version version of the data product identified by id

path Parameters
id
required
string
version
required
string

Responses

Response samples

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

APIs

API's definitions

Get all registered API definitions

Get all API definitions registered in the Data Product Registry.

query Parameters
name
string

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

version
string

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

specification
string

Add specification parameter to the request to get only definitions with the specific specification

specificationVersion
string

Add specificationVersion parameter to the request to get only definitions with teh specific specification version

Responses

Response samples

Content type
application/json
"string"

Register the API definition

Register the provided API definition in the Data Product Registry

Request Body schema:
id
string

Auto generated External Component ID

fullyQualifiedName
required
string

Domain fully qualified name

entityType
required
string

Entity type

name
required
string

External Component name

version
required
string

External Component version

displayName
required
string

External Component name to display

description
required
string

External Component description

specification
required
string

External Component specification

specificationVersion
required
string

External Component specification version

definitionMediaType
required
string

Media Type of the definition of the External Component

definition
required
string

Definition of the External Component

createdAt
required
string <date-time>

Creation timestamp of the External Component

updatedAt
required
string <date-time>

Update timestamp of the External Component

Responses

Request samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "string",
  • "name": "string",
  • "version": "string",
  • "displayName": "string",
  • "description": "string",
  • "specification": "string",
  • "specificationVersion": "string",
  • "definitionMediaType": "string",
  • "definition": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "string",
  • "name": "string",
  • "version": "string",
  • "displayName": "string",
  • "description": "string",
  • "specification": "string",
  • "specificationVersion": "string",
  • "definitionMediaType": "string",
  • "definition": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get the specified API definition

Get the API definition identified by the input id

path Parameters
id
required
string

Identifier of the API definition

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "string",
  • "name": "string",
  • "version": "string",
  • "displayName": "string",
  • "description": "string",
  • "specification": "string",
  • "specificationVersion": "string",
  • "definitionMediaType": "string",
  • "definition": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete the specified API definition

Delete the API definition identified by the input id

path Parameters
id
required
string

Identifier of the definition

Responses

Response samples

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

Uploads

Uploads

Upload a new data product version

Upload a new data product version using the input descriptor referenced by the rpovided uri.Create also the data product specified in the descriptor document if it does not exist yet. To create the new data product version only if the data product already exist use the endpoint POST /products/{id}/versions. Note: it is not possible to create a data product without any version associated. For this reason this endpoint creates the data product together with its first version. It can then be used also to create successive versions.

Request Body schema:
rootDocumentUri
required
string

Root path/URI of the Data Product Descriptor Location

required
object (Git)

Git object for the Data Product Descriptor Location

Responses

Request samples

Content type
{
  • "rootDocumentUri": "string",
  • "git": {
    }
}

Response samples

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

Templates

Tempates's definitions

Get all registered Template definitions

Get all Template definitions registered in the Data Product Registry.

query Parameters
name
string

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

version
string

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

specification
string

Add specification parameter to the request to get only definitions with the specific specification

specificationVersion
string

Add specificationVersion parameter to the request to get only definitions with teh specific specification version

Responses

Response samples

Content type
application/json
"string"

Register the Template definition

Register the provided Template definition in the Data Product Registry

Request Body schema:
id
string

Auto generated External Component ID

fullyQualifiedName
required
string

Domain fully qualified name

entityType
required
string

Entity type

name
required
string

External Component name

version
required
string

External Component version

displayName
required
string

External Component name to display

description
required
string

External Component description

specification
required
string

External Component specification

specificationVersion
required
string

External Component specification version

definitionMediaType
required
string

Media Type of the definition of the External Component

definition
required
string

Definition of the External Component

createdAt
required
string <date-time>

Creation timestamp of the External Component

updatedAt
required
string <date-time>

Update timestamp of the External Component

Responses

Request samples

Content type
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "string",
  • "name": "string",
  • "version": "string",
  • "displayName": "string",
  • "description": "string",
  • "specification": "string",
  • "specificationVersion": "string",
  • "definitionMediaType": "string",
  • "definition": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "string",
  • "name": "string",
  • "version": "string",
  • "displayName": "string",
  • "description": "string",
  • "specification": "string",
  • "specificationVersion": "string",
  • "definitionMediaType": "string",
  • "definition": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get the specified Template definition

Get the Template definition identified by the input id

path Parameters
id
required
string

Idenntifier of the Template definition

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "fullyQualifiedName": "string",
  • "entityType": "string",
  • "name": "string",
  • "version": "string",
  • "displayName": "string",
  • "description": "string",
  • "specification": "string",
  • "specificationVersion": "string",
  • "definitionMediaType": "string",
  • "definition": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Delete the specified Template definition

Delete the Template definition identified by the input id

path Parameters
id
required
string

Identifier of the definition

Responses

Response samples

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