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/…" } } }