Resource datamodel:system-model

Overview

The datamodel:system-model resource represents the data model of a single system on the Media Central Platform.

Properties

The datamodel:system-model resource has the following properties:

base

The system that this model refers to.

  • systemType: the system type

  • systemID: the system ID

Example:

"base": {
  "systemID": "1234",
  "systemType": "interplay-mam"
}

attributes

The information about the attributes used by the system. attributes contains two sub properties:

  • common: description of the common attributes

  • custom: description of additional, custom attributes

Both sub properties contain an array of attribute descriptions. Example:

"attributes": {
  "common": [
    {
      "id": "name",
      "appliesTo": [
        "aa:asset",
        "loc:item"
      ],
      ...
    }
  ],
  "custom": [
    {
      "id": "COMMENT",
      "description": "comment field",
      "appliesTo": [
        "aa:asset"
      ],
      ...
    }
  ]
}

asset-types

New in MC | Cloud UX 2020.4

Information about all asset types that are available for the system. This property contains an array of asset type descriptions, each with the following sub properties:

Sub Property

Description

id

Identifier of the asset type.

labels

(Optional) Contains a mapping of labels for culture codes. See labels.

description

(Optional) A description of the asset type. This is only used for human users of the API.

Example:

"asset-types": [
  {
    "id":"asset.AUDIO",
    "labels":{
      "en":"Audio"
    },
    "description":"the asset type asset.AUDIO"
  }
]

time-based

New in MC | Cloud UX 2022.3

Only when requested with insist=time-based. Some systems might not support this property.

Information about all layers of time-based Meta data that are available in the system. This property contains an array of layer descriptions. See datamodel:asset-model for details.

The datamodel:system-model resource has no link relations.

Description

The datamodel:system-model resource represents the data model of a single system on the Media Central Platform.

This includes information about the attributes that are available for assets and location items.

Example

{
  "base": {
    "systemType": "interplay-mam",
    "systemID": "1234"
  },
  "attributes": {
    "common": [
      // description of common attributes
    ],
    "custom": [
      // description of custom attributes
    ]
  }
}

Attribute Description

Description of an attribute. Example:

{
    "id":"name",
    "appliesTo":[
        "aa:asset",
        "loc:item"
    ],
    "description":"display name",
    "labels":{
        "en":"Name",
        "de":"Name"
    },
    "tooltips":{
        "en":"Name",
        "de":"Name"
    },
    "type":{
        "baseType":"string",
        "maxLength":256,
        "multiValue":false
    },
    "flags":[
        "indexed"
    ]
}

Properties:

Property Description

id

Identifier of the attribute. For common attributes, it is the same as the property name used in the common representation, e.g. "startTC", "name", or "description".

appliesTo

An array of resource names (link rels) that use the attribute. Currently, the following link rels are supported:

  • aa:asset: the attribute is used for assets

  • loc:item: the attribute is used for location items

description

(Optional) A description of the attribute. This is only used for human users of the API.

flags

(Optional) An array of flags for the attribute. Currently, the following flags have a defined meaning:

  • readonly: attribute should be displayed as read-only attribute

  • indexed: attribute is searchable.

Other flags may be added in the future.

labels

(Optional) Contains a mapping of labels for culture codes. Example:

"labels": {
  "en-US": "Aluminum",
  "en-UK": "Aluminium",
  "en": "Aluminium",
  "de": "Aluminium"
}

A client should use a language fallback mechanism to find the correct label. For example, for the culture "fr-CA" (Canadian French) the client should try "fr-CA", then "fr", then typically the default fallback language "en". If there’s still no label, the client should use the ID of the attribute as label.

subattributes

(Optional) Specifies an array of attribute descriptions, in case the attribute’s baseType is compound.

tooltips

(Optional) Defines localized tool tips for the attribute. The structure is like the one for labels.

type

Defines the type of the attribute. Example:

"type": {
  "baseType": "string",
  "maxLength": 256,
  "multiValue": false
}

The type description can have the following sub properties:

baseType

Defines the base type. Currently, the following base types are supported:

  • boolean: Boolean attribute.

  • compound: Indicates that the value of the attribute consists of one or more sub attributes (see subattributes). This is usually combined with "multiValue": true to define a multi-value compound attribute, which makes it a list of records. Effectively, this is a table with rows and columns, where the columns are the sub attributes.

  • date: Date attribute. The value is expected in the format YYYY-MM-DD.

  • datetime: Date/time attribute. The value is expected to be specified in ISO 8601 conformous format like 2017-06-12T17:29:43+02:00.

  • duration: Duration. The value is expected in the format HH:MM:SS:FF (for non-drop-frame formats), HH:MM:SS.FF (for drop-frame formats), and HH:MM:SS.FFF (for unknown frame rates; with FFF as milliseconds).

  • float: Floating point attribute. The value uses a "." as decimal separator and no thousand separator. The maximum number of digits left and right of the decimal separator can be defined by the properties preDecimalPlaces and decimalPlaces. If the properties are not given, the client should not restrict the input.

  • int: Integer attribute. The maximum number of digits can be defined by the property digits. If that property is not given, the client should allow entering 64-bit signed integers.

  • list: List attribute. The value is an identifier of an element in the taxonomy identified with the taxonomyid property.

  • masterdata: Master Data attribute.

  • string: String attribute. The maximum length can be defined by the property maxLength.

  • thesaurus: Thesaurus attribute. The value is an identifier of an element in the taxonomy identified with the taxonomyid property.

  • time: Time attribute. The value is expected in the format HH:MM:SS.

  • timecode: SMPTE timecode. The value is expected in the format HH:MM:SS:FF (for non-drop-frame formats), HH:MM:SS.FF (for drop-frame formats), and HH:MM:SS.FFF (for unknown frame rates; with FFF as milliseconds).

decimalPlaces

(Optional, and only for baseType=float) The maximum number of digits right of the decimal separator.

digits

(Optional, and only for baseType=int) The maximum number of digits.

list

(Deprecated, only for baseType=list) The ID of the list used for the attribute.

maxLength

(Optional, and only for baseType=string) The maximum number of characters supported by the attribute. If missing, the length is unlimited.

multiValue

(Optional) Defines if the attribute is a multi-value or single-value attribute. If the property is missing, the attribute is a single-value attribute.

preDecimalPlaces

(Optional, and only for baseType=float) The maximum number of digits left of the decimal separator.

taxonomyid

(Only for taxonomy attributes) The ID of the taxonomy used for the attribute.

thesaurus

(Deprecated, only for baseType=thesaurus) The ID of the thesaurus used for the attribute.

Examples

Example for an MC | AM system
 
{
  "base": {
    "systemID": "1234",
    "systemType": "interplay-mam"
  },
  "attributes": {
    "common": [
      {
        "id": "name",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "display name",
        "labels": {
          "en": "Name",
          "de": "Name"
        },
        "tooltips": {
          "en": "Name",
          "de": "Name"
        },
        "type": {
          "baseType": "string",
          "maxLength": 256,
          "multiValue": false
        },
        "flags": [
          "indexed"
        ]
      }
    ],
    "custom": [
      {
        "id": "COMMENT",
        "description": "comment field",
        "appliesTo": [
          "aa:asset"
        ],
        "labels": {
          "en": "Comment",
          "de": "Kommentar"
        },
        "tooltips": {
          "en": "Comment",
          "de": "Kommentar"
        },
        "type": {
          "baseType": "string",
          "maxLength": 256,
          "multiValue": false
        },
        "flags": [
          "readonly",
          "indexed"
        ]
      },
      {
        "id": "CULTURE",
        "description": "ISO culture code",
        "appliesTo": [
          "aa:asset"
        ],
        "labels": {
          "en": "Culture",
          "de": "Kultur"
        },
        "tooltips": {
          "en": "ISO culture code",
          "de": "ISO-Kulturkennung"
        },
        "type": {
          "baseType": "list",
          "listType": "ISO_CULTURES",
          "multiValue": false
        },
        "flags": [
          "indexed"
        ]
      }
    ]
  }
}
 

Example for a MC | PM system
 
{
  "base": {
    "systemID": "BEEF",
    "systemType": "interplay-pam"
  },
  "attributes": {
    "common": [
      {
        "id": "creator",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "Created By",
        "labels": {
          "en": "Creator"
        },
        "tooltips": {
          "en": "Created By"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "durationTC",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "Duration",
        "labels": {
          "en": "DurationTC"
        },
        "tooltips": {
          "en": "Duration"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "created",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "Creation Date",
        "labels": {
          "en": "Created"
        },
        "tooltips": {
          "en": "Creation Date"
        },
        "type": {
          "baseType": "datetime"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "modifier",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "Changed By",
        "labels": {
          "en": "Modifier"
        },
        "tooltips": {
          "en": "Changed By"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "endTC",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "End",
        "labels": {
          "en": "EndTC"
        },
        "tooltips": {
          "en": "End"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "description",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "Comments",
        "labels": {
          "en": "Description"
        },
        "tooltips": {
          "en": "Comments"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "assetTypeLabel",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "Asset type",
        "labels": {
          "en": "Asset type"
        },
        "tooltips": {
          "en": "Asset type"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "assetType",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "Asset type (ID)",
        "labels": {
          "en": "Asset type (ID)"
        },
        "tooltips": {
          "en": "Asset type (ID)"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "duration",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "Duration (frames)",
        "labels": {
          "en": "Duration"
        },
        "tooltips": {
          "en": "Duration (frames)"
        },
        "type": {
          "baseType": "int"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "path",
        "appliesTo": [
          "loc:item"
        ],
        "description": "Path",
        "labels": {
          "en": "Path"
        },
        "tooltips": {
          "en": "Path"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "editRate",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "FPS",
        "labels": {
          "en": "EditRate"
        },
        "tooltips": {
          "en": "FPS"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "name",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "Name",
        "labels": {
          "en": "Name"
        },
        "tooltips": {
          "en": "Name"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "mandatory"
        ]
      },
      {
        "id": "modified",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "Modified Date",
        "labels": {
          "en": "Modified"
        },
        "tooltips": {
          "en": "Modified Date"
        },
        "type": {
          "baseType": "datetime"
        },
        "flags": [
          "readonly"
        ]
      },
      {
        "id": "startTC",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "Start",
        "labels": {
          "en": "StartTC"
        },
        "tooltips": {
          "en": "Start"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      }
    ],
    "custom": [
      {
        "id": "com.avid.workgroup.Property.User.clip attribute name",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "clip attribute name",
        "labels": {
          "en": "clip attribute name"
        },
        "tooltips": {
          "en": "clip attribute name"
        },
        "type": {
          "baseType": "string"
        }
      },
      {
        "id": "NXN_Display_Name",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "Name",
        "labels": {
          "en": "Name"
        },
        "tooltips": {
          "en": "Name"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "indexed",
          "editor",
          "mandatory"
        ]
      },
      {
        "id": "Comments",
        "appliesTo": [
          "aa:asset",
          "loc:item"
        ],
        "description": "Comments",
        "labels": {
          "en": "Comments"
        },
        "tooltips": {
          "en": "Comments"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "editor"
        ]
      },
      {
        "id": "com.avid.workgroup.Property.System.TrackFormats",
        "appliesTo": [
          "aa:asset"
        ],
        "description": "Track Formats",
        "labels": {
          "en": "Track Formats"
        },
        "tooltips": {
          "en": "Track Formats"
        },
        "type": {
          "baseType": "string"
        },
        "flags": [
          "readonly"
        ]
      }
    ]
  },
  "asset-types": [
    {
      "id": "masterclip",
      "labels": {
        "en": "Master Clip"
      }
    },
    {
      "id": "sequence",
      "labels": {
        "en": "Sequence"
      }
    },
    {
      "id": "subclip",
      "labels": {
        "en": "Subclip"
      }
    },
    {
      "id": "group",
      "labels": {
        "en": "Group Clip"
      }
    },
    {
      "id": "motioneffect",
      "labels": {
        "en": "Motion Effect"
      }
    },
    {
      "id": "effect",
      "labels": {
        "en": "Effect"
      }
    },
    {
      "id": "renderedeffect",
      "labels": {
        "en": "Rendered Effect"
      }
    },
    {
      "id": "stereomasterclip",
      "labels": {
        "en": "Stereoscopic Master Clip"
      }
    },
    {
      "id": "stereosubclip",
      "labels": {
        "en": "Stereoscopic Subclip"
      }
    },
    {
      "id": "archivedfile",
      "labels": {
        "en": "Archived File"
      }
    }
  ],
  "time-based": [
    {
      "id": "A1",
      "description": "",
      "ranged": true,
      "gaps": true,
      "overlap": true,
      "labels": {
        "en": "A1"
      },
      "tooltips": {
        "en": "A1"
      },
      "attributes": [
        {
          "id": "comment",
          "description": "Marker Comment",
          "labels": {
            "en": "Comment"
          },
          "tooltips": {
            "en": "Comment"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        },
        {
          "id": "color",
          "description": "Marker Color",
          "labels": {
            "en": "Color"
          },
          "tooltips": {
            "en": "Color"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        }
      ]
    },
    {
      "id": "V1",
      "description": "",
      "ranged": true,
      "gaps": true,
      "overlap": true,
      "labels": {
        "en": "V1"
      },
      "tooltips": {
        "en": "V1"
      },
      "attributes": [
        {
          "id": "comment",
          "description": "Marker Comment",
          "labels": {
            "en": "Comment"
          },
          "tooltips": {
            "en": "Comment"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        },
        {
          "id": "color",
          "description": "Marker Color",
          "labels": {
            "en": "Color"
          },
          "tooltips": {
            "en": "Color"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        }
      ]
    },
    {
      "id": "A2",
      "description": "",
      "ranged": true,
      "gaps": true,
      "overlap": true,
      "labels": {
        "en": "A2"
      },
      "tooltips": {
        "en": "A2"
      },
      "attributes": [
        {
          "id": "comment",
          "description": "Marker Comment",
          "labels": {
            "en": "Comment"
          },
          "tooltips": {
            "en": "Comment"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        },
        {
          "id": "color",
          "description": "Marker Color",
          "labels": {
            "en": "Color"
          },
          "tooltips": {
            "en": "Color"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        }
      ]
    },
    {
      "id": "D1",
      "description": "",
      "ranged": true,
      "gaps": true,
      "overlap": true,
      "labels": {
        "en": "D1"
      },
      "tooltips": {
        "en": "D1"
      },
      "attributes": [
        {
          "id": "comment",
          "description": "Marker Comment",
          "labels": {
            "en": "Comment"
          },
          "tooltips": {
            "en": "Comment"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        },
        {
          "id": "color",
          "description": "Marker Color",
          "labels": {
            "en": "Color"
          },
          "tooltips": {
            "en": "Color"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        }
      ]
    },
    {
      "id": "V2",
      "description": "",
      "ranged": true,
      "gaps": true,
      "overlap": true,
      "labels": {
        "en": "V2"
      },
      "tooltips": {
        "en": "V2"
      },
      "attributes": [
        {
          "id": "comment",
          "description": "Marker Comment",
          "labels": {
            "en": "Comment"
          },
          "tooltips": {
            "en": "Comment"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        },
        {
          "id": "color",
          "description": "Marker Color",
          "labels": {
            "en": "Color"
          },
          "tooltips": {
            "en": "Color"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        }
      ]
    },
    {
      "id": "restrictions",
      "description": "Source DRMs",
      "ranged": true,
      "gaps": true,
      "overlap": true,
      "labels": {
        "en": "Restrictions"
      },
      "tooltips": {
        "en": "Restrictions"
      },
      "attributes": [
        {
          "id": "comment",
          "description": "Restriction Comment",
          "labels": {
            "en": "Comment"
          },
          "tooltips": {
            "en": "Comment"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        },
        {
          "id": "color",
          "description": "Restriction Color",
          "labels": {
            "en": "Color"
          },
          "tooltips": {
            "en": "Color"
          },
          "type": {
            "baseType": "string"
          },
          "flags": [
          ]
        },
        {
          "id": "modified",
          "description": "Restriction Modified Date",
          "labels": {
            "en": "Modified"
          },
          "tooltips": {
            "en": "Modified"
          },
          "type": {
            "baseType": "datetime"
          },
          "flags": [
            "readonly"
          ]
        }
      ]
    }
  ],
  "_links": {
    "self": {
      "href": "https://…​"
    },
    "curies": [
      {
        "name": "datamodel",
        "href": "http://developer.avid.com/ctms/api/datamodel/linkrels/{rel}.html",
        "templated": true
      }
    ]
  }
}