VIA Data Event Stream
📘
VIA Data Event Streamis 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
Features
Section titled “Features”- 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
Topics and Events
Section titled “Topics and Events”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]
Event Messages
Section titled “Event Messages”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:
| Attribute | Description |
|---|---|
| eventName | Can be on of the Event Names indicated in the above table |
| originator | The name of the service creating the event |
| tenant | The Vimond tenant that the event refers to |
| versions | List of supported event versions |
| timestamp | A ISO timestamp of when the event was created |
| guid | A unique identifier of the event |
Asset Operations Events
Section titled “Asset Operations Events”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
| Attribute | Description |
|---|---|
| eventName | Can be one of asset-created , asset-deleted, asset-updated, asset-unpublished, asset-published |
| assetId | The 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"}Category Operations Events
Section titled “Category Operations Events”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
| Attribute | Description |
|---|---|
| eventName | Can be one of category-created , category-deleted, category-updated, category-unpublished, category-published |
| categoryId | The 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}Content Panel Events
Section titled “Content Panel Events”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
| Attribute | Description |
|---|---|
| eventName | Can be one of content-panel-created, content-panel-updated, content-panel-deleted |
| contentPanelId | Internal identifier of the content panel - not in use |
| contentPanelKey | The identifier of the content panel. If the content panel wraps an asset or a category then this field is the identifier of that resource. |
| contentPanelType | To identify content type of content panel. Examples: carousel, menu, asset etc |
| parentKey | The identifier of the parent content panel |
| action | One of created , updated, deleted |
| action_on_type | Hardcoded to content_panel |
| user | The email of the user performing the operation on this content panel |
| system_name | Same 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" ]}Order/User Domain Events
Section titled “Order/User Domain Events”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" } }}Capture Order Events
Section titled “Capture Order Events”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:
| Attribute | Description |
|---|---|
| userId | Identifier of the user doing the purchase |
| orderId | Identifier of the order being captured |
| productGroupId | Identifier of the product being purchased |
| parameters | Map of string parameters specific to the payment provider being used for the purchase |
Upload Service Events
Section titled “Upload Service Events”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:
| Attribute | Description |
|---|---|
| uploadId | Identifier of the whole upload operation |
| jobId | Identifier of single chuck upload operation |
| storageType | Can be S3, S3DIRECT, LOCAL. This field is present only for VUMCompletedEvent events. |
| errorMessage | Optional, only present if there was an error during the upload. This field is present only for VUMCompletedEvent events. |
Media Content Ingest Events
Section titled “Media Content Ingest 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"]}