OpenMetadataIO (1.0.0)

Download OpenAPI specification:Download

OpenMetadataIO is a REST-based API enabling permissioned access to versioned metadata in a heterogeneous media supply chain. The purpose of OMIO is to create a common source of truth for metadata across production, pre-production and post-production workflows; today those workflows consist of disconnected ISV solutions reading and writing metadata to their own proprietary datastores, often requiring elaborate export/import and validation procedures to ensure integrity of metadata from one step to the next.

OpenMetadataIO seeks to solve this problem by offering a unified API for accessing metadata across all of these applications.

Below is the draft specification for the OpenMetadataIO API.

Asset Management

CRUDL operations for Assets, as defined by the OMC schema. Can be extended with custom properties.

createAsset

Create new Assets in OMIO and receive an OMC identifier.

Request Body schema: application/json
required

This action creates a new Asset within OpenMetadataIO, which can later be retrieved using its Identifier.

schemaVersion
required
string (schemaVersion)
Value: "https://movielabs.com/omc/json/schema/v2.0"

Describes the version of OMC-JSON schema that was used to create this instance

entityType
required
string (Entity Type)
Value: "Asset"
required
Array of objects (properties-identifier) non-empty

An identifier uniquely identifies an entity within a particular scope.

name
string or null (Asset name)

A human readable name for the asset

description
string or null (Asset description)

A human readable description of the asset

object (Asset Version Information)

A particular form, variant, or representation of an Asset that differs in some way from its source Asset.

object (provenance)

A record of when something was changed and by whom.

Array of (Reference entity (object or null)) or Asset (object) or null (Asset Group)

The set of Assets that make up an an asset group and has a structuralType of 'assetGroup'

(Reference entity (object or null)) or Asset Structural Characteristics (object) (Structural Characteristics)
Asset Functional Characteristics (null) or Asset Functional Characteristics (object) or Asset Functional Characteristics (object) or Asset Functional Characteristics (object) (assetFC)
Array of (Reference entity (object or null)) or any or null
Array of (Reference entity (object or null)) or any or null
object (customData)

A user defined set of custom data in the payload of the instance, used where the formal schema lacks required properties

object or null (entityInfo)

Reserved for future use to describe specific details about the instance of the entity

Responses

Request samples

Content type
application/json
{
  • "properties": {
    }
}

Response samples

Content type
application/json
{
  • "created": true,
  • "identifier": [
    ]
}

getAssetById

Returns an Asset object, given that Asset's unique ID

path Parameters
omc-id
required
string

A URL-encoded string representing the union of identifierScope and identifierValue.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

deleteAssetById

Deletes an Asset reference from OpenMetadataIO.

path Parameters
omc-id
required
string

A URL-encoded string representing the union of identifierScope and identifierValue.

Responses

updateAssetById

Updates the details of an already-created Asset with the provided OMC ID.

path Parameters
omc-id
required
string

A URL-encoded string representing the union of identifierScope and identifierValue.

Request Body schema: application/json
required
schemaVersion
required
string (schemaVersion)
Value: "https://movielabs.com/omc/json/schema/v2.0"

Describes the version of OMC-JSON schema that was used to create this instance

entityType
required
string (Entity Type)
Value: "Asset"
required
Array of objects (properties-identifier) non-empty

An identifier uniquely identifies an entity within a particular scope.

name
string or null (Asset name)

A human readable name for the asset

description
string or null (Asset description)

A human readable description of the asset

object (Asset Version Information)

A particular form, variant, or representation of an Asset that differs in some way from its source Asset.

object (provenance)

A record of when something was changed and by whom.

Array of (Reference entity (object or null)) or Asset (object) or null (Asset Group)

The set of Assets that make up an an asset group and has a structuralType of 'assetGroup'

(Reference entity (object or null)) or Asset Structural Characteristics (object) (Structural Characteristics)
Asset Functional Characteristics (null) or Asset Functional Characteristics (object) or Asset Functional Characteristics (object) or Asset Functional Characteristics (object) (assetFC)
Array of (Reference entity (object or null)) or any or null
Array of (Reference entity (object or null)) or any or null
object (customData)

A user defined set of custom data in the payload of the instance, used where the formal schema lacks required properties

object or null (entityInfo)

Reserved for future use to describe specific details about the instance of the entity

Responses

Request samples

Content type
application/json
{
  • "entityType": "Asset",
  • "identifier": [
    ],
  • "name": "string",
  • "description": "string",
  • "version": {
    },
  • "provenance": {
    },
  • "Asset": [
    ],
  • "AssetSC": {
    },
  • "assetFC": { },
  • "Context": [
    ],
  • "Depiction": [
    ],
  • "customData": { },
  • "entityInfo": { }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

getRelatedAssetsById

Returns the list of Assets associated with this Asset's unique ID

path Parameters
omc-id
required
string

A URL-encoded string representing the union of identifierScope and identifierValue.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "pagination": {
    }
}

Participant Management

CRUDL operations for Participants, as defined by the OMC schema. Can be extended with custom properties.

createParticipant

Create new participants in OMIO and receive an OMC identifier.

Request Body schema: application/json
required

This action creates a new Participant within OpenMetadataIO, which can later be retrieved using its Identifier.

object (Participant)

The entities (people, organizations, and services) that are responsible for the production of the Creative Work.

object (Person)

People are the individuals that are associated with the production

object (Department)

Part of a larger Organization with a particular set of responsibilities on the production.

object (Organization)

A legal entity or groups of people associated with the production.. with a particular purpose relative to the production.

object (Service)

A computer driven agent that can perform tasks given the proper context and structured data.

object (Role)

A set of properties that define the role of a participant within the production

Responses

Request samples

Content type
application/json
{
  • "Participant": {
    },
  • "Person": {
    },
  • "Department": {
    },
  • "Organization": {
    },
  • "Service": {
    },
  • "Role": {
    }
}

Response samples

Content type
application/json
{
  • "created": true,
  • "identifier": [
    ]
}

getParticipantById

Returns a Participant object, given that Participant's unique ID

path Parameters
omc-id
required
string

A URL-encoded string representing the union of identifierScope and identifierValue.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

deleteParticipantById

Deletes an Participant reference from OpenMetadataIO.

path Parameters
omc-id
required
string

A URL-encoded string representing the union of identifierScope and identifierValue.

Responses

updateParticipantById

Updates the details of an already-created participant with the provided OMC ID.

path Parameters
omc-id
required
string

A URL-encoded string representing the union of identifierScope and identifierValue.

Request Body schema: application/json
required
object (Participant)

The entities (people, organizations, and services) that are responsible for the production of the Creative Work.

object (Person)

People are the individuals that are associated with the production

object (Department)

Part of a larger Organization with a particular set of responsibilities on the production.

object (Organization)

A legal entity or groups of people associated with the production.. with a particular purpose relative to the production.

object (Service)

A computer driven agent that can perform tasks given the proper context and structured data.

object (Role)

A set of properties that define the role of a participant within the production

Responses

Request samples

Content type
application/json
{
  • "Participant": {
    },
  • "Person": {
    },
  • "Department": {
    },
  • "Organization": {
    },
  • "Service": {
    },
  • "Role": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

getRelatedParticipantsById

Returns the list of Participants associated with this participant's unique ID

path Parameters
omc-id
required
string

A URL-encoded string representing the union of identifierScope and identifierValue.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "pagination": {
    }
}

Role Management

CRUDL operations for Roles, which can be assigned to Participants and used to grant or deny access to metadata within OMIO.

Schema Extensions

Extend the core OMC schema by specifying additional required fields for Assets, Participants and Roles.