Overview
The aa:attributes resource represents the attributes of an asset.
Properties
The aa:attributes resource has the following properties:
editRate |
The edit rate of the asset. The value is a string containing a fraction. Example:
|
---|---|
dropFrame |
Boolean flag that defines if the asset has a drop-frame framerate. If the property is missing, then the asset doesn’t use a drop-frame format. { "editRate": "30000/1001", "dropFrame": true, ... } |
attributes |
An array of JSON objects. Each JSON object represents one asset attribute with it’s value. Each JSON object has the following sub properties:
{ "name": "lead_instrument", "type": "thesaurus", "list": "MUSICAL_INSTRUMENTS", "value": "4424ZU43", "value-labels": { "en": "Harp", "de": "Harfe" } }
{ "name": "lead_instrument", "type": "thesaurus", "list": "MUSICAL_INSTRUMENTS", "value": "4424ZU43", "value-tooltips": { "en": "Harp", "de": "Harfe" } }
|
Table of supported types:
string |
A string |
---|---|
int |
An integer value |
float |
A floating point value |
boolean |
A boolean value |
date |
A date in format YYYY-DD-MM. Example: 2018-04-15 |
time |
A time in 24h format HH:MM:SS. Example: 17:06:29 |
datetime |
A date and time |
timecode |
A timecode attribute. If the asset has a valid edit rate (meaning: the property editRate is set), then the value is a number of frames. MediaCentral Asset Management: If the edit rate is not valid, timecode represents a number of milliseconds. The property unit tells the client which unit is used. The property value-labels contains a recommended display label for the value. Example:
New in MC | Cloud UX 2023.7 Please note that starting with MC | AM 2023.7 the handling of SMPTE timecode strings around midnight has changed. See timecodes in MC | AM for details. MediaCentral Production Management: If the edit rate is not valid, value represents the raw value, gotten from the backend, usually, this is a string with a SMPTE timecode. With an invalid edit rate, the property unit will be set to the value SMPTE and the property value-labels will be missing. - The client is then meant to use value to display the attribute’s value, instead of value-labels. When an attribute is updated and a string is passed, it must be a valid SMPTE timecode. When an attribute is updated and an integral value is passed, it is assumed to represent a frame count; in this case a valid edit rate must be specified. |
duration |
A duration attribute. If the asset has a valid edit rate (meaning: the property editRate is set), then the value is a number of frames. Otherwise it is a number of milliseconds. The property unit tells the client which unit is used. The property value-labels contains a recommended display label for the value. Example: MediaCentral Asset Management: If the edit rate is not valid, duration represents a number of milliseconds. The property unit tells the client which unit is used. The property value-labels contains a recommended display label for the value.
New in MC | Cloud UX 2023.7 Please note that starting with MC | AM 2023.7 the handling of SMPTE timecode strings around midnight has changed. See timecodes in MC | AM for details. MediaCentral Production Management: If the edit rate is not valid, value represents the raw value, gotten from the backend, usually, this is a string with a SMPTE timecode. With an invalid edit rate, the property unit will be set to the value SMPTE and the property value-labels will be missing. - The client is then meant to use value to display the attribute’s value, instead of value-labels. When an attribute is updated and a string is passed, it must be a valid SMPTE timecode. When an attribute is updated and an integral value is passed, it is assumed to represent a frame count; in this case a valid edit rate must be specified. |
list |
A value from a pre-defined list of values. The value of the attribute is a string containing the ID of the list entry. The additional property list defines which value list is used for the attribute. Example:
|
thesaurus |
A value from a pre-defined thesaurus. A thesaurus is a set of values organized as a tree of terms. The value of the attribute is a string containing the ID of the thesaurus entry. The additional property thesaurus defines which thesaurus is used for the attribute. Example:
|
masterdata |
A value from a pre-defined list of masterdata records. The value of the attribute is a string containing the ID of the masterdata record. The additional property masterdata defines which masterdata type is used for the attribute. Example:
|
compound |
A value that is compound of different sub attributes. This is currently only used in connection with multi-value attributes. See Multi-Value Compound for details. |
multi-value <basetype> |
A multi-value attribute of one of the base types, for example "multi-value string" or "multi-value compound". See MediaCentral Asset Management Multi-Value Attributes for details. |
Link Relations
Link to the asset that contains the attributes. |
|
Get the rows of a given multi-value attribute. |
|
Get a range of the rows of a given multi-value attribute. |
|
Update the custom attributes of an asset. |
|
Update the rows of a given multi-value attribute. |
Description
The aa:attributes resource represents the attributes of an asset.
Examples
Example: MediaCentral Asset Management aa:attributes resource
{
"attributes": [
{
"name": "MAINTITLE",
"value": "Test object 2"
},
{
"name": "SYSTEM_OBJECTOWNER",
"value": "DEFAULT"
},
{
"name": "REGISTRATION_DATE",
"type": "date",
"value": "2016-01-12"
},
{
"name": "REGISTRATION_TIME",
"type": "time",
"value": "17:26:35"
},
{
"name": "MODIFICATION_DATETIME",
"type": "datetime",
"value": "2016-01-12T17:26:35+01:00"
},
{
"name": "MODIFICATION_USERLOGIN",
"value": "admin"
},
{
"name": "REGISTRATION_DATETIME",
"type": "datetime",
"value": "2016-01-12T17:26:35+01:00"
},
{
"name": "REGISTRATION_USERLOGIN",
"value": "admin"
},
{
"name": "MODIFICATION_USERNAME",
"value": "admin"
},
{
"name": "REGISTRATION_USERNAME",
"value": "admin"
},
{
"name": "RIGHTS_INDICATOR",
"type": "list",
"list": "ma_rights_indicator",
"value": 0,
"value-labels": {
"en": "free for use"
}
},
{
"name": "SYSTEM_SOC_TC",
"value": "00:00:00.000"
}
],
"_links": {
"curies": [
{
"href": "https://developer.avid.com/ctms/api/aa/linkrels/{rel}.html",
"name": "aa",
"templated": true
},
{
"href": "https://developer.avid.com/ctms/api/ma/linkrels/{rel}.html",
"name": "ma",
"templated": true
}
],
"self": {
"href": "https://host/…"
},
"aa:asset": {
"href": "https://host/…"
},
"aa:update-asset-attributes": {
"href": "https://host/…"
}
}
}
System-Specific Extensions
MediaCentral Asset Management Multi-Value Attributes
In MediaCentral Asset Management, an attribute can contain multiple values, or even a complete table of values with multiple rows, each containing sub attributes ("multi-value compound attribute"). For those attributes, the values are returned as JSON array.
Multi-Value Non-Compound
A multi-value non-compound attribute contains a list of values. In the aa:attributes resource, the values are returned as a JSON array of values. Each item in the array has an index value, which defines the order of the values and a value property with a value.
The type of the attribute is set to "multi-value", followed by the base type, e.g. "string".
Example: A multi-value non-compound attribute "TEST_MULTI" with three rows
{
"attributes": [
{
"name": "TEST_MULTI",
"type": "multi-value string",
"value": [
{
"index": 0,
"value": "New York"
},
{
"index": 1,
"value": "Paris"
},
{
"index": 2,
"value": "Tokyo"
}
]
}
],
…
}
Multi-Value Compound
A multi-value compound attribute contains multiple rows. Each row contains a number of sub attributes. It is similar to a table with multiple rows and columns.
The value of a multi-value compound attribute is a JSON array. Each item of the array represents one row. An array item contains:
-
an index which defines the order of the rows
-
a property attributes, containing a JSON array with the sub attributes. The format of the sub attributes is the same as for the attributes property of the aa:attributes resource. Sub attributes are always single-value attributes. You can’t have nested multi-value attributes.
The type of the multi-value compound attribute is "multi-value compound".
Example: A multi-value compound attribute "CONTRIBUTORS" with two rows
{
"attributes": [
{
"name": "CONTRIBUTIONS",
"type": "multi-value compound",
"value": [
{
"index": 0,
"attributes": [
{
"name": "ROLE",
"value": "410"
},
{
"name": "REAL_NAME",
"value": "Alfred Hitchcock"
}
]
},
{
"index": 1,
"attributes": [
{
"name": "ROLE",
"value": "488"
},
{
"name": "REAL_NAME",
"value": "James Steward"
}
]
}
]
}
],
…
}
MediaCentral | Production Management Attributes
For MediaCentral Production Management the http content-type header must be set to application/hal+json in the aa:update-asset-attributes-by-id request. Attribute types can be "string", "int", "boolean" or "datetime".
Example of a Media Central Production Management attribute:
{
"attributes": [
{
"name": "com.avid.workgroup.Property.User.season",
"type": "string",
"value": "season001"
}
]
}
MediaCentral | Newsroom Management Attributes
A MediaCentral Newsroom Management system has a fixed list of asset attributes.
Name | Type | Value | Readonly | Description |
---|---|---|---|---|
BODY_LOCKED |
Boolean |
True/ False |
Yes |
Whether the story body has been locked for editing. |
FIELDS_LOCKED |
Boolean |
True/ False |
Yes |
Whether the story form has been locked for editing. |
EASY_LOCKED |
Boolean |
True/ False |
Yes |
Whether the story has been locked by user. |
KEY_LOCKED |
Boolean |
True/ False |
Yes |
Whether the story has been locked by user with password. |
EDITED_BY_MONITOR |
Boolean |
True/ False |
Yes |
Whether the story was modified by monitor. |
FLOATING |
Boolean |
True/ False |
No |
Whether the story is floating. |
GROUP_UUID |
String |
UUIDv4 |
Yes |
The story group UUID. Empty if story does not belong to a group. |
HAS_MAIL_APPEND |
Boolean |
True/ False |
Yes |
Whether the story has mail append. |
HAS_MCS_ERROR |
Boolean |
True/ False |
Yes |
Whether the story has error from MCS. |
HAS_PROJECT |
Boolean |
True/ False |
Yes |
Whether the story has been assigned to project. |
HOLDED |
Boolean |
True/ False |
No |
Whether the story was holded. |
IS_BREAK |
Boolean |
True/ False |
No |
Whether the story is break story. |
IS_MAIL |
Boolean |
True/ False |
Yes |
Whether the story is mail story. |
IS_NSML |
Boolean |
True/ False |
Yes |
Whether the story is NSML story. |
IS_WIRE |
Boolean |
True/ False |
Yes |
Whether the story is wire story. |
MAIL_UNREAD |
Boolean |
True/ False |
No |
Whether the story has not been read. |
MONITOR_PENDING |
Boolean |
True/ False |
No |
Whether monitor has pending action |
ORDERED |
Boolean |
True/ False |
No |
Whether the story was ordered. |
READONLY |
Boolean |
True/ False |
Yes |
Whether the story is read-only. |
READ_RATE |
Int |
0..65535 |
No |
Read rate value. Used in duration calculation. |
STORY_FORM |
String |
0..63 |
No |
Name of the form that applied to story. |
TIMED |
Boolean |
True/False |
No |
Whether the story has assigned audio run time. |
UUID |
String |
UUIDv4 |
Yes |
The story UUID. |
UUID_ORIGIN |
String |
UUIDv4 |
Yes |
The original story UUID. |
VERSION |
Int |
0..65535 |
Yes |
Current story version number. |
WIRE_PRIORITY |
Int |
0..65535 |
No |
Priority code, only for wires stories. |
WORD_COUNT |
Int |
0..65535 |
Yes |
Number of words in story body. Calculated on server side, depends on WORD_LENGTH value |
WORD_LENGTH |
Int |
0..65535 |
Yes |
Number of characters in the word. Used to calculate WORD_COUNT value. |
Example: MediaCentral Newsroom Management aa:attributes resource
{
"attributes": [
{
"name": "BODY_LOCKED",
"value": false,
"readonly": true
},
{
"name": "EASY_LOCKED",
"value": false,
"readonly": true
},
{
"name": "EDITED_BY_MONITOR",
"value": true,
"readonly": true
},
{
"name": "FIELDS_LOCKED",
"value": false,
"readonly": true
},
{
"name": "FLOATING",
"value": true
},
{
"name": "GROUP_UUID",
"value": "",
"readonly": true
},
{
"name": "HAS_MAIL_APPEND",
"value": false
},
{
"name": "HAS_MCS_ERROR",
"value": false
},
{
"name": "HAS_PROJECT",
"value": true,
"readonly": true
},
{
"name": "HOLDED",
"value": false
},
{
"name": "IS_BREAK",
"value": true
},
{
"name": "IS_MAIL",
"value": false
},
{
"name": "IS_NSML",
"value": true
},
{
"name": "IS_WIRE",
"value": false
},
{
"name": "KEY_LOCKED",
"value": false,
"readonly": true
},
{
"name": "MAIL_UNREAD",
"value": false
},
{
"name": "MONITOR_PENDING",
"value": false
},
{
"name": "ORDERED",
"value": true
},
{
"name": "READONLY",
"value": false
},
{
"name": "READ_RATE",
"value": 180
},
{
"name": "STORY_FORM",
"value": "DEFAULT-FORM"
},
{
"name": "TIMED",
"value": false
},
{
"name": "UUID",
"value": "aa05b897-f138-40a4-b456-3f9ff51910d9",
"readonly": true
},
{
"name": "UUID_ORIGIN",
"value": "4a03f4e2-759d-404c-899f-50b47ea63908",
"readonly": true
},
{
"name": "VERSION",
"value": 1,
"readonly": true
},
{
"name": "WIRE_PRIORITY",
"value": 0
},
{
"name": "WORD_COUNT",
"value": 4,
"readonly": true
},
{
"name": "WORD_LENGTH",
"value": 6
}
],
"_links": {
"curies": [
{
"name": "aa",
"href": "https://developer.avid.com/ctms/api/aa/linkrels/{rel}.html",
"templated": true
}
],
"aa:asset": {
"href": "https://host/…"
},
"aa:update-attributes": {
"href": "https://host/…",
"templated": true
},
"self": {
"href": "https://host/…"
}
}
}