Skip to main content

Player Types Reference

Tracks

LuraTracks

ParameterTypeDescription
videoList<LuraTrack.Video>Video tracks of current media
audioList<LuraTrack.Audio>Audio tracks of current media
captionList<LuraTrack.Text>Text tracks of current media
viewgridList<LuraTrack.ViewGrid>View grid tracks of current media
@Serializable
data class LuraTracks(
val video: List<LuraTrack.Video> = emptyList(),
val audio: List<LuraTrack.Audio> = emptyList(),
val caption: List<LuraTrack.Text> = emptyList(),
val viewgrid: List<LuraTrack.ViewGrid> = emptyList(),
)

LuraTrack.Video

ParameterTypeDescription
idString?ID of track
widthInt?Width of video track
heightInt?Height of video track
bitrateInt?Bitrate of video track
languageString?Language of video track
frameRateFloatFrame rate of video track
activeBooleanWhether the video track is selected
isCurrentBooleanWhether this is the current video track
@Serializable
data class Video(
val id: String? = null,
val width: Int? = null,
val height: Int? = null,
val bitrate: Int? = null,
val language: String? = "",
val frameRate: Float = 30.0f,
var active: Boolean = false,
var isCurrent: Boolean = false,
) : LuraTrack

LuraTrack.Audio

ParameterTypeDescription
idString?ID of track
bitrateInt?Bitrate of audio track
languageString?Language of audio track
channelsInt?Channel count of audio track
activeBooleanWhether the audio track is selected
labelString?Display label of audio track
@Serializable
data class Audio(
val id: String? = null,
val bitrate: Int? = null,
val language: String? = "",
val channels: Int? = null,
var active: Boolean = false,
val label: String? = null,
) : LuraTrack

LuraTrack.Text

ParameterTypeDescription
idString?ID of track
languageString?Language of text track
activeBooleanWhether the text track is selected
labelString?Display label of text track
@Serializable
data class Text(
val id: String? = null,
val language: String? = "Off",
var active: Boolean = false,
val label: String? = null,
) : LuraTrack

LuraTrack.ViewGrid

ParameterTypeDescription
gridIdStringIdentifier of the view grid
audioLanguageStringAudio language associated with the grid
leftFloatLeft position of the grid
topFloatTop position of the grid
widthFloatWidth of the grid
heightFloatHeight of the grid
activeBooleanWhether the view grid is selected
isCompositeBooleanWhether the grid is composite
tsPlayAtLong?Timestamp to play at
@Serializable
data class ViewGrid(
val gridId: String,
val audioLanguage: String = "",
val left: Float,
val top: Float,
val width: Float,
val height: Float,
var active: Boolean = false,
val isComposite: Boolean = false,
val tsPlayAt: Long? = null,
) : LuraTrack

Configuration

LuraConfiguration

ParameterTypeDescription
nameString?Configuration name
luraLura?Credentials for Lura backend
controlsLuraControlsConfigurationControls configuration
analyticsLuraAnalyticsConfiguration?Analytics configuration
contentLuraContent?Content configuration
offlinePlaybackLuraOfflineConfiguration?Offline playback configuration
castLuraCastConfiguration?Cast configuration
adsLuraAdsConfiguration?Ads configuration
pluginsLuraPluginsConfigurations?Plugin configurations
licenseLuraLicense?Player license
debugBoolean?Debug mode
playerOpsKeyString?Player operations key for remote logging
initializationLuraInitializationConfiguration?Initialization configuration
teasersLuraTeaserConfiguration?Teaser configuration
highlightsLuraHighlightsConfiguration?Highlights configuration
concurrencyLuraConcurrencyConfiguration?Concurrency configuration
latencyLuraLatencyConfiguration?Latency configuration
nxsLuraNxsConfiguration?NXS request configuration
systemLuraSystemConfiguration?System metadata from configuration response
@Serializable
data class LuraConfiguration(
val name: String? = null,
val lura: Lura? = null,
val controls: LuraControlsConfiguration = LuraControlsConfiguration(),
val analytics: LuraAnalyticsConfiguration? = null,
val content: LuraContent? = null,
val offlinePlayback: LuraOfflineConfiguration? = null,
val cast: LuraCastConfiguration? = null,
val ads: LuraAdsConfiguration? = null,
val plugins: LuraPluginsConfigurations? = null,
val license: LuraLicense? = null,
val debug: Boolean? = false,
val playerOpsKey: String? = null,
val initialization: LuraInitializationConfiguration? = null,
val teasers: LuraTeaserConfiguration? = null,
val highlights: LuraHighlightsConfiguration? = null,
val concurrency: LuraConcurrencyConfiguration? = null,
val latency: LuraLatencyConfiguration? = null,
val nxs: LuraNxsConfiguration? = null,
val system: LuraSystemConfiguration? = null,
)

Lura

ParameterTypeDescription
appKeyString?Lura configuration app key
assetIdString?Lura asset ID
tokenString?Lura token
@Serializable
data class Lura internal constructor(
val appKey: String? = null,
var assetId: String? = null,
val token: String? = null,
) {

constructor(assetId: String, appKey: String) : this(
appKey = appKey,
assetId = assetId,
token = null
)

constructor(token: String) : this(
appKey = null,
assetId = null,
token = token
)
}

LuraControlsConfiguration

ParameterTypeDescription
autoplayBooleanWhether autoplay is enabled
enabledBooleanWhether controls are enabled
mutedBooleanWhether the player is muted
volumeDoubleVolume value
layoutStringControls layout
loopBooleanWhether loop is enabled
mediaSessionLuraMediaSessionConfiguration?MediaSession configuration
@Serializable
data class LuraControlsConfiguration(
val autoplay: Boolean = false,
val enabled: Boolean = true,
val muted: Boolean = false,
val volume: Double = 0.9,
val layout: String = "default",
val loop: Boolean = false,
val mediaSession: LuraMediaSessionConfiguration? = null,
)

LuraMediaSessionConfiguration

ParameterTypeDescription
enabledBooleanWhether MediaSession is enabled
@Serializable
data class LuraMediaSessionConfiguration(
val enabled: Boolean = false,
)

LuraLicense

ParameterTypeDescription
licenseKeyString?License key
urlString?License URL
dataString?License data
@Serializable
data class LuraLicense(
val licenseKey: String? = null,
val url: String? = null,
val data: String? = null,
)

LuraSystemConfiguration

ParameterTypeDescription
tsDouble?Unix timestamp in seconds when the configuration was produced
@Serializable
data class LuraSystemConfiguration(
val ts: Double? = null,
)

LuraConcurrencyConfiguration

ParameterTypeDescription
accountIdString?Concurrency account ID
deviceIdString?Device ID
enabledBoolean?Whether concurrency limiting is enabled
maxInt?Maximum concurrent streams
@Serializable
data class LuraConcurrencyConfiguration(
val accountId: String? = null,
val deviceId: String? = null,
val enabled: Boolean? = null,
val max: Int? = null,
)

LuraTeaserConfiguration

ParameterTypeDescription
enabledBooleanWhether teasers are enabled
modeString?Teaser mode
mediaList<LuraMedia>?Teaser media list
@Serializable
data class LuraTeaserConfiguration(
val enabled: Boolean = false,
val mode: String? = null,
val media: List<LuraMedia>? = null,
)

LuraNxsConfiguration

ParameterTypeDescription
hostString?Override host for NXS service requests
@Serializable
data class LuraNxsConfiguration(
val host: String? = null,
)

Content & Media

LuraContent

ParameterTypeDescription
mediaList<LuraMedia>?List of media for content
lowLatencyMediaList<LuraMedia>?Optional low-latency media for live content
preferredDRMSystemsList<String>?Preferred DRM systems
idString?Content ID
titleString?Content title
descriptionString?Content description
languageString?Content language
typeLuraVideoType?Video type
annotationsList<LuraAnnotation>?Content annotations
startAtDoubleStart position in seconds
aspectRatioString?Aspect ratio in W:H format
dvrLuraDVR?DVR configuration
@Serializable
data class LuraContent(
var media: List<LuraMedia>? = null,
var lowLatencyMedia: List<LuraMedia>? = null,
val preferredDRMSystems: List<String>? = null,
val id: String? = null,
val title: String? = null,
val description: String? = null,
val language: String? = null,
val type: LuraVideoType? = null,
val annotations: List<LuraAnnotation>? = null,
var startAt: Double = 0.0,
var aspectRatio: String? = null,
val dvr: LuraDVR? = null,
)

LuraMedia

ParameterTypeDescription
typeStringMedia MIME type
urlStringMedia URL
licenseUrlString?DRM license URL
heightIntMedia height
widthIntMedia width
languageString?Media language
@Serializable
data class LuraMedia(
val type: String,
val url: String,
val licenseUrl: String? = null,
val height: Int = 0,
val width: Int = 0,
val language: String? = null,
)

LuraVideoType

CaseValue
LIVE"LIVE"
VOD"VOD"
LINEAR"LINEAR"
NONE"NONE"
@Serializable(with = LuraVideTypeSerializer::class)
enum class LuraVideoType(val type: String) {
LIVE("LIVE"),
VOD("VOD"),
LINEAR("LINEAR"),
NONE("NONE");
}

LuraAnnotation

ParameterTypeDescription
startDoubleStarting time of the annotation in seconds
endDoubleEnding time of the annotation in seconds
typeStringType of the annotation (e.g. intro, outro)
labelString?Label for the annotation
@Serializable
data class LuraAnnotation(
val start: Double = 0.0,
val end: Double = 0.0,
val type: String = "",
val label: String? = null,
)

LuraDVR

ParameterTypeDescription
enabledBooleanWhether DVR is enabled for the live stream
modeLuraDVRMode?DVR activation mode
availabilityWindowDouble?DVR availability window duration in seconds
@Serializable
data class LuraDVR(
val enabled: Boolean = false,
val mode: LuraDVRMode? = null,
val availabilityWindow: Double? = null,
)

LuraDVRMode

CaseValue
EVENT"event"
WINDOW"window"
@Serializable
enum class LuraDVRMode {
@SerialName("event") EVENT,
@SerialName("window") WINDOW,
}

LuraTrickPlayInformation

ParameterTypeDescription
widthIntWidth of trick play image
heightIntHeight of trick play image
rowsInt?Number of rows in sprite sheet
columnsInt?Number of columns in sprite sheet
durationInt?Duration per thumbnail
@Serializable
data class LuraTrickPlayInformation(
val width: Int,
val height: Int,
val rows: Int? = null,
val columns: Int? = null,
val duration: Int? = null,
)

LuraOfflineConfiguration

ParameterTypeDescription
resolutionLuraOfflineVideoResolutionResolution of video rendition
playWhenAvailableBooleanPlay from local storage when available
@Serializable
data class LuraOfflineConfiguration(
val resolution: LuraOfflineVideoResolution = LuraOfflineVideoResolution.HD,
val playWhenAvailable: Boolean = false,
)

Cast

LuraCastConfiguration

ParameterTypeDescription
chromecastLuraChromecastConfigurationChromecast configuration
@Serializable
data class LuraCastConfiguration(
val chromecast: LuraChromecastConfiguration = LuraChromecastConfiguration(),
)

LuraChromecastConfiguration

ParameterTypeDescription
enabledBooleanWhether Chromecast is enabled
appIdString?Chromecast receiver app ID
@Serializable
data class LuraChromecastConfiguration(
val enabled: Boolean = false,
val appId: String? = null,
)

Initialization

LuraInitializationConfiguration

ParameterTypeDescription
videoLuraVideoInitializationConfiguration?Video initialization settings
captionLuraCaptionInitializationConfiguration?Caption initialization settings
audioLuraAudioInitializationConfiguration?Audio initialization settings
@Serializable
data class LuraInitializationConfiguration(
val video: LuraVideoInitializationConfiguration? = null,
val caption: LuraCaptionInitializationConfiguration? = null,
val audio: LuraAudioInitializationConfiguration? = null,
)

LuraVideoInitializationConfiguration

ParameterTypeDescription
abrEnabledBooleanWhether adaptive bitrate is enabled
preferredBitrateLong?Preferred initial bitrate
latencyModeLuraLatencyMode?Initial latency mode
@Serializable
data class LuraVideoInitializationConfiguration(
val abrEnabled: Boolean = true,
val preferredBitrate: Long? = null,
val latencyMode: LuraLatencyMode? = null,
)

LuraCaptionInitializationConfiguration

ParameterTypeDescription
enabledBooleanWhether captions are enabled at start
preferredLanguageString?Preferred caption language
@Serializable
data class LuraCaptionInitializationConfiguration(
val enabled: Boolean = false,
val preferredLanguage: String? = null,
)

LuraAudioInitializationConfiguration

ParameterTypeDescription
preferredLanguageString?Preferred audio language
@Serializable
data class LuraAudioInitializationConfiguration(
val preferredLanguage: String? = null,
)

Latency

LuraLatencyConfiguration

ParameterTypeDescription
allowedModesLuraLatencyAllowedModes?Allowed latency modes
@Serializable
data class LuraLatencyConfiguration(
val allowedModes: LuraLatencyAllowedModes? = null,
)

LuraLatencyAllowedModes

FieldTypeDescription
lowBoolean?Whether low-latency mode may be exposed. Defaults to true.
@Serializable
data class LuraLatencyAllowedModes(
val low: Boolean = true,
)

LuraLatencyMode

ValueDescription
DEFAULTDefault latency mode ("def").
LOW_LATENCYLow latency mode ("low").
@Serializable
enum class LuraLatencyMode(val value: String) {
@SerialName("def") DEFAULT("def"),
@SerialName("low") LOW_LATENCY("low"),
}

Highlights

LuraHighlightsConfiguration

ParameterTypeDescription
enabledBooleanWhether highlights are enabled
urlString?Highlights feed URL
refreshPeriodIntRefresh period in seconds
autoSwitchLuraAutoSwitch?Auto-switch configuration
modeLuraHighlightsModeHighlights display mode
@Serializable
data class LuraHighlightsConfiguration(
val enabled: Boolean = false,
val url: String? = null,
val refreshPeriod: Int = 0,
val autoSwitch: LuraAutoSwitch? = null,
val mode: LuraHighlightsMode = LuraHighlightsMode.SIDE_BY_SIDE,
)

LuraHighlightsMode

CaseValue
CONTENT_REPLACE"content-replace"
SIDE_BY_SIDE"side-by-side"
@Serializable
enum class LuraHighlightsMode {
@SerialName("content-replace") CONTENT_REPLACE,
@SerialName("side-by-side") SIDE_BY_SIDE,
}

LuraHighlight

ParameterTypeDescription
idStringHighlight identifier
modeLuraHighlightsModeDisplay mode
activeBooleanWhether the highlight is active
timeLongHighlight time in milliseconds
descriptionStringHighlight description
titleStringHighlight title
posterString?Poster image URL
@Serializable
data class LuraHighlight(
val id: String,
val mode: LuraHighlightsMode = LuraHighlightsMode.SIDE_BY_SIDE,
val active: Boolean = false,
val time: Long = 0,
val description: String = "",
val title: String = "",
val poster: String? = null,
)

Playlist

LuraPlaylistConfiguration

ParameterTypeDescription
luraLura?Lura credentials
startingIndexIntIndex of the first playlist item
repeatBooleanWhether the playlist repeats
itemsList<LuraConfiguration>Playlist items
autoSwitchLuraAutoSwitch?Auto-switch configuration
nextPageString?URL for the next playlist page
layoutStringPlaylist layout
adsLuraPlaylistAds?Playlist ads configuration
slideAnimationLuraSlideAnimation?Slide animation configuration
nxsLuraNxsConfiguration?NXS request configuration
@Serializable
data class LuraPlaylistConfiguration(
val lura: Lura? = null,
val startingIndex: Int = 0,
val repeat: Boolean = false,
var items: List<LuraConfiguration> = emptyList(),
val autoSwitch: LuraAutoSwitch? = null,
val nextPage: String? = null,
val layout: String = "default",
val ads: LuraPlaylistAds? = null,
val slideAnimation: LuraSlideAnimation? = null,
val nxs: LuraNxsConfiguration? = null,
)

LuraAutoSwitch

ParameterTypeDescription
enabledBooleanWhether auto-switch is enabled
durationDoubleAuto-switch duration in seconds
@Serializable
data class LuraAutoSwitch(
val enabled: Boolean = false,
val duration: Double = 0.0,
)

LuraSlideAnimation

ParameterTypeDescription
enabledBoolean?Whether slide animation is enabled
durationDoubleAnimation duration in seconds
@Serializable
data class LuraSlideAnimation(
val enabled: Boolean?,
val duration: Double,
)

LuraPlaylistAds

ParameterTypeDescription
criteriaLuraPlaylistAdsCriteria?Ads insertion criteria
timeDouble?Time-based ads threshold in seconds
countInt?Count-based ads threshold
macrosMap<String, Any?>?Ad macros
@Serializable
data class LuraPlaylistAds(
val criteria: LuraPlaylistAdsCriteria? = null,
val time: Double? = null,
val count: Int? = null,
val macros: Map<String, Any?>? = null,
)

LuraPlaylistAdsCriteria

CaseValue
TIME"time"
COUNT"count"
@Serializable
enum class LuraPlaylistAdsCriteria {
@SerialName("time") TIME,
@SerialName("count") COUNT,
}

Ads Configuration

LuraAdsConfiguration

ParameterTypeDescription
macrosMap<String, Any?>?Ad macros
pluginTimeoutDouble?Plugin timeout in seconds
clientSideLuraClientSideConfiguration?Client-side ad configuration
serverSideLuraServerSideConfiguration?Server-side ad configuration
nonLinearLuraNonLinearConfiguration?Non-linear ad configuration
sgaiLuraSgaiConfiguration?SGAI configuration
policyLuraAdsPolicyConfigurationAds policy configuration
@Serializable
data class LuraAdsConfiguration(
val macros: Map<String, Any?>? = null,
val pluginTimeout: Double? = null,
val clientSide: LuraClientSideConfiguration? = null,
val serverSide: LuraServerSideConfiguration? = null,
val nonLinear: LuraNonLinearConfiguration? = null,
val sgai: LuraSgaiConfiguration? = null,
val policy: LuraAdsPolicyConfiguration = LuraAdsPolicyConfiguration(),
)

LuraClientSideConfiguration

ParameterTypeDescription
providerString?Ad provider name
freewheelLuraFreewheelConfiguration?FreeWheel configuration
gamLuraGamConfiguration?GAM configuration
genericLuraGenericConfiguration?Generic VAST/VMAP configuration
@Serializable
data class LuraClientSideConfiguration(
val provider: String? = "NA",
val freewheel: LuraFreewheelConfiguration? = null,
val gam: LuraGamConfiguration? = null,
val generic: LuraGenericConfiguration? = null,
)

LuraServerSideConfiguration

ParameterTypeDescription
providerString?Ad provider name
gamLuraGamConfiguration?GAM server-side configuration
@Serializable
data class LuraServerSideConfiguration(
val provider: String? = "NA",
val gam: LuraGamConfiguration? = null,
)

LuraNonLinearConfiguration

ParameterTypeDescription
pauseNonLinearPauseConfiguration?Pause ad configuration
@Serializable
data class LuraNonLinearConfiguration(
val pause: NonLinearPauseConfiguration? = null,
)

NonLinearPauseConfiguration

ParameterTypeDescription
providerString?Pause ad provider
genericNonLinearPauseGenericConfiguration?Generic pause ad configuration
@Serializable
data class NonLinearPauseConfiguration(
val provider: String? = "Generic",
val generic: NonLinearPauseGenericConfiguration? = null,
)

NonLinearPauseGenericConfiguration

ParameterTypeDescription
urlString?Ad creative URL
xPositionLuraXPosition?Horizontal position
yPositionLuraYPosition?Vertical position
backgroundOpacityFloat?Background opacity
slideAnimationNonLinearSlideAnimationConfiguration?Slide animation settings
paddingNonLinearPaddingConfiguration?Padding settings
@Serializable
data class NonLinearPauseGenericConfiguration(
val url: String? = null,
val xPosition: LuraXPosition? = null,
val yPosition: LuraYPosition? = null,
val backgroundOpacity: Float? = 0.4f,
val slideAnimation: NonLinearSlideAnimationConfiguration? = null,
val padding: NonLinearPaddingConfiguration? = null,
)

NonLinearSlideAnimationConfiguration

ParameterTypeDescription
enabledBoolean?Whether slide animation is enabled
directionLuraSlideDirections?Slide direction
durationDouble?Animation duration in seconds
@Serializable
data class NonLinearSlideAnimationConfiguration(
val enabled: Boolean? = false,
val direction: LuraSlideDirections? = null,
val duration: Double? = null,
)

NonLinearPaddingConfiguration

ParameterTypeDescription
topString?Top padding
bottomString?Bottom padding
leftString?Left padding
rightString?Right padding
@Serializable
data class NonLinearPaddingConfiguration(
val top: String? = null,
val bottom: String? = null,
val left: String? = null,
val right: String? = null,
)

LuraGamConfiguration

ParameterTypeDescription
enabledBooleanWhether GAM is enabled
adTagUrlString?Client-side ad tag URL
apiKeyString?API key
cmsIdString?CMS ID for DAI VOD
custParamsString?Custom parameters
customAssetKeyString?Custom asset key for pod serving
assetKeyString?Asset key for DAI live
liveStreamPrefetchSecondsInt?Live stream prefetch seconds
macrosMap<String, Any?>?Ad macros
modeString?GAM mode
networkCodeString?Network code for pod serving
videoIDString?Video ID for DAI VOD
streamFormatString?Stream format
adTagParametersMap<String, Any?>Ad tag parameters
@Serializable
data class LuraGamConfiguration(
val enabled: Boolean = false,
val adTagUrl: String? = null,
val apiKey: String? = null,
val cmsId: String? = null,
val custParams: String? = null,
val customAssetKey: String? = null,
val assetKey: String? = null,
val liveStreamPrefetchSeconds: Int? = null,
val macros: Map<String, Any?>? = null,
val mode: String? = null,
val networkCode: String? = null,
val videoID: String? = null,
val streamFormat: String? = null,
val adTagParameters: Map<String, Any?> = mapOf(),
)

LuraFreewheelConfiguration

ParameterTypeDescription
enabledBooleanWhether FreeWheel is enabled
companionString?Companion ad configuration
customMap<String, Any?>?Custom parameters
flagsString?FreeWheel flags
networkIdString?Network ID
profileIdString?Profile ID
serverURLString?Server URL
siteSectionIdString?Site section ID
videoAssetIdString?Video asset ID
@Serializable
data class LuraFreewheelConfiguration(
val enabled: Boolean,
val companion: String? = null,
val custom: Map<String, Any?>? = null,
val flags: String? = null,
val networkId: String? = null,
val profileId: String? = null,
val serverURL: String? = null,
val siteSectionId: String? = null,
val videoAssetId: String? = null,
)

LuraGenericConfiguration

ParameterTypeDescription
breaksList<LuraGenericBreak>Ad break definitions
macrosMap<String, Any?>?Ad macros
@Serializable
data class LuraGenericConfiguration(
val breaks: List<LuraGenericBreak> = emptyList(),
val macros: Map<String, Any?>? = null,
)

LuraGenericBreak

ParameterTypeDescription
offsetString?Break offset (start, end, HH:mm, HH:mm:ss, or HH:mm:ss.SSS)
urlStringVAST or VMAP URL
@Serializable
data class LuraGenericBreak(
val offset: String? = null,
val url: String = "",
)

LuraSgaiConfiguration

ParameterTypeDescription
enabledBoolean?Whether SGAI is enabled
assetIdString?SGAI asset ID
linearLuraSgaiLinearConfiguration?Linear SGAI configuration
nonLinearLuraSgaiNonLinearConfiguration?Non-linear SGAI configuration
@Serializable
data class LuraSgaiConfiguration(
val enabled: Boolean? = null,
val assetId: String? = null,
val linear: LuraSgaiLinearConfiguration? = null,
val nonLinear: LuraSgaiNonLinearConfiguration? = null,
)

LuraSgaiLinearConfiguration

ParameterTypeDescription
enabledBoolean?Whether linear SGAI is enabled
defaultAdDurationDouble?Default ad duration in seconds
@Serializable
data class LuraSgaiLinearConfiguration(
val enabled: Boolean? = null,
val defaultAdDuration: Double? = null,
)

LuraSgaiNonLinearConfiguration

ParameterTypeDescription
enabledBoolean?Whether non-linear SGAI is enabled
endpointString?Non-linear SGAI endpoint
@Serializable
data class LuraSgaiNonLinearConfiguration(
val enabled: Boolean? = null,
val endpoint: String? = null,
)

LuraAdsPolicyConfiguration

ParameterTypeDescription
skipModeLuraAdsSkipModeAd skip mode
cooldownDoubleCooldown between ads in seconds
pauseAdCooldownDoubleCooldown between pause ads in seconds
@Serializable
data class LuraAdsPolicyConfiguration(
val skipMode: LuraAdsSkipMode = LuraAdsSkipMode.POD,
val cooldown: Double = 15.0,
val pauseAdCooldown: Double = 0.0,
)

LuraAdsSkipMode

CaseValue
AD"ad"
POD"pod"
@Serializable
enum class LuraAdsSkipMode {
@SerialName("ad") AD,
@SerialName("pod") POD,
}

Ads

LuraAdBreak

ParameterTypeDescription
idStringAd break identifier
offsetDoubleStart time of the ad break in seconds
adsList<LuraAd>Ads in the ad break
watchedBooleanWhether the ad break has been watched
totalAdsIntNumber of ads in the ad break
breakDurationDoubleDuration of the ad break in seconds
originStringOrigin of the ad break
stitcherString?Stitcher of the ad break
@Serializable
class LuraAdBreak(
val id: String,
var offset: Double,
val ads: List<LuraAd>,
val watched: Boolean,
val totalAds: Int,
val breakDuration: Double,
val origin: String,
val stitcher: String?,
)

LuraAd

ParameterTypeDescription
durationDoubleDuration of the ad in seconds
skipOffsetDoubleSkip offset in seconds
titleString?Title of the ad
descriptionString?Description of the ad
companionsList<LuraAdCompanion>?Companion ads
iconsList<LuraAdIcon>?Ad icons
interactiveFilesList<LuraInteractiveFile>?Interactive creative files
callToActionItemsList<LuraCallToActionItem>?Call-to-action items
isClickableBooleanWhether the ad has a click-through URL
@Serializable
class LuraAd(
var duration: Double,
var skipOffset: Double,
val title: String?,
val description: String?,
val companions: List<LuraAdCompanion>?,
val icons: List<LuraAdIcon>?,
val interactiveFiles: List<LuraInteractiveFile>?,
val callToActionItems: List<LuraCallToActionItem>?,
val isClickable: Boolean,
)

LuraAdIcon

ParameterTypeDescription
programString?Program represented in the icon
widthString?Pixel width of the icon
heightString?Pixel height of the icon
xPositionString?X-coordinate relative to the ad display area
yPositionString?Y-coordinate relative to the ad display area
durationDouble?Display duration in seconds
offsetString?Delay before display in seconds
apiFrameworkString?API framework for the icon resource
pxRatioString?Pixel ratio for the icon
clicksLuraAdClicks?Icon click data
typeString?Resource type
creativeTypeString?MIME type of the creative
dataString?Creative data (URL or HTML)
@Serializable
data class LuraAdIcon(
val program: String? = null,
val width: String? = null,
val height: String? = null,
val xPosition: String? = null,
val yPosition: String? = null,
val duration: Double? = null,
val offset: String? = null,
val apiFramework: String? = null,
val pxRatio: String? = null,
val clicks: LuraAdClicks? = null,
val type: String? = null,
val creativeType: String? = null,
val data: String? = null,
)

LuraAdClicks

ParameterTypeDescription
clickThroughString?Click-through URI
clickTrackingList<LuraAdClickTracking>?Click tracking URLs
@Serializable
data class LuraAdClicks(
val clickThrough: String? = null,
val clickTracking: List<LuraAdClickTracking>? = null,
)

LuraAdClickTracking

ParameterTypeDescription
idString?Click identifier
urlString?Tracking resource URI
@Serializable
data class LuraAdClickTracking(
val id: String? = null,
val url: String? = null,
)

LuraAdCompanion

ParameterTypeDescription
idString?An optional identifier for the creative.
apiFrameworkString?The API necessary to communicate with the creative if available.
widthString?The pixel width of the placement slot for which the creative is intended.
heightString?The pixel height of the placement slot for which the creative is intended.
assetWidthString?The pixel width of the creative.
assetHeightString?The pixel height of the creative.
expandedWidthString?The maximum pixel width of the creative in its expanded state.
expandedHeightString?The maximum pixel height of the creative in its expanded state.
adSlotIdString?Used to identify desiredplacement on a publisher’spage. Values to be used should be discussed between publishers and advertisers
pxratioString?The pixel ratio for which the companion creative is intended. The pixel ratio is the ratio of physical pixels on the device to the device-independent pixels. An ad intended for display on a device with a pixel ratio that is twice that of a standard 1:1 pixel ratio would use the value "2." Default value is "1."
renderingModeString?Used to indicate when and where to use this companion ad. Values can be “default” or “end-card” or “concurrent”. If this field is empty or not given, “default” will be used.
altTextString?A string to describe the creative when an ad viewer mouses over the ad.
clickThroughString?A URI to the advertiser’s page that should open when the viewer clicks the companion ad.
clickTrackingList<String>?A URI to a tracking resource file used to track a companion clickthrough
typeString?Resource type of the creative
creativeTypeString?Mime type of the creative
dataString?Data of the creative, URL for static and iframe resources, html code snippet for html resource. Check the type field for the resource type
trackingList<LuraAdCompanionTracking>?racking events of the companion
@Serializable
data class LuraAdCompanion(
val id: String? = null,
val apiFramework: String? = null,
val width: String? = null,
val height: String? = null,
val assetWidth: String? = null,
val assetHeight: String? = null,
val expandedWidth: String? = null,
val expandedHeight: String? = null,
val adSlotId: String? = null,
val pxratio: String? = null,
val renderingMode: String? = null,
val altText: String? = null,
val clickThrough: String? = null,
val clickTracking: List<String>? = null,
val type: String? = null,
val creativeType: String? = null,
val data: String? = null,
val tracking: List<LuraAdCompanionTracking>? = null,
)

LuraAdCompanionTracking

ParameterTypeDescription
typeString?Tracking event type
urlString?Tracking resource URI
offsetString?Offset for progress trackings
@Serializable
data class LuraAdCompanionTracking(
val type: String?,
val url: String?,
val offset: String? = null,
)

LuraInteractiveFile

ParameterTypeDescription
apiFrameworkString?API framework
typeString?MIME type
urlString?Resource URI
variableDurationBoolean?Whether duration can be extended by user interaction
@Serializable
data class LuraInteractiveFile(
val apiFramework: String? = null,
val type: String? = null,
val url: String? = null,
val variableDuration: Boolean? = null,
)

LuraCallToActionItem

ParameterTypeDescription
idString?CTA identifier
labelString?Button label
buttonVariantInt?Custom button variant key
actionInt?Action tag
dataString?Action data
startInt?Start time in seconds (-1 for beginning)
endInt?End time in seconds (-1 for end of ad)
@Serializable
data class LuraCallToActionItem(
val id: String? = null,
var label: String? = null,
val buttonVariant: Int? = null,
var action: Int? = null,
val data: String? = null,
val start: Int? = null,
val end: Int? = null,
)

Plugins

LuraPluginsConfigurations

ParameterTypeDescription
adobeMediaAnalyticsAdobeMediaAnalyticsConfiguration?Adobe Media Analytics configuration
comscoreComscoreConfiguration?Comscore configuration
convivaConvivaConfiguration?Conviva configuration
nielsenNielsenConfiguration?Nielsen configuration
openMeasurementOpenMeasurementConfiguration?Open Measurement configuration
palPalConfiguration?PAL configuration
moatMoatConfiguration?Moat configuration
@Serializable
data class LuraPluginsConfigurations(
val adobeMediaAnalytics: AdobeMediaAnalyticsConfiguration? = null,
val comscore: ComscoreConfiguration? = null,
val conviva: ConvivaConfiguration? = null,
val nielsen: NielsenConfiguration? = null,
val openMeasurement: OpenMeasurementConfiguration? = null,
val pal: PalConfiguration? = null,
val moat: MoatConfiguration? = null,
)

AdobeMediaAnalyticsConfiguration

ParameterTypeDescription
enabledBooleanWhether the plugin is enabled
appIdStringAdobe app ID
griffonUrlString?Griffon URL
metadataMap<String, Any?>?Custom metadata
contentInfoAdobeContentInfo?Content info
@Serializable
data class AdobeMediaAnalyticsConfiguration(
override var enabled: Boolean = true,
val appId: String = "",
val griffonUrl: String? = null,
val metadata: Map<String, Any?>? = null,
val contentInfo: AdobeContentInfo? = null,
) : PluginConfiguration()

AdobeContentInfo

ParameterTypeDescription
nameStringContent name
idStringContent ID
lengthDoubleContent length
streamTypeStringStream type
mediaTypeStringMedia type
@Serializable
data class AdobeContentInfo(
val name: String,
val id: String,
val length: Double,
val streamType: String,
val mediaType: String,
)

ComscoreConfiguration

ParameterTypeDescription
enabledBooleanWhether the plugin is enabled
appNameStringApplication name
publisherIdStringPublisher ID
publisherSecretStringPublisher secret
autoUpdateModeIntAuto-update mode
autoUpdateIntervalIntAuto-update interval
userHasConsentBoolean?Whether user has given consent
brandnameStringBrand name
implementationIdStringImplementation ID
projectIdStringProject ID
metadataMap<String, Any?>?Custom metadata
@Serializable
data class ComscoreConfiguration(
override var enabled: Boolean = true,
val appName: String = "",
val publisherId: String = "",
val publisherSecret: String = "",
val autoUpdateMode: Int = 0,
val autoUpdateInterval: Int = 20500,
val userHasConsent: Boolean? = null,
val brandname: String = "",
val implementationId: String = "",
val projectId: String = "",
val metadata: Map<String, Any?>? = null,
) : PluginConfiguration()

ConvivaConfiguration

ParameterTypeDescription
enabledBooleanWhether the plugin is enabled
customerKeyStringConviva customer key
gatewayUrlStringGateway URL (test only)
viewerIdString?Viewer identifier
playerNameString?Player name
contentInfoMap<String, Any?>?Content metadata
deviceMetadataMap<String, Any?>?Device metadata
@Serializable
data class ConvivaConfiguration(
override var enabled: Boolean = true,
var customerKey: String = "",
var gatewayUrl: String = "",
var viewerId: String? = null,
var playerName: String? = null,
val contentInfo: Map<String, Any?>? = null,
val deviceMetadata: Map<String, Any?>? = null,
) : PluginConfiguration()

NielsenConfiguration

ParameterTypeDescription
enabledBooleanWhether the plugin is enabled
appIdString?Nielsen app ID
sfCodeString?SF code
initializationMap<String, Any?>?Initialization parameters
metadataMap<String, Any?>?Custom metadata
@Serializable
data class NielsenConfiguration(
override var enabled: Boolean = true,
val appId: String? = null,
val sfCode: String? = null,
val initialization: Map<String, Any?>? = null,
val metadata: Map<String, Any?>? = null,
) : PluginConfiguration()

OpenMeasurementConfiguration

ParameterTypeDescription
enabledBooleanWhether the plugin is enabled
@Serializable
data class OpenMeasurementConfiguration(
override var enabled: Boolean = true,
) : PluginConfiguration()

PalConfiguration

ParameterTypeDescription
enabledBooleanWhether the plugin is enabled
ppidString?Publisher provided identifier
descriptionUrlStringDescription URL for the ad server
skippablesSupportedBooleanWhether skippable ads are supported
forceLimitedAdsBooleanForce limited ads regardless of TCF
disableLimitedAdsStorageBooleanDisable limited ads storage
disableFirstPartyIdentifiersBooleanDisable first-party identifiers
directedForChildOrUnknownAgeBooleanDirected for child or unknown age
@Serializable
data class PalConfiguration(
override var enabled: Boolean = true,
val ppid: String? = null,
val descriptionUrl: String = "",
val skippablesSupported: Boolean = true,
val forceLimitedAds: Boolean = false,
val disableLimitedAdsStorage: Boolean = false,
val disableFirstPartyIdentifiers: Boolean = false,
val directedForChildOrUnknownAge: Boolean = false,
) : PluginConfiguration()

MoatConfiguration

ParameterTypeDescription
enabledBooleanWhether the plugin is enabled
partnerCodeStringMoat partner code
@Serializable
data class MoatConfiguration(
override var enabled: Boolean = true,
val partnerCode: String = "",
) : PluginConfiguration()

Analytics

LuraAnalyticsConfiguration

ParameterTypeDescription
enabledBooleanWhether analytics is enabled
hostString?Analytics server endpoint URL
apiKeyString?API key for authentication
periodDoublePayload sending period in seconds
appApp?Application information
sessionSession?Session information
@Serializable
data class LuraAnalyticsConfiguration(
override var enabled: Boolean = true,
val host: String? = null,
val apiKey: String? = null,
val period: Double = 10.0,
val app: App? = null,
val session: Session? = null,
) : PluginConfiguration()

App

ParameterTypeDescription
idStringApplication identifier
nameStringApplication name
versionStringApplication version
@Serializable
data class App(
val id: String,
val name: String,
val version: String,
)

Session

ParameterTypeDescription
dataStringSession data
userIdStringUser identifier
@Serializable
data class Session(
val data: String,
val userId: String,
)

Events

LuraEventListener

typealias LuraEventListener = FlowCollector<LuraEvent>

LuraOfflineEventListener

typealias LuraOfflineEventListener = FlowCollector<LuraOfflineEvent>

LuraEvent

ParameterTypeDescription
nameString?Event name
typeLuraEventTypeEvent type
dataEventData?Event payload
@Serializable
data class LuraEvent(
var name: String? = null,
val type: LuraEventType,
val data: EventData? = null,
)

LuraEventData.RateChanged

ParameterTypeDescription
playbackRateFloatCurrent playback rate
@Serializable
data class RateChanged(val playbackRate: Float) : LuraEventData()

LuraEventData.DurationChanged

ParameterTypeDescription
durationDoubleDuration in seconds
@Serializable
data class DurationChanged(val duration: Double) : LuraEventData()

LuraEventData.TrickPlayData

ParameterTypeDescription
timeDoubleTime position in seconds
widthIntImage width
heightIntImage height
imageDataStringBase64 image data
rowsIntSprite sheet rows
columnsIntSprite sheet columns
offsetList<Int>Offset within sprite sheet
@Serializable
data class TrickPlayData(
val time: Double,
val width: Int,
val height: Int,
val imageData: String,
val rows: Int = 1,
val columns: Int = 1,
val offset: List<Int> = listOf(0, 0),
) : LuraEventData()

LuraEventData.TimeUpdate

ParameterTypeDescription
contentTimeDoubleContent time in seconds (excluding server-side ads)
durationDoubleContent duration in seconds
annotationsList<LuraAnnotation>?Active annotations
adAd?Current ad progress data
typeLuraTypeCurrent playback type
highlightHighlight?Current highlight progress data
@Serializable
data class TimeUpdate(
val contentTime: Double = 0.0,
val duration: Double = 0.0,
var annotations: List<LuraAnnotation>? = null,
var ad: Ad? = null,
var type: LuraType = LuraType.Content,
var highlight: Highlight? = null,
) : LuraEventData()
ParameterTypeDescription
idStringAd identifier
totalAdsIntTotal ads in the break
adPositionIntPosition of the current ad
breakDurationDoubleAd break duration in seconds
adDurationDoubleCurrent ad duration in seconds
timeInAdDoubleTime elapsed in current ad in seconds
timeInBreakDoubleTime elapsed in ad break in seconds
skipOffsetDoubleSkip offset in seconds
isClickableBooleanWhether the ad is clickable
@Serializable
data class Ad(
val id: String = "",
val totalAds: Int = 0,
val adPosition: Int = -1,
val breakDuration: Double = 0.0,
val adDuration: Double = 0.0,
val timeInAd: Double = 0.0,
val timeInBreak: Double = 0.0,
val skipOffset: Double = 0.0,
val isClickable: Boolean = false,
)

Highlight

ParameterTypeDescription
idStringHighlight identifier
positionIntHighlight position
durationDoubleHighlight duration in seconds
currentTimeDoubleCurrent time within highlight in seconds
totalCountIntTotal highlight count
videoRightFractionFloatVideo right fraction
videoTopFractionFloatVideo top fraction
@Serializable
data class Highlight(
val id: String = "",
val position: Int = 0,
val duration: Double = 0.0,
val currentTime: Double = 0.0,
val totalCount: Int = 0,
val videoRightFraction: Float = 0f,
val videoTopFraction: Float = 0f,
)

LuraEventData.InterstitialsData

ParameterTypeDescription
breaksList<LuraAdBreak>Scheduled ad breaks
@Serializable
data class InterstitialsData(val breaks: List<LuraAdBreak>) : LuraEventData()

LuraEventData.Error

ParameterTypeDescription
typeStringError type
messageString?Error message
errorCodeString?Error code
@Serializable
data class Error(
val type: String = "",
var message: String? = null,
var errorCode: String? = null,
) : LuraEventData()

LuraEventData.VolumeChanged

ParameterTypeDescription
volumeFloatCurrent volume
@Serializable
data class VolumeChanged(val volume: Float) : LuraEventData()

LuraEventData.MuteChanged

ParameterTypeDescription
mutedBooleanWhether the player is muted
@Serializable
data class MuteChanged(val muted: Boolean) : LuraEventData()

LuraEventData.VideoMetadata

ParameterTypeDescription
metadataLuraVideoMetadataVideo metadata
@Serializable
data class VideoMetadata(val metadata: LuraVideoMetadata) : LuraEventData()

LuraEventData.TrackChanged

ParameterTypeDescription
trackLuraTrack.Video | LuraTrack.Audio | LuraTrack.Text | LuraTrack.ViewGridChanged track
trackTypeStringTrack type (audio, caption, video, or viewgrid)
@Serializable
data class TrackChanged(val track: LuraTrack) : LuraEventData()

LuraEventData.AvailabilityWindow

ParameterTypeDescription
idStringAvailability window identifier
startDoubleStart time in seconds
endDoubleEnd time in seconds
@Serializable
data class AvailabilityWindow(
val id: String,
val start: Double,
var end: Double,
) : LuraEventData()

LuraEventData.TimedMetadata

ParameterTypeDescription
dataMap<String, String>Timed metadata key-value pairs
@Serializable
data class TimedMetadata(val data: Map<String, String>) : LuraEventData()

LuraEventData.DashTimedMetadata

ParameterTypeDescription
eventStringEvent name
detailDetailEvent detail
@Serializable
data class DashTimedMetadata(val event: String, val detail: Detail) : LuraEventData()

Detail

ParameterTypeDescription
schemeIdUriStringScheme ID URI
eventElementStringEvent element
startTimeDoubleStart time in seconds
@Serializable
data class Detail(
val schemeIdUri: String,
val eventElement: String,
val startTime: Double,
)

LuraEventData.ShowCaption

ParameterTypeDescription
textStringCaption text
@Serializable
data class ShowCaption(val text: String = "") : LuraEventData()

LuraEventData.BufferChanged

ParameterTypeDescription
startDoubleBuffer start in seconds
endDoubleBuffer end in seconds
@Serializable
data class BufferChanged(val start: Double, val end: Double) : LuraEventData()

LuraEventData.CustomDataChanged

ParameterTypeDescription
keyStringCustom data key
valueString?Custom data value
@Serializable
data class CustomDataChanged(val key: String, val value: String? = null) : LuraEventData()

LuraEventData.EventNotifiedData

ParameterTypeDescription
typeNotifiableEventTypeNotifiable event type
payloadString?Event payload
@Serializable
data class EventNotifiedData(
val type: NotifiableEventType,
val payload: String? = null,
) : LuraEventData()

LuraEventData.ScreenState

ParameterTypeDescription
stateLuraScreenStateCurrent screen state
@Serializable
data class ScreenState(val state: LuraScreenState) : LuraEventData()

LuraEventData.Warning

ParameterTypeDescription
messageString?Warning message
errorCodeInt?Warning error code
@Serializable
data class Warning(val message: String?, val errorCode: Int?) : LuraEventData()

LuraEventData.PlaylistData

ParameterTypeDescription
itemLuraConfigurationCurrent playlist item
indexIntCurrent playlist index
@Serializable
data class PlaylistData(val item: LuraConfiguration, val index: Int) : LuraEventData()

LuraEventData.AutoSwitchCounterData

ParameterTypeDescription
itemLuraConfiguration?Next playlist item
indexIntNext playlist index
remainingDoubleRemaining time in seconds
@Serializable
data class AutoSwitchCounterData(
val item: LuraConfiguration?,
val index: Int,
val remaining: Double,
) : LuraEventData()

LuraEventData.LuraEngagementData

ParameterTypeDescription
idString?Engagement identifier
countInt?Engagement count
histogramList<Int>?Engagement histogram
@Serializable
data class LuraEngagementData(
val id: String? = null,
val count: Int? = null,
val histogram: List<Int>? = null,
) : LuraEventData()

LuraEventData.NonLinearMarkersData

ParameterTypeDescription
markersList<SgaiMarker>SGAI timeline markers
@Serializable
data class NonLinearMarkersData(val markers: List<SgaiMarker>) : LuraEventData()

SgaiMarker

ParameterTypeDescription
idStringMarker identifier
offsetDoubleOffset in seconds
typeStringMarker type
durationLongDuration in milliseconds
@Serializable
data class SgaiMarker(
val id: String,
val offset: Double,
val type: String = "non_linear",
val duration: Long = 30000L,
) : LuraEventData()

LuraEventData.NonLinearProgressData

ParameterTypeDescription
adIdStringActive non-linear ad ID
timeDoubleCurrent time in seconds
durationDoubleAd duration in seconds
@Serializable
data class NonLinearProgressData(
val adId: String,
val time: Double,
val duration: Double,
) : LuraEventData()

LuraEventData.HighlightAutoSwitchCounterData

ParameterTypeDescription
remainingDoubleRemaining auto-switch time in seconds
@Serializable
data class HighlightAutoSwitchCounterData(val remaining: Double) : LuraEventData()

LuraEventData.HighlightLoadedGrid

ParameterTypeDescription
modeStringGrid mode
viewportWidthIntViewport width
viewportHeightIntViewport height
contentHighlightLoadedGridSlotContent slot
highlightHighlightLoadedGridSlotHighlight slot
@Serializable
data class HighlightLoadedGrid(
val mode: String,
val viewportWidth: Int,
val viewportHeight: Int,
val content: HighlightLoadedGridSlot,
val highlight: HighlightLoadedGridSlot,
)

HighlightLoadedGridSlot

ParameterTypeDescription
videoWidthIntVideo width
videoHeightIntVideo height
relativeXFloatRelative X position
relativeYFloatRelative Y position
relativeWidthFloatRelative width
relativeHeightFloatRelative height
@Serializable
data class HighlightLoadedGridSlot(
val videoWidth: Int,
val videoHeight: Int,
val relativeX: Float,
val relativeY: Float,
val relativeWidth: Float,
val relativeHeight: Float,
)

LuraEventData.HighlightLoadedData

ParameterTypeDescription
highlightLuraHighlightLoaded highlight
gridHighlightLoadedGrid?Grid layout data
@Serializable
data class HighlightLoadedData(
val highlight: LuraHighlight,
val grid: HighlightLoadedGrid? = null,
) : LuraEventData()

LuraEventData.LatencyModeChanged

ParameterTypeDescription
latencyModeLuraLatencyModeActive latency mode
availabilityAvailabilityAvailable latency modes
@Serializable
data class LatencyModeChanged(
val latencyMode: LuraLatencyMode,
val availability: Availability,
) : LuraEventData()

Availability

ParameterTypeDescription
defBooleanWhether default latency mode is available
lowBooleanWhether low-latency mode is available
@Serializable
data class Availability(
@SerialName("def") val def: Boolean,
@SerialName("low") val low: Boolean,
)

Metadata

LuraVideoMetadata

ParameterTypeDescription
eventIdString?Event identifier
titleString?Video title
descriptionString?Video description
tsStartString?Start timestamp
tsEndString?End timestamp
dvrAvailabilityString?DVR availability flag
customMetadataMap<String, Any?>?Custom metadata fields
@Serializable
data class LuraVideoMetadata(
val eventId: String? = null,
val title: String? = null,
val description: String? = null,
val tsStart: String? = null,
val tsEnd: String? = null,
val dvrAvailability: String? = null,
val customMetadata: Map<String, Any?>? = null,
)

Enums & Constants

LuraType

CaseDescription
NoneCurrent video part is unavailable
AdCurrent video part is an ad
SlateCurrent video part is a slate
ContentCurrent video part is content
HighlightCurrent video part is a highlight
enum class LuraType {
None, Ad, Slate, Content, Highlight,
}

LuraScreenState

CaseValue
FULLSCREEN"FULLSCREEN"
PICTURE_IN_PICTURE"PICTURE_IN_PICTURE"
WINDOWED"WINDOWED"
@Serializable
enum class LuraScreenState {
@SerialName("FULLSCREEN") FULLSCREEN,
@SerialName("PICTURE_IN_PICTURE") PICTURE_IN_PICTURE,
@SerialName("WINDOWED") WINDOWED,
}

NotifiableEventType

CaseValue
CLICK"CLICK"
CTA_CLICK"CTA_CLICK"
ACTIVITY"ACTIVITY"
BACK_CLICK"BACK_CLICK"
enum class NotifiableEventType(val type: String) {
CLICK("CLICK"),
CTA_CLICK("CTA_CLICK"),
ACTIVITY("ACTIVITY"),
BACK_CLICK("BACK_CLICK"),
}

LuraCastTargets

CaseValue
CHROMECAST"chromecast"
enum class LuraCastTargets {
CHROMECAST,
}

LuraMimeType

CaseMIME type
HLSapplication/x-mpegurl
DASHapplication/dash+xml
MP4video/mp4
IMAGE_BIFimage/bif
IMAGEimage/
enum class LuraMimeType(val type: String) {
HLS("application/x-mpegurl"),
DASH("application/dash+xml"),
MP4("video/mp4"),
IMAGE_BIF("image/bif"),
IMAGE("image/"),
}

LuraXPosition

CaseValue
Left"left"
Right"right"
Center"center"
@Serializable
enum class LuraXPosition {
@SerialName("left") Left,
@SerialName("right") Right,
@SerialName("center") Center,
}

LuraYPosition

CaseValue
Top"top"
Bottom"bottom"
Center"center"
@Serializable
enum class LuraYPosition {
@SerialName("top") Top,
@SerialName("bottom") Bottom,
@SerialName("center") Center,
}

LuraSlideDirections

CaseValue
Left"left"
Right"right"
Up"up"
Down"down"
@Serializable
enum class LuraSlideDirections {
@SerialName("left") Left,
@SerialName("right") Right,
@SerialName("up") Up,
@SerialName("down") Down,
}