MaterialInstance

A Track can have multiple MaterialInstances. A MaterialInstance references an actual file on a disk.

A MaterialInstance has a zone, indicating the location of the setup the MAI is stored on.
So, a single Track can have multiple MAI-s, with each of them being in a different zone. However, it is also possible to have multiple MAI-s, even within the same zone. This happens when the media format uses multiple files to store a single media item (e.g., audio and video in different files).

Some examples to make things clear:

A single file video on one location

Say you upload a simple .mp4 file. In this case, all the Tracks of the RAW MOI (both AUDIO and VIDEO) will point to the same MaterialInstance.

A single file video on multiple locations

Say you back up a simple .mp4 file with Edge. Then you ingest it into Limecraft Flow.
Limecraft Flow will now know of two MaterialInstances, each of them in a different zone. The zone indicates the physical location.

A P2 video on one location

P2 stores AUDIO and VIDEO in different files.
Limecraft Flow will know 5 MaterialInstances for a P2 video with 4 audio channels.

Property Reference

Field Name Required Type Description Format

alternateBackupLocation

✘

String

alternateBackupMetadata

✘

Object

alternateBackupType

✘

String

archive1Location

✘

String

archive1Metadata

✘

Object

archive1Type

✘

String

archive2Location

✘

String

archive2Metadata

✘

Object

archive2Type

✘

String

archive3Location

✘

String

archive3Metadata

✘

Object

archive3Type

✘

String

backupCompleted

✘

Date

date-time

backupStarted

✘

Date

date-time

businessKey

✘

String

created

✘

Date

The time when this resource was created

date-time

createdBy

✘

String

The request or process that created this resource

creatorId

✘

Long

The id of the user who created this resource

int64

deleted

✘

Boolean

deletedTimestamp

✘

Date

date-time

filename

✘

String

fingerprints

✘

Set of string

growing

✘

Boolean

id

✔

Long

The id of this resource

int64

lastUpdated

✘

Date

The time when this resource was last updated

date-time

location

✘

String

locationMetadata

✘

Object

md5

✘

String

md5Partials

✘

String

md5VerificationCompleted

✘

Date

date-time

md5VerificationStatus

✘

String

Enum: NOT_VERIFIED, VERIFIED, REJECTED,

mediaObjectId

✘

Long

int64

mediaObjectType

✘

String

Enum: IMAGE, DOCUMENT, PENDING, AUDIO, VIDEO, SNIPPET, PACKAGE,

metadata

✘

Boolean

modifiedBy

✔

String

The request or process responsible for the last update of this resource

moiType

✘

String

Enum: RAW, PROXY, EDL, SHOTSTITCH, STITCH, THUMB, THUMB_SHOT, THUMB_SIXTY, WAVEFORM, AUDIO_MONO, AUDIO_SPEECH, VOLDEMORT_XML, ATTACHMENT, HDR_PROXY, MEZZANINE_PROXY,

mxfReport

✘

Boolean

objectType

✘

String

The data model type or class name of this resource

onAlternateBackup

✘

Boolean

onAlternateBackupTimestamp

✘

Date

date-time

onArchive1

✘

Boolean

onArchive1Timestamp

✘

Date

date-time

onArchive2

✘

Boolean

onArchive2Timestamp

✘

Date

date-time

onArchive3

✘

Boolean

onArchive3Timestamp

✘

Date

date-time

onBackup

✘

Boolean

onBackupTimestamp

✘

Date

date-time

onFlow

✘

Boolean

onFlowTimestamp

✘

Date

date-time

onsite

✘

Boolean

pathOnCard

✘

String

pattern

✘

String

productionId

✘

Long

int64

removeFromQuota

✘

Boolean

shouldBeOnAlternateBackup

✘

Boolean

shouldBeOnAlternateBackupTimestamp

✘

Date

date-time

shouldBeOnBackup

✘

Boolean

shouldBeOnBackupTimestamp

✘

Date

date-time

shouldBeOnFlow

✘

Boolean

shouldBeOnFlowTimestamp

✘

Date

date-time

size

✘

Long

int64

tracks

✘

Set of Track

transferDetails

✘

TransferDetails

uid

✘

String

uploading

✘

Boolean

version

✔

Long

The version of this resource, used for Optimistic Locking

int64

volumeLocations

✘

List of VolumeLocation

zone

✘

String

Limecraft Flow Location Flags

Material instances have the following location flags:

  • onFlow: indicates whether a file is present on the internal storage or not.

  • onBackup: indicates the material has been backed up to S3. Internal Limecraft Flow functionality.

  • onArchive1, onArchive2, onArchive3: indicates whether a file is present on an archive location or not.

And the following indicators of availability:

  • shouldBeOnFlow

  • shouldBeOnBackup

These indicate if the file should be present, or not, on the respective system.

If the material is present on Limecraft Flow (onFlow=true) but we set shouldBeOnFlow=false, it states that even though the material is present on Limecraft Flow, we do not want it there, so it will be removed by the material service (after a certain cooldown period).

Setting shouldBeOnFlow=true while onFlow is false is a state in which we expect the material to be present on Limecraft Flow, but it is not there. This means we might have to recover from some backup location, this behavior however is not (yet) supported completely.

onlineLocations

There is also the onlineLocations setting. This accepts fields like archive1, indicating the archive1 location is to be considered "online". Meaning the file is available for download, from that location.

onlineLocations is usually set on account or production level (in the account/production settings) and must be set before any material is added to the production. Changing this setting will yield incorrect online flags and break functionality.

The online flag is a property of MediaObjectInstance.materialInfo

If the media object instance materialInfo.online is set, the material is available for download through Limecraft Flow.