Skip to content

VIA Data Event Stream

📘 VIA Data Event Stream is a premium extra service outside the base service license. Please reach out to your Account Manager for pricing and options.

For batch data exports see VIA Data Exports

  • Near-real time event stream bridged from Vimond Platform to external systems
  • External systems can subscribe to entire topics or more selectively sub-events on a specific topic
  • Export events to Amazon SNS and Kinesis
  • Webhook support for HTTP

The below table shows the different Topics and Event Names that can be subscribed to

[block:parameters] { “data”: { “h-0”: “Topic”, “h-1”: “Event Names”, “0-0”: “user-service-domain-events”, “0-1”: “user-domain-event \norder-domain-event”, “1-0”: “asset-operations”, “1-1”: “asset-created \nasset-updated \nasset-deleted \nasset-published \nasset-unpublished”, “2-0”: “category-operations”, “2-1”: “category-created \ncategory-updated \ncategory-deleted \ncategory-published \ncategory-unpublished”, “3-0”: “api-internal-order-capture”, “3-1”: “capture-order”, “4-0”: “content-panel-operations”, “4-1”: “content-panel-created \ncontent-panel-updated \ncontent-panel-deleted”, “5-0”: “media-content-events”, “5-1”: “mce-ingest-started \nmce-ingest-failed \nmce-ingest-cancelled \nmce-ingest-completed”, “6-0”: “VIA 1.x events no longer available in 2.x:”, “6-1”: "", “7-0”: “asset-playback”, “7-1”: “user-asset_playback-event”, “8-0”: “player-events”, “8-1”: “player_log_event \nnext_episode \nplayer-events”, “9-0”: “playlist-operations”, “9-1”: “userplaylist-created \nuserplaylist-asset-added \nuserplaylist-asset-deleted \nuserplaylist-status-changed \nuserplaylist-deleted \nuserplaylist-overwritten \nuserplaylist-massdelete \neditorialplaylist-created \neditorialplaylist-asset-added \neditorialplaylist-asset-deleted \neditorialplaylist-status-changed \neditorialplaylist-deleted \neditorialplaylist-overwritten \neditorialplaylist-massdelete”, “10-0”: “vimond_media_file_management”, “10-1”: “asset-media-import-queued \nvmfm-ingest-skipped \nvmfm-retrieve-started \nvmfm-retrieve-completed \nvmfm-transcoder-jobs-generated \nvmfm-transcoder-started \nvmfm-transcoder-progress \nvmfm-transcoder-completed \nvmfm-archive-started \nvmfm-archive-completed \nvmfm-distribution-job-generated \nvmfm-distribution-started \nvmfm-distribution-completed \nvmfm-distribution-all-completed \nvmfm-video-file-deleted” }, “cols”: 2, “rows”: 11, “align”: [ “left”, “left” ] } [/block]

The Event Message contains a JSON structured document that is based on the standard Vimond Event format but differs according to the specific event type.

Every event contains the following base fields:

AttributeDescription
eventNameCan be on of the Event Names indicated in the above table
originatorThe name of the service creating the event
tenantThe Vimond tenant that the event refers to
versionsList of supported event versions
timestampA ISO timestamp of when the event was created
guidA unique identifier of the event

These events are generated as a result of an operation performed on an asset, for example an editor modifying an asset’s metadata using the VIA UI.

In addition to the base attributes, asset operations events contain the following extra fields

AttributeDescription
eventNameCan be one of asset-created , asset-deleted, asset-updated, asset-unpublished, asset-published
assetIdThe identifier of the asset
properties(Optional) Map of asset properties that have been modified. The field is present in the event only if there were updates to the asset’s properties
metadata(Optional) Map of metadata that have been modified. The field is present in the event only if there were updates to the asset’s metadata
platforms(Optional) List of platforms where the asset is published. The field is present in the event only if there was an update in the publishing platform of this asset

An example is shown below:

#Asset updated
{
"eventName": "asset-updated",
"originator": "vimond-rest-api-57484499fc-lkn8x:8080",
"tenant": "vimond",
"versions": [
"1.0"
],
"timestamp": "2022-09-19T08:36:30.321Z",
"guid": "0ca2f440-feda-4b20-83f0-aa7582afbf4f",
"assetId": 897874,
"properties": {},
"metadata": {
"image-pack": {
"*": "63282a0be4b09ae28a6d36fd-1663576590106"
}
}
}
#Asset published/unpublished
{
"eventName": "asset-published",
"originator": "vimond-rest-api-57484499fc-lkn8x:8080",
"tenant": "vimond",
"versions": [
"1.0"
],
"timestamp": "2022-09-19T08:33:30.549Z",
"guid": "c5fb3940-267b-42e3-8fcd-565951c76c35",
"assetId": 897874,
"platforms": [
"stb"
],
"assetCreationDate": "2024-06-26T08:52:12Z"
}

These events are generated as a result of an operation performed on a category, for example an editor publishing a category using the VIA UI.

In addition to the base attributes, category operations events contain the following extra fields

AttributeDescription
eventNameCan be one of category-created , category-deleted, category-updated, category-unpublished, category-published
categoryIdThe identifier of the asset
platforms(Optional) List of platforms where the category is published. The field is present in the event only if there was an update in the publishing platform of this category

An example is shown below:

{
"eventName": "category-updated",
"originator": "vimond-rest-api-56df86d464-zbhpq:8080",
"tenant": "vimond",
"versions": [
"1.0"
],
"timestamp": "2023-03-31T12:14:24.527Z",
"guid": "72e59f77-5b7f-4752-bb02-16e10d59cc34",
"categoryId": 377484
}

These events are generated when a content panel is created, modified, published, and unpublished using the VIA UI.

In addition to the base attributes, content panel events contain the following extra fields

AttributeDescription
eventNameCan be one of content-panel-created, content-panel-updated, content-panel-deleted
contentPanelIdInternal identifier of the content panel - not in use
contentPanelKeyThe identifier of the content panel. If the content panel wraps an asset or a category then this field is the identifier of that resource.
contentPanelTypeTo identify content type of content panel. Examples: carousel, menu, asset etc
parentKeyThe identifier of the parent content panel
actionOne of created , updated, deleted
action_on_typeHardcoded to content_panel
userThe email of the user performing the operation on this content panel
system_nameSame as originator

An example is shown below:

{
"contentPanelId": "95905",
"contentPanelKey": "7n2btiF6kN",
"parentKey": "n72sfsWS1",
"contentPanelType":"menu",
"action": "updated",
"level": "debug",
"eventName": "content-panel-updated",
"action_on_type": "content_panel",
"user": "email@vimond.com",
"originator": "vcc-curation",
"system_name": "vcc-curation",
"system_instance": "vcc-curation-c84fc579-tfcn5",
"tenant": "vimond",
"guid": "8935289a-8ea1-4cf1-86cc-fb169f61514d",
"timestamp": "2022-12-21T13:53:05+00:00",
"versions": [
"1.0"
]
}

These events are generated when there are operations on a user or an order, for example a user changing the password or buying a new product package.

In addition to the base attributes, those events contain the following extra fields

[block:parameters] { “data”: { “h-0”: “Attribute”, “h-1”: “Description”, “0-0”: “eventName”, “0-1”: “Can be one of order-domain-event, user-domain-event”, “1-0”: “eventType”, “1-1”: “A string explaining what kind of operation that has been done with the order or user etc. If eventName = user-domain-event can be one of \n_ CREATE \n_ UPDATE \n_ DELETE \n_ CHANGE_PASSWORD \n_ CHANGE_PASSWORD_BY_ADMIN \n_ RESET_PASSWORD \n_ SET_PINCODE \n_ RESET_PINCODE \n_ CHANGE_PINCODE \n\If eventName = order-domain-event can be one of \n_ INITIALIZE \n_ CREATE \n_ COMPLETE \n_ COMPLETE_EXTERNAL \n_ UPDATE \n_ RENEW \n_ RENEW_FAILED \n_ REACTIVATE \n_ TERMINATE \n_ REFUND \n_ REFUND_FAILURE \n_ CHARGE \n_ CHARGE_FAILURE \n_ EXTEND \n_ TERMINATED_EXPIRED \n_ CONVERTED_EXPIRED \n_ FREEZE \n_ UNFREEZE \n_ COMMENT \n_ FROZEN_EXPIRED \n_ SINGLE_ACCESS_EXPIRED \n_ ACCESS_EXPIRED”, “2-0”: “payload”, “2-1”: “A map containing information about the user or the order”, “3-0”: ”\_links”, “3-1”: “A structure containing a link to the element. In the context of a user for instance, the link will be the url in which the user can be accessed in the Vimond Rest API” }, “cols”: 2, “rows”: 4, “align”: [ “left”, “left” ] } [/block]

An example is shown below:

{
"id":"1005",
"eventName":"order-domain-event",
"originator":"snorres-mbp.vimond.local",
"tenant":"vimond",
"versions":[
"1.0"
],
"timestamp":"2015-02-08T09:01:42.782Z",
"guid":"4c01f1ca-940d-45bf-92de-f9d9a82be4a9",
"payload":{
"autorenewStatus":"NOT_STARTED",
"status":"ACTIVE",
"earliestEndDate":"2014-04-14T11:20:43Z",
"endDate":"2009-03-14T11:20:43Z",
"accessEndDate":"2009-03-14T17:20:43Z",
"id":1005,
"price":0.0,
"productName":"Sports Channel 1 Month",
"productGroupId":27,
"startDate":"2009-02-11T11:20:43Z",
"userId":9044,
"ip":"062.016.128.001",
"platformId":1,
"productId":7,
"productProviderId":7,
"referrer":"TV 2",
"appName":"ios-v2"
},
"eventType":"CREATE",
"_links":{
"self":{
"href":"/web/user/9044/orders/1005"
}
}
}

These events are generated when, in a payment lifecycle, an order is captured by the VIA Monetize system.

In addition to the base fields, those events contain the following fields:

AttributeDescription
userIdIdentifier of the user doing the purchase
orderIdIdentifier of the order being captured
productGroupIdIdentifier of the product being purchased
parametersMap of string parameters specific to the payment provider being used for the purchase

These events are generated in response to an upload operation on the Vimond upload service.

In addition to the base fields, those events contain the following fields:

AttributeDescription
uploadIdIdentifier of the whole upload operation
jobIdIdentifier of single chuck upload operation
storageTypeCan be S3, S3DIRECT, LOCAL. This field is present only for VUMCompletedEvent events.
errorMessageOptional, only present if there was an error during the upload. This field is present only for VUMCompletedEvent events.

These events are generated as a result of a video upload on the VIA Platform.

In addition to the base fields, those events contain the following fields:

[block:parameters] { “data”: { “h-0”: “Attribute”, “h-1”: “Description”, “0-0”: “eventName”, “0-1”: “Can be one of mce-ingest-started, mce-ingest-failed, mce-ingest-cancelled, mce-ingest-completed”, “1-0”: “companyId”, “1-1”: “Identified of the publisher id used in the VOD pipeline”, “2-0”: “assetId”, “2-1”: “Identifier of the asset used in the VOD pipeline”, “3-0”: “ingestId”, “3-1”: “The id of the ingest process”, “4-0”: “profileName”, “4-1”: “(Optional) Name of the profile used in the VOD pipeline for this ingest. Present only for the mce-ingest-started events”, “5-0”: “mediaType”, “5-1”: “(Optional) An array of ingestion media types like video, subtitle or both. Can have single or multiple types like below: \n[“video”] \n[“subtitle”] \n[“video”,“subtitle”]” }, “cols”: 2, “rows”: 6, “align”: [ “left”, “left” ] } [/block]

A sample event is shown below:

{
"eventName": "mce-ingest-started",
"originator": "vod-orchestrator",
"tenant": "vimond",
"versions": ["0.1.0"],
"timestamp": "2024-06-07T14:27:16.035Z",
"guid": "09f5d130-24da-11ef-bfb8-c132b2883275",
"companyId": "default",
"assetId": "966831",
"ingestId": "882da660-78b4-4a91-a923-deed38f21b80",
"profileName": "123456",
"mediaType": ["video","subtitle"]
}